# UiPath Explainator `uipath-explainator` 会按 UiPath 项目入口 `main.xaml` 递归提取 `Invoke Workflow` 和 `Invoke VBA`,复制到指定工作区,删除 `` 里的无效代码,再重新扫描并裁掉不再使用的文件,最后逐个调用 Gemini 生成说明文档。 ## 安装 ```bash ./.venv/bin/pip install -e . ``` ## 配置 把 `.env.example` 复制成 `.env`,至少填入: ```env GEMINI_API_KEY=your_api_key GEMINI_BASE_URL= GEMINI_MODEL=gemini-2.5-flash ``` `GEMINI_BASE_URL` 留空时走官方默认地址;如果你前面挂了代理或网关,可以填自定义地址。 这里填写网关根地址即可,例如 `https://your-gateway.example.com`,不要自己追加 `/v1beta`、`/v1alpha` 或 `/v1`。 ## 使用 ```bash ./.venv/bin/python -m uipath_explainator \ /path/to/uipath-project \ --output-dir workspace/project-copy \ --force ``` 常用参数: - `--entry`: 入口文件名,默认 `main.xaml` - `--env-file`: 自定义 `.env` 路径 - `--model`: 临时覆盖 `.env` 里的模型名 - `--skip-analysis`: 只做复制、清理和剪枝,不调用 Gemini - `--force`: 允许覆盖已有输出目录 ## 输出内容 输出目录会保留原项目的相对目录结构,并额外生成: - `manifest.json`: 扫描、剪枝、告警和分析结果清单 - `OVERVIEW.md`: 总览说明书,除了文件数量,还会解释“初次扫描 -> 清理 Comment Out -> 二次扫描 -> 剪枝 -> Gemini 分析”的整条流水线逻辑 - `*.analysis.md`: 每个最终保留文件对应的 Gemini 咨询式说明,固定包含: - 文件定位:这个文件在整个流程中的角色、触发方式、核心作用 - 流程拆解:按步骤说明它是怎么执行的 - 关键逻辑:条件判断、调用关系、边界情况 - 数据与依赖:输入、输出、变量、外部文件或系统 - 咨询视角:业务含义、风险点、无法确认的信息 - 场景范例:帮助交接和理解的示例 ## 当前实现约束 - 只解析能静态识别出来的 `Invoke Workflow` / `Invoke VBA` 文件路径。 - 对动态拼接路径会记录 warning,但不会猜测。 - `Invoke VBA` 默认识别常见文本型 VBA 文件扩展名:`.txt`、`.bas`、`.vb`、`.vbs`、`.vba`、`.cls`、`.frm`。