Files
uipath-explainator/README.md
xiaomai eef3464257 feat(output): separate code and docs into subdirectories
Group copied project files under a dedicated code/ directory
Group generated analysis, manifest, and overview under docs/
2026-04-02 10:36:29 +08:00

63 lines
2.5 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# UiPath Explainator
`uipath-explainator` 会按 UiPath 项目入口 `main.xaml` 递归提取 `Invoke Workflow``Invoke VBA`,复制到指定工作区,删除 `<ui:CommentOut>` 里的无效代码,再重新扫描并裁掉不再使用的文件,最后逐个调用 Gemini 生成说明文档。
输出会自动拆成独立的 `code/``docs/` 两个子目录,避免说明文档和项目文件混在一起。
## 安装
```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-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`