fix(boundary): 修复多库边界问题、版本管理及删除清理

多库检索与存储修复:
- RRF 融合去重改用 (collection, chunk_id) 复合键,修复同名文件结果被吞
- DocStore 存储路径加 collection 前缀,修复跨库同名切片数据覆盖
- search_multiple 去重改用复合键
- chunk_id 解析改用 rsplit 兼容下划线文件名

上传与版本管理修复:
- 同名文件上传改为覆盖模式,自动清理旧切片
- 修复首次上传不创建版本记录
- 修复覆盖上传版本号回退到 v1
- sync ADDED 分支改用动态版本号生成
- _generate_version_id 改为基于全部版本递增
- 废止/恢复操作同步 SQLite 版本记录
- mark_document_as_superseded 改为仅更新 SQLite

删除清理修复:
- 删除文档时同步清理 SQLite 版本记录和变更日志
- 删除向量库时同步清理该库所有版本记录
- cleanup 改为清理 SQLite 记录而非 ChromaDB

测试:
- test_version_management.py: 27 条版本管理单元测试
- test_edge_cases.py: 28 条边界用例测试
- test_upload_dedup.py: 5 条上传去重测试
- e2e_risk_test.py: 27 条端到端风险测试

文档:
- 新增风险边界问题修复注意事项.md(面向后端的对接文档)
- 新增向量库边界风险分析.md
- 更新多篇现有文档
This commit is contained in:
lacerate551
2026-06-04 23:58:44 +08:00
parent a1a0814633
commit cb75b9b274
50 changed files with 6385 additions and 6248 deletions

View File

@@ -185,7 +185,7 @@
- 支持10万级向量
- 权限过滤security_level
**代码位置:** `rag_demo.py`
**代码位置:** `core/engine.py`
- `search_knowledge()`: 混合检索主函数
- `reciprocal_rank_fusion()`: RRF融合
- `rerank_results()`: 重排序
@@ -198,7 +198,7 @@
- Agentic RAG自动上下文传递
- 会话列表、历史查询、删除会话
**代码位置:** `session_manager.py`, `agentic_rag.py`
**代码位置:** `services/session.py`, `core/agentic.py`
- `SessionManager`: 会话管理器
- `AgenticRAG.process()`: 多轮对话处理
@@ -209,9 +209,9 @@
- 置信度评估(高/中/低)
- 来源去重和合并显示
**代码位置:** `rag_demo.py`, `agentic_rag.py`
- `generate_answer()`: 包含置信度评估
- `_extract_sources()`: 来源提取
**代码位置:** `core/engine.py`, `core/agentic.py`
- `generate_answer()`: 包含置信度评估`core/engine.py`
- `_extract_sources()`: 来源提取`core/agentic_citation.py`
### ⚠️ GKPT-KB-008: 知识库自动同步(部分实现)
@@ -234,7 +234,7 @@
- 试卷管理(草稿/审核/通过状态)
- 批阅报告生成
**代码位置:** `exam_manager.py`, `exam_api.py`
**代码位置:** `exam_pkg/manager.py`, `exam_pkg/api.py`
### ⚠️ GKPT-EXAM-018: AI自动阅卷部分实现
@@ -348,5 +348,5 @@ CREATE TABLE document_versions (
---
*文档更新时间: 2026-04-06*
*项目版本: v4.2.0*
*文档更新时间: 2026-06-04*
*项目版本: v7.0.0*