UiPath Explainator

uipath-explainator 会按 UiPath 项目入口 main.xaml 递归提取 Invoke WorkflowInvoke VBA,复制到指定工作区,删除 <ui:CommentOut> 里的无效代码,再重新扫描并裁掉不再使用的文件,最后逐个调用 Gemini 生成说明文档。

输出会自动拆成独立的 code/docs/ 两个子目录,避免说明文档和项目文件混在一起。

安装

./.venv/bin/pip install -e .

配置

.env.example 复制成 .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

使用

./.venv/bin/python -m uipath_explainator \
  /path/to/uipath-project \
  --output-dir workspace/project-bundle \
  --force

常用参数:

  • --entry: 入口文件名,默认 main.xaml
  • --env-file: 自定义 .env 路径
  • --model: 临时覆盖 .env 里的模型名
  • --skip-analysis: 只做复制、清理和剪枝,不调用 Gemini
  • --force: 允许覆盖已有输出目录

输出内容

输出目录现在是一个 bundle 目录,里面固定包含:

  • code/: 复制出来并经过清理、剪枝后的项目文件,保留原项目相对目录结构
  • docs/manifest.json: 扫描、剪枝、告警和分析结果清单
  • docs/OVERVIEW.md: 总览说明书,除了文件数量,还会解释“初次扫描 -> 清理 Comment Out -> 二次扫描 -> 剪枝 -> Gemini 分析”的整条流水线逻辑
  • docs/*.analysis.md: 每个最终保留文件对应的 Gemini 咨询式说明,固定包含:
    • 文件定位:这个文件在整个流程中的角色、触发方式、核心作用
    • 流程拆解:按步骤说明它是怎么执行的
    • 关键逻辑:条件判断、调用关系、边界情况
    • 数据与依赖:输入、输出、变量、外部文件或系统
    • 咨询视角:业务含义、风险点、无法确认的信息
    • 场景范例:帮助交接和理解的示例

当前实现约束

  • 只解析能静态识别出来的 Invoke Workflow / Invoke VBA 文件路径。
  • 对动态拼接路径会记录 warning但不会猜测。
  • Invoke VBA 默认识别常见文本型 VBA 文件扩展名:.txt.bas.vb.vbs.vba.cls.frm
Description
No description provided
Readme 106 KiB
Languages
Python 100%