From 4cee28e9f4c21e2d582a18b623c644c2e4176dc8 Mon Sep 17 00:00:00 2001 From: MerCry Date: Tue, 24 Feb 2026 13:22:56 +0800 Subject: [PATCH] docs: mark Phase 1 and Phase 2 tasks as completed [AC-AISVC-01~AC-AISVC-20] --- spec/ai-service/tasks.md | 24 ++++++++++++------------ 1 file changed, 12 insertions(+), 12 deletions(-) diff --git a/spec/ai-service/tasks.md b/spec/ai-service/tasks.md index 90163e3..5c3f683 100644 --- a/spec/ai-service/tasks.md +++ b/spec/ai-service/tasks.md @@ -16,22 +16,22 @@ last_updated: "2026-02-24" ## 2. 任务执行计划 ### Phase 1: 基础设施(FastAPI 框架与多租户基础) -- [ ] T1.1 初始化 FastAPI 项目骨架,配置基础环境与日志(包含 X-Tenant-Id 记录) `[AC-AISVC-01]` -- [ ] T1.2 实现 `X-Tenant-Id` Header 拦截器,校验必填性并注入 Request State `[AC-AISVC-10, AC-AISVC-12]` -- [ ] T1.3 定义基础响应模型 `ErrorResponse` 与异常处理器(Exception Handler) `[AC-AISVC-03, AC-AISVC-04]` -- [ ] T1.4 初始化 PostgreSQL 数据库客户端(SQLModel/SQLAlchemy),支持租户隔离查询逻辑 `[AC-AISVC-11]` -- [ ] T1.5 初始化 Qdrant 客户端,封装按租户动态选择 Collection 的工具函数 `[AC-AISVC-10]` -- [ ] T1.6 实现 `/ai/health` 健康检查接口 `[AC-AISVC-20]` +- [x] T1.1 初始化 FastAPI 项目骨架,配置基础环境与日志(包含 X-Tenant-Id 记录) `[AC-AISVC-01]` ✅ +- [x] T1.2 实现 `X-Tenant-Id` Header 拦截器,校验必填性并注入 Request State `[AC-AISVC-10, AC-AISVC-12]` ✅ +- [x] T1.3 定义基础响应模型 `ErrorResponse` 与异常处理器(Exception Handler) `[AC-AISVC-03, AC-AISVC-04]` ✅ +- [x] T1.4 初始化 PostgreSQL 数据库客户端(SQLModel/SQLAlchemy),支持租户隔离查询逻辑 `[AC-AISVC-11]` ✅ +- [x] T1.5 初始化 Qdrant 客户端,封装按租户动态选择 Collection 的工具函数 `[AC-AISVC-10]` ✅ +- [x] T1.6 实现 `/ai/health` 健康检查接口 `[AC-AISVC-20]` ✅ ### Phase 2: 存储与检索实现(Memory & Retrieval) -- [ ] T2.1 实现 Memory 层:定义 `chat_sessions` 与 `chat_messages` SQLModel 实体 `[AC-AISVC-13]` -- [ ] T2.2 实现 Memory 层:完成基于 `(tenant_id, session_id)` 的历史消息加载与追加 API `[AC-AISVC-13]` -- [ ] T2.3 实现 Retrieval 层:定义 `BaseRetriever` 抽象基类(插件点预留) `[AC-AISVC-16]` -- [ ] T2.4 实现 `VectorRetriever`:集成 `qdrant-client` 完成向量检索,支持 scoreThreshold 过滤 `[AC-AISVC-16, AC-AISVC-17]` -- [ ] T2.5 编写 Memory 与 Retrieval 层的独立单元测试(Mock 数据库与向量库) `[AC-AISVC-10, AC-AISVC-11]` +- [x] T2.1 实现 Memory 层:定义 `chat_sessions` 与 `chat_messages` SQLModel 实体 `[AC-AISVC-13]` ✅ +- [x] T2.2 实现 Memory 层:完成基于 `(tenant_id, session_id)` 的历史消息加载与追加 API `[AC-AISVC-13]` ✅ +- [x] T2.3 实现 Retrieval 层:定义 `BaseRetriever` 抽象基类(插件点预留) `[AC-AISVC-16]` ✅ +- [x] T2.4 实现 `VectorRetriever`:集成 `qdrant-client` 完成向量检索,支持 scoreThreshold 过滤 `[AC-AISVC-16, AC-AISVC-17]` ✅ +- [x] T2.5 编写 Memory 与 Retrieval 层的独立单元测试(Mock 数据库与向量库) `[AC-AISVC-10, AC-AISVC-11]` ✅ ### Phase 3: 核心编排(Orchestrator & LLM Adapter) -- [ ] T3.1 实现 LLM Adapter:封装 `langchain-openai` 或官方 SDK,支持 `generate` 与 `stream_generate` `[AC-AISVC-02, AC-AISVC-06]` +- [x] T3.1 实现 LLM Adapter:封装 `langchain-openai` 或官方 SDK,支持 `generate` 与 `stream_generate` `[AC-AISVC-02, AC-AISVC-06]` ✅ - [ ] T3.2 实现 Orchestrator:实现上下文合并逻辑(H_local + H_ext 的去重与截断策略) `[AC-AISVC-14, AC-AISVC-15]` - [ ] T3.3 实现 Orchestrator:实现 RAG 检索不足时的置信度下调与 `shouldTransfer` 逻辑 `[AC-AISVC-17, AC-AISVC-18, AC-AISVC-19]` - [ ] T3.4 实现 Orchestrator:整合 Memory、Retrieval 与 LLM 完成 non-streaming 生成闭环 `[AC-AISVC-01, AC-AISVC-02]`