Initial commit: QMDSearch 分层信息检索服务
- FastAPI + Qdrant + Redis + Ollama 技术栈 - L1→L2→L3→chunk 四层分层检索(dense + sparse RRF 融合) - 文档三级总结与 2.5 级回退 - query 解析路由与分类 - /admin 管理页面
This commit is contained in:
@@ -0,0 +1,41 @@
|
||||
# Checklist
|
||||
|
||||
## 文档管理 API
|
||||
|
||||
- [x] GET /api/v1/documents 分页返回 items(doc_id/title/category/tags/summary)与 next_offset,空库返回空列表
|
||||
- [x] GET /api/v1/documents/{doc_id} 返回 L1 全部字段 + l2_nodes/l3_nodes + chunks_count
|
||||
- [x] 不存在 doc_id 详情返回 code=1004
|
||||
- [x] DELETE /api/v1/documents/{doc_id} 后四层集合该文档点全部清除,再查详情返回 1004
|
||||
- [x] DELETE 不存在 doc_id 幂等成功且 deleted 统计为 0
|
||||
|
||||
## 统计 API
|
||||
|
||||
- [x] GET /api/v1/knowledge/stats 返回四层集合点数、类目分布、uncategorized_count
|
||||
- [x] stats 数值与内存 Qdrant 实际写入一致(测试验证)
|
||||
|
||||
## 管理页面
|
||||
|
||||
- [x] GET /admin 返回 200 HTML
|
||||
- [x] 页面含 概览/文档管理/入库/检索测试台/类目 五个区块
|
||||
- [x] 页面无外部 CDN/外链资源(无 http(s):// src 或 link)
|
||||
- [x] 所有 fetch 指向 /api/v1/ 路径且与后端路由契约一致(路径、方法、字段名)
|
||||
- [x] 删除操作有二次确认逻辑(confirm 或等价交互)
|
||||
- [x] code≠0 时页面有错误提示处理
|
||||
|
||||
## 单测补全
|
||||
|
||||
- [x] judge.py:正常幻觉率计算、部分断言不支持、解析失败返回 0.0
|
||||
- [x] response.py:ok/error/ApiError 结构与 code
|
||||
- [x] ollama.py:generate 正常/json_mode payload 含 format:is_available 可达与异常分支
|
||||
- [x] run_eval.py:门槛判定(✅/❌)与数值格式化纯函数
|
||||
|
||||
## 部署与文档
|
||||
|
||||
- [x] Dockerfile 含 COPY scripts/ scripts/
|
||||
- [x] CLAUDE.md 项目结构、API 清单(含 documents 管理端点/stats//admin)与实际一致
|
||||
|
||||
## 集成
|
||||
|
||||
- [x] 内存 Qdrant 管理闭环冒烟通过:入库→列表→详情→检索→删除→统计
|
||||
- [x] `uv run pytest` 全部通过(含新增测试)
|
||||
- [x] `uv run ruff check app tests scripts` 无错误
|
||||
Reference in New Issue
Block a user