# 改进路线图 ## 阶段一:代码质量(低风险,快速交付) ### 1. Prompt 拆分 ✓ - [x] 创建 `prompts/` 目录 - [x] 7 个 prompt 各拆为独立 `.md` 文件 - [x] `nodes.py` 改为从文件加载 - [x] 支持热重载(文件变更无需重启) ### 2. 修复无效代码 ✓ - [x] `backend/llm.py` — `get_num_tokens()` 修复为正确 API - [x] `backend/embeddings.py` — 修复 docstring 函数名不一致 - [x] `backend/llm.py` — 统一 LLM 接口基类 `_BaseLLM` --- ## 阶段二:用户体验(核心改造) ### 3. 流式输出 + 节点平铺 ✓ - [x] `backend/llm.py` — LLM 工厂支持 `stream()` 统一接口 - [x] `agent/nodes.py` — generate/modify/correct 节点使用流式 + `get_stream_writer()` - [x] `app.py` — 使用 `stream_mode=["updates", "custom"]` 捕获流式事件 - [x] 节点状态平铺(处理过程 expander 逐节点展示) - [x] 流式完成后节点自动折叠 - [x] 完成后单独展示「总结卡片」 ### 4. 错误自增长知识库 ✓ - [x] `backend/error_kb.py` — ErrorKB 类(ChromaDB 持久化) - [x] 错误指纹去重(标准化 + MD5) - [x] `correct_jrxml` — 保存修正前状态到 `last_error_case` - [x] `validate` — 修正成功时自动记录(仅新错误,自动去重) - [x] `retrieve` — 搜索错误知识库,注入历史修正案例 - [x] 记录内容:错误 + 修正前后 JRXML + prompt + 工具链 + 模型 ### 5. 文件上传支持 ✓ - [x] `backend/file_parser.py` — 统一解析接口 - [x] 图片 → PIL 元信息 + PaddleOCR(可选安装后自动识别) - [x] PDF → pdfplumber / PyMuPDF 文本提取 - [x] DOCX → python-docx 文本提取 - [x] 纯文本 (.txt/.csv/.json/.xml) → 直接读取 - [x] `can_use_vision()` — 根据模型名判断是否支持原生多模态 - [x] `app.py` — 侧边栏文件上传组件(多文件,可移除) - [x] 上传文本自动注入下一条消息前缀 ### 6. A4 图片模板识别 ✓ - [x] `backend/layout_analyzer.py` — 完整布局分析模块 - [x] A4 比例判定:exact(±3%) / close(±8%) / not_a4 三档 - [x] PaddleOCR 布局分析:逐元素提取坐标(x,y,w,h)、字号、文本 - [x] 行分组:Y 轴容差自动聚类 - [x] 结构化输出:`图片模板共 X 行,第 1 行有 Y 个元素,其中元素 a 长...高...字体...内容是...` - [x] 检测门槛:≥2 个 OCR 元素 + A4 比例 → 标记为模板 - [x] `app.py` — 上传图片/PDF 时自动触发布局分析,替换为布局描述 ### 7. 会话历史 JRXML 下载 ✓ - [x] `agent/state.py` — 新增 `jrxml_versions` 字段 - [x] `agent/nodes.py` — `finalize` 节点追加版本记录 - [x] `app.py` — 侧边栏"历史版本"折叠区,每版本独立下载按钮 ### 8. 预览功能修复 ✓ - [x] 根因:`preview_report` 路由到 `save_session` → `validate` 触发不必要的验证修正循环 - [x] 修复:`route_after_save` — 预览/导出意图跳过验证直接 `finalize` --- ## 阶段三:细节修复 ### 9. Ctrl+C 修复 ✓ - [x] `app.py` — 注入 JS 拦截裸 `c` 键,保留 Ctrl+C 复制行为 --- ## 执行顺序建议 ``` 1. Prompt 拆分 ──► 2. 无效代码修复 │ ▼ 3. 流式输出 + 节点平铺 │ ┌─────────────┼─────────────┐ ▼ ▼ ▼ 4. 错误自增长 5. 文件上传 7. 下载历史 │ │ ▼ ▼ 6. A4 模板识别 8. 预览修复 │ ▼ 9. Ctrl+C 修复 ``` 阶段一立即可做,无外部依赖。阶段二是主要工作量。阶段三是收尾。