docs: 清理过时文档 + 更新关键文档
删除(10个): - API与后端对接规范.md(已被后端对接规范.md 替代) - image_processing_flow.md(已合入 RAG数据流程.md) - 状态码功能更新说明.md(已合入后端对接规范.md) - 题目模板.md(字段名与实际 API 不一致,以对接指南为准) - 出题批卷系统设计.md(旧版出题设计,已被对接指南+变更说明替代) - 测试指南.md(出题 API 格式过时,模型名过时) - 企业文档更新管理方案.md(设计方案,已实施完成) - 版本管理实施完成报告.md(里程碑报告,已完成归档) - 生产路径优化计划.md(行号已偏移,阶段状态过时) 更新(7个): - 出题批题后端对接指南.md:添加 generate-smart 端点、question_content→content - 开发与系统模块说明.md:更新 reranker 和 LLM 模型名称 - 多源信息融合指南.md:标注生产路径 vs 备用路径 - 架构与部署方案.md:更新数据归属对照表(4个 SQLite DB) - 认证与权限配置指南.md:出题 API 更新为 /exam/generate - 向量库边界风险分析.md:标注 P1 旧切片残留和 P2 文件更新已修复 - 风险边界问题修复注意事项.md:标注所有场景已修复
This commit is contained in:
@@ -42,6 +42,8 @@ doc_path = docstore_dir / f"{doc_id}.json" # doc_id = chunk_id = "filename_N"
|
||||
|
||||
### P1:同名文件重复上传 — 旧切片残留 + 搜索结果重复
|
||||
|
||||
> **✅ 已修复**(2026-06-04):上传接口现在自动替换同名文件,旧切片自动标记为 `superseded`。详见 [风险边界问题修复注意事项.md](风险边界问题修复注意事项.md)。
|
||||
|
||||
**位置**:`api/document_routes.py` 第 246-250 行
|
||||
|
||||
```python
|
||||
@@ -119,6 +121,8 @@ for item in all_items:
|
||||
|
||||
### P2:文件无原地更新机制
|
||||
|
||||
> **✅ 已修复**(2026-06-04):上传接口新增自动替换机制(`replaced=true`),同名文件自动替换旧版本。
|
||||
|
||||
**场景**:用户上传 `制度.pdf` v1 后发现内容有误,修改后想替换。当前系统没有 "更新文件" 接口,只能删除后重新上传。如果用户不知道要先删除,就会触发 P1 的重复问题。
|
||||
|
||||
**修复方向**:upload 接口增加 "如果同名文件已存在则替换" 选项(先 delete_document 再 add_file_to_kb),或提供独立的 "更新文档" API。
|
||||
@@ -151,14 +155,14 @@ chunk_index = int(str(chunk_id_raw).rsplit('_', 1)[-1])
|
||||
|
||||
### 风险总结
|
||||
|
||||
| 等级 | 风险 | 核心原因 | 触发条件 |
|
||||
|------|------|----------|----------|
|
||||
| **P0** | RRF 融合吞结果 | 去重 key 缺少 collection | 多库有同名文件 |
|
||||
| **P0** | DocStore 覆盖 | 存储路径缺少 collection | 多库有同名含表格/图片文件 |
|
||||
| **P1** | 旧切片残留 | 重复上传只改名不替换 | 同名文件二次上传 |
|
||||
| **P1** | _collection 回退错误 | 硬编码 collections[0] | 单库路径 + 多 collection |
|
||||
| **P1** | search_multiple 去重 | 去重 key 缺少 collection | 直接调用低层 API |
|
||||
| **P2** | citation 字段名不一致 | `collection` vs `_collection` | 非标准查询路径 |
|
||||
| **P2** | 无文件更新机制 | 设计缺失 | 用户需要替换文档 |
|
||||
| **P2** | 元数据不同步 | JSON 文件可能损坏 | 手动操作或异常退出 |
|
||||
| **P3** | 文件名含下划线 | 无问题(rsplit 兼容) | — |
|
||||
| 等级 | 风险 | 核心原因 | 触发条件 | 状态 |
|
||||
|------|------|----------|----------|------|
|
||||
| **P0** | RRF 融合吞结果 | 去重 key 缺少 collection | 多库有同名文件 | 未修复 |
|
||||
| **P0** | DocStore 覆盖 | 存储路径缺少 collection | 多库有同名含表格/图片文件 | 未修复 |
|
||||
| **P1** | 旧切片残留 | 重复上传只改名不替换 | 同名文件二次上传 | ✅ 已修复 |
|
||||
| **P1** | _collection 回退错误 | 硬编码 collections[0] | 单库路径 + 多 collection | 未修复 |
|
||||
| **P1** | search_multiple 去重 | 去重 key 缺少 collection | 直接调用低层 API | 未修复 |
|
||||
| **P2** | citation 字段名不一致 | `collection` vs `_collection` | 非标准查询路径 | 未修复 |
|
||||
| **P2** | 无文件更新机制 | 设计缺失 | 用户需要替换文档 | ✅ 已修复 |
|
||||
| **P2** | 元数据不同步 | JSON 文件可能损坏 | 手动操作或异常退出 | 未修复 |
|
||||
| **P3** | 文件名含下划线 | 无问题(rsplit 兼容) | — | 无需修复 |
|
||||
|
||||
Reference in New Issue
Block a user