ai-robot-core/docs/progress/ai-service-progress.md

190 lines
8.1 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# ai-service - Progress
---
## 📋 Context
- module: `ai-service`
- feature: `AISVC` (Python AI 中台)
- status: 🔄 进行中 (Phase 12)
---
## 🔗 Spec References (SSOT)
- agents: `agents.md`
- contracting: `spec/contracting.md`
- requirements: `spec/ai-service/requirements.md`
- openapi_provider: `spec/ai-service/openapi.provider.yaml`
- design: `spec/ai-service/design.md`
- tasks: `spec/ai-service/tasks.md`
---
## 📊 Overall Progress (Phases)
- [x] Phase 1: 基础设施FastAPI 框架与多租户基础) (100%) ✅
- [x] Phase 2: 存储与检索实现Memory & Retrieval (100%) ✅
- [x] Phase 3: 核心编排Orchestrator & LLM Adapter (100%) ✅
- [x] Phase 4: 流式响应SSE 实现与状态机) (100%) ✅
- [x] Phase 5: 集成与冒烟测试Quality Assurance (100%) ✅
- [x] Phase 6: 前后端联调真实对接 (100%) ✅
- [x] Phase 7: 嵌入模型可插拔与文档解析 (100%) ✅
- [x] Phase 8: LLM 配置与 RAG 调试输出 (100%) ✅
- [x] Phase 9: 租户管理与 RAG 优化 (100%) ✅
- [x] Phase 10: Prompt 模板化 (80%) 🔄 (T10.1-T10.8 完成T10.9-T10.10 待集成阶段)
- [x] Phase 11: 多知识库管理 (63%) 🔄 (T11.1-T11.5 完成T11.6-T11.8 待集成阶段)
- [x] Phase 12: 意图识别与规则引擎 (71%) 🔄 (T12.1-T12.5 完成T12.6-T12.7 待集成阶段)
---
## 🔄 Current Phase
### Goal
Phase 11 多知识库管理核心功能已完成 (T11.1-T11.5)T11.6OptimizedRetriever 多 Collection 检索、T11.7kb_default 迁移、T11.8(单元测试)留待集成阶段。
### Completed Tasks (Phase 11)
- [x] T11.1 扩展 `KnowledgeBase` 实体:新增 `kb_type`、`priority`、`is_enabled`、`doc_count` 字段 `[AC-AISVC-59]`
- [x] T11.2 实现知识库 CRUD 服务:创建时初始化 Qdrant Collection删除时清理 Collection `[AC-AISVC-59, AC-AISVC-61, AC-AISVC-62]`
- [x] T11.3 实现知识库管理 API`POST/GET/PUT/DELETE /admin/kb/knowledge-bases` `[AC-AISVC-59, AC-AISVC-60, AC-AISVC-61, AC-AISVC-62]`
- [x] T11.4 升级 Qdrant Collection 命名:`kb_{tenant_id}_{kb_id}`,兼容现有 `kb_{tenant_id}` `[AC-AISVC-63]`
- [x] T11.5 修改文档上传流程:支持指定 `kbId` 参数,索引到对应 Collection `[AC-AISVC-63]`
### Pending Tasks (Phase 11 - 集成阶段)
- [ ] T11.6 修改 `OptimizedRetriever`:支持 `target_kb_ids` 参数,实现多 Collection 并行检索 `[AC-AISVC-64]`
- [ ] T11.7 实现 `kb_default` 自动迁移:首次启动时为现有数据创建默认知识库记录 `[AC-AISVC-59]`
- [ ] T11.8 编写多知识库服务单元测试 `[AC-AISVC-59~AC-AISVC-64]`
---
## 🏗️ Technical Context
### Module Structure
- `ai-service/`
- `app/`
- `api/` - FastAPI 路由层
- `admin/intent_rules.py` - 意图规则管理 API ✅
- `admin/prompt_templates.py` - Prompt 模板管理 API ✅
- `models/` - Pydantic 模型和 SQLModel 实体
- `entities.py` - IntentRule, PromptTemplate, PromptTemplateVersion 实体 ✅
- `services/`
- `intent/` - 意图识别服务 ✅
- `__init__.py` - 模块导出
- `rule_service.py` - 规则 CRUD、命中统计、缓存
- `router.py` - IntentRouter 匹配引擎
- `prompt/` - Prompt 模板服务 ✅
- `__init__.py` - 模块导出
- `template_service.py` - 模板 CRUD、版本管理、发布/回滚、缓存
- `variable_resolver.py` - 变量替换引擎
### Key Decisions (Why / Impact)
- decision: 意图规则数据库驱动
reason: 支持动态配置意图识别规则,无需重启服务
impact: 规则存储在 PostgreSQL支持按租户隔离
- decision: 关键词 + 正则双匹配机制
reason: 关键词匹配快速高效,正则匹配支持复杂模式
impact: 先关键词匹配再正则匹配,优先级高的规则先匹配
- decision: 内存缓存 + TTL 策略
reason: 减少数据库查询,提升匹配性能
impact: 缓存 TTL=60sCRUD 操作时主动失效
- decision: 四种响应类型
reason: 支持不同的处理链路
impact: fixed 直接返回、rag 定向检索、flow 进入流程、transfer 转人工
---
## 🧾 Session History
### Session #9 (2026-02-27)
- completed:
- T11.1-T11.5 多知识库管理核心功能
- 扩展 KnowledgeBase 实体kb_type、priority、is_enabled、doc_count
- 实现 KnowledgeBaseServiceCRUD、Collection 初始化/清理、文档计数)
- 实现知识库管理 APIPOST/GET/PUT/DELETE
- 升级 Qdrant Collection 命名kb_{tenantId}_{kbId},兼容旧格式)
- 修改文档上传流程(支持 kbId 参数,索引到对应 Collection
- changes:
- 新增 `app/models/entities.py` KBType 枚举、KnowledgeBaseCreate/Update Schema
- 新增 `app/services/knowledge_base_service.py` 知识库 CRUD 服务
- 更新 `app/core/qdrant_client.py` 多知识库 Collection 管理方法
- 更新 `app/api/admin/kb.py` 知识库管理 API 和文档上传流程
- 更新 `spec/ai-service/tasks.md` 标记任务完成
- notes:
- T11.6OptimizedRetriever 多 Collection 检索、T11.7kb_default 迁移、T11.8(单元测试)留待集成阶段
- 进度文档已写入 `ai-service/docs/progress/phase11_multi_kb_progress.md`
### Session #8 (2026-02-27)
- completed:
- T12.1-T12.5 意图识别与规则引擎核心功能
- 实现 IntentRule 实体(支持关键词、正则、优先级、四种响应类型)
- 实现 IntentRuleServiceCRUD、命中统计、缓存
- 实现 IntentRouter 匹配引擎(按优先级 DESC 遍历,先关键词再正则)
- 实现规则缓存(按 tenant_id 缓存TTL=60sCRUD 主动失效)
- 实现意图规则管理 APIPOST/GET/PUT/DELETE
- changes:
- 新增 `app/models/entities.py` IntentRule, IntentRuleCreate, IntentRuleUpdate, IntentMatchResult 实体
- 新增 `app/services/intent/__init__.py` 模块导出
- 新增 `app/services/intent/rule_service.py` 规则服务
- 新增 `app/services/intent/router.py` 匹配引擎
- 新增 `app/api/admin/intent_rules.py` 规则管理 API
- 更新 `app/api/admin/__init__.py` 导出新路由
- 更新 `app/main.py` 注册新路由
- 更新 `spec/ai-service/tasks.md` 标记任务完成
- notes:
- T12.6Orchestrator 集成)和 T12.7(单元测试)留待集成阶段
### Session #7 (2026-02-27)
- completed:
- T10.1-T10.8 Prompt 模板化核心功能
- 实现 PromptTemplate 和 PromptTemplateVersion 实体
- 实现 PromptTemplateServiceCRUD、版本管理、发布/回滚、缓存)
- 实现 VariableResolver 变量替换引擎
- 实现 Prompt 模板管理 APICRUD + 发布/回滚)
- changes:
- 新增 `app/models/entities.py` PromptTemplate, PromptTemplateVersion 实体
- 新增 `app/services/prompt/template_service.py` 模板服务
- 新增 `app/services/prompt/variable_resolver.py` 变量替换引擎
- 新增 `app/api/admin/prompt_templates.py` 模板管理 API
- 更新 `app/main.py` 注册新路由
- 更新 `spec/ai-service/tasks.md` 标记任务完成
- notes:
- T10.9(修改 Orchestrator和 T10.10(单元测试)留待集成阶段
### Session #6 (2026-02-25)
- completed:
- T9.1-T9.10 租户管理与 RAG 优化功能
- 实现 Tenant 实体和租户管理 API
- 实现租户 ID 格式校验与自动创建
- 实现前端租户选择器
- 实现文档多编码支持
- 实现按行分块功能
- 实现 NomicEmbeddingProvider
- 实现多维度向量存储
- 实现 KnowledgeIndexer
- changes:
- 新增 `app/models/entities.py` Tenant 实体
- 更新 `app/core/middleware.py` 租户校验逻辑
- 新增 `app/api/admin/tenants.py` 租户管理 API
- 新增 `ai-service-admin/src/api/tenant.ts` 前端 API
- 更新 `ai-service-admin/src/App.vue` 租户选择器
- 更新 `ai-service/app/api/admin/kb.py` 多编码支持
- 新增 `app/services/embedding/nomic_provider.py`
- 新增 `app/services/retrieval/indexer.py`
- 新增 `app/services/retrieval/metadata.py`
- 新增 `app/services/retrieval/optimized_retriever.py`
---
## 🚀 Startup Guide
1. 读取本进度文档,定位当前 Phase 与 Next Action。
2. 打开并阅读 Spec References 指向的模块规范。
3. 直接执行 Next Action遇到缺口先更新 spec 再编码。