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

@@ -2,7 +2,7 @@
> **文档类型**: 配置指南
> **创建日期**: 2026-04-12
> **最后更新**: 2026-04-13
> **最后更新**: 2026-06-04
> **状态**: 已实施
---
@@ -143,8 +143,6 @@ curl -H "Authorization: Bearer mock-token-admin" \
| `/sync` | POST | 手动触发同步 |
| `/sync/start` | POST | 启动文件监控 |
| `/sync/stop` | POST | 停止文件监控 |
| `/graph/build` | POST | 重建知识图谱 |
| `/audit/logs` | GET | 审计日志 |
| `/collections` | POST | 创建向量库 |
| `/collections/<name>` | DELETE | 删除向量库 |
| `/faq` | POST | 新增 FAQ |
@@ -233,7 +231,7 @@ headers: 'Content-Type:application/json
### 7.2 Python 后端修改
**exam_pkg/manager.py 当前状态**
**exam_pkg/generator.py 当前状态**
```python
def generate_exam_by_file(
file_path: str,
@@ -390,7 +388,6 @@ git checkout tests/自动批卷\(带溯源\)\ .yml
| 文件 | 变更 |
|------|------|
| auth/gateway.py | 新增,网关认证模块 |
| api/auth_routes.py | 移除登录路由,使用网关认证 |
| exam_pkg/api.py | 更新认证装饰器 |
---
@@ -408,5 +405,6 @@ git checkout tests/自动批卷\(带溯源\)\ .yml
| 日期 | 版本 | 变更内容 |
|------|------|---------|
| 2026-06-04 | 2.1 | 移除已废弃的 Graph RAG 端点(/graph/build和审计端点/audit/logs移除 api/auth_routes.py 引用;代码示例更新为 generator.py |
| 2026-04-13 | 2.0 | 合并登录功能对接清单和网关认证对接说明 |
| 2026-04-12 | 1.0 | 创建认证对接文档 |