2026-02-24 05:28:10 +00:00
|
|
|
|
# ai-service - Progress
|
|
|
|
|
|
|
|
|
|
|
|
---
|
|
|
|
|
|
|
|
|
|
|
|
## 📋 Context
|
|
|
|
|
|
|
|
|
|
|
|
- module: `ai-service`
|
|
|
|
|
|
- feature: `AISVC` (Python AI 中台)
|
2026-02-27 06:15:10 +00:00
|
|
|
|
- status: 🔄 进行中 (Phase 12)
|
2026-02-24 05:28:10 +00:00
|
|
|
|
|
|
|
|
|
|
---
|
|
|
|
|
|
|
|
|
|
|
|
## 🔗 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%) ✅
|
2026-02-24 05:55:17 +00:00
|
|
|
|
- [x] Phase 3: 核心编排(Orchestrator & LLM Adapter) (100%) ✅
|
2026-02-25 15:44:28 +00:00
|
|
|
|
- [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%) ✅
|
2026-02-27 06:15:10 +00:00
|
|
|
|
- [x] Phase 10: Prompt 模板化 (80%) 🔄 (T10.1-T10.8 完成,T10.9-T10.10 待集成阶段)
|
2026-02-27 06:20:31 +00:00
|
|
|
|
- [x] Phase 11: 多知识库管理 (63%) 🔄 (T11.1-T11.5 完成,T11.6-T11.8 待集成阶段)
|
2026-02-27 06:15:10 +00:00
|
|
|
|
- [x] Phase 12: 意图识别与规则引擎 (71%) 🔄 (T12.1-T12.5 完成,T12.6-T12.7 待集成阶段)
|
2026-02-24 05:28:10 +00:00
|
|
|
|
|
|
|
|
|
|
---
|
|
|
|
|
|
|
|
|
|
|
|
## 🔄 Current Phase
|
|
|
|
|
|
|
|
|
|
|
|
### Goal
|
2026-02-27 06:20:31 +00:00
|
|
|
|
Phase 11 多知识库管理核心功能已完成 (T11.1-T11.5),T11.6(OptimizedRetriever 多 Collection 检索)、T11.7(kb_default 迁移)、T11.8(单元测试)留待集成阶段。
|
2026-02-24 05:28:10 +00:00
|
|
|
|
|
2026-02-27 06:20:31 +00:00
|
|
|
|
### Completed Tasks (Phase 11)
|
2026-02-24 05:28:10 +00:00
|
|
|
|
|
2026-02-27 06:20:31 +00:00
|
|
|
|
- [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]` ✅
|
2026-02-27 07:27:02 +00:00
|
|
|
|
- [x] T11.3 实现知识库管理 API:`POST/GET/PUT/DELETE /admin/kb/knowledge-bases` `[AC-AISVC-59, AC-AISVC-60, AC-AISVC-61, AC-AISVC-62]` ✅
|
2026-02-27 06:20:31 +00:00
|
|
|
|
- [x] T11.4 升级 Qdrant Collection 命名:`kb_{tenant_id}_{kb_id}`,兼容现有 `kb_{tenant_id}` `[AC-AISVC-63]` ✅
|
|
|
|
|
|
- [x] T11.5 修改文档上传流程:支持指定 `kbId` 参数,索引到对应 Collection `[AC-AISVC-63]` ✅
|
2026-02-27 06:15:10 +00:00
|
|
|
|
|
2026-02-27 06:20:31 +00:00
|
|
|
|
### Pending Tasks (Phase 11 - 集成阶段)
|
2026-02-27 06:15:10 +00:00
|
|
|
|
|
2026-02-27 06:20:31 +00:00
|
|
|
|
- [ ] 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]`
|
2026-02-24 05:28:10 +00:00
|
|
|
|
|
|
|
|
|
|
---
|
|
|
|
|
|
|
|
|
|
|
|
## 🏗️ Technical Context
|
|
|
|
|
|
|
|
|
|
|
|
### Module Structure
|
|
|
|
|
|
|
|
|
|
|
|
- `ai-service/`
|
|
|
|
|
|
- `app/`
|
|
|
|
|
|
- `api/` - FastAPI 路由层
|
2026-02-27 06:15:10 +00:00
|
|
|
|
- `admin/intent_rules.py` - 意图规则管理 API ✅
|
|
|
|
|
|
- `admin/prompt_templates.py` - Prompt 模板管理 API ✅
|
2026-02-24 05:28:10 +00:00
|
|
|
|
- `models/` - Pydantic 模型和 SQLModel 实体
|
2026-02-27 06:15:10 +00:00
|
|
|
|
- `entities.py` - IntentRule, PromptTemplate, PromptTemplateVersion 实体 ✅
|
2026-02-24 05:28:10 +00:00
|
|
|
|
- `services/`
|
2026-02-27 06:15:10 +00:00
|
|
|
|
- `intent/` - 意图识别服务 ✅
|
|
|
|
|
|
- `__init__.py` - 模块导出
|
|
|
|
|
|
- `rule_service.py` - 规则 CRUD、命中统计、缓存
|
|
|
|
|
|
- `router.py` - IntentRouter 匹配引擎
|
|
|
|
|
|
- `prompt/` - Prompt 模板服务 ✅
|
|
|
|
|
|
- `__init__.py` - 模块导出
|
|
|
|
|
|
- `template_service.py` - 模板 CRUD、版本管理、发布/回滚、缓存
|
|
|
|
|
|
- `variable_resolver.py` - 变量替换引擎
|
2026-02-24 05:28:10 +00:00
|
|
|
|
|
|
|
|
|
|
### Key Decisions (Why / Impact)
|
|
|
|
|
|
|
2026-02-27 06:15:10 +00:00
|
|
|
|
- decision: 意图规则数据库驱动
|
|
|
|
|
|
reason: 支持动态配置意图识别规则,无需重启服务
|
|
|
|
|
|
impact: 规则存储在 PostgreSQL,支持按租户隔离
|
2026-02-24 05:28:10 +00:00
|
|
|
|
|
2026-02-27 06:15:10 +00:00
|
|
|
|
- decision: 关键词 + 正则双匹配机制
|
|
|
|
|
|
reason: 关键词匹配快速高效,正则匹配支持复杂模式
|
|
|
|
|
|
impact: 先关键词匹配再正则匹配,优先级高的规则先匹配
|
2026-02-24 05:47:12 +00:00
|
|
|
|
|
2026-02-27 06:15:10 +00:00
|
|
|
|
- decision: 内存缓存 + TTL 策略
|
|
|
|
|
|
reason: 减少数据库查询,提升匹配性能
|
|
|
|
|
|
impact: 缓存 TTL=60s,CRUD 操作时主动失效
|
2026-02-24 05:47:12 +00:00
|
|
|
|
|
2026-02-27 06:15:10 +00:00
|
|
|
|
- decision: 四种响应类型
|
|
|
|
|
|
reason: 支持不同的处理链路
|
|
|
|
|
|
impact: fixed 直接返回、rag 定向检索、flow 进入流程、transfer 转人工
|
2026-02-24 05:28:10 +00:00
|
|
|
|
|
|
|
|
|
|
---
|
|
|
|
|
|
|
|
|
|
|
|
## 🧾 Session History
|
|
|
|
|
|
|
2026-02-27 06:20:31 +00:00
|
|
|
|
### Session #9 (2026-02-27)
|
|
|
|
|
|
- completed:
|
|
|
|
|
|
- T11.1-T11.5 多知识库管理核心功能
|
|
|
|
|
|
- 扩展 KnowledgeBase 实体(kb_type、priority、is_enabled、doc_count)
|
|
|
|
|
|
- 实现 KnowledgeBaseService(CRUD、Collection 初始化/清理、文档计数)
|
|
|
|
|
|
- 实现知识库管理 API(POST/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.6(OptimizedRetriever 多 Collection 检索)、T11.7(kb_default 迁移)、T11.8(单元测试)留待集成阶段
|
|
|
|
|
|
- 进度文档已写入 `ai-service/docs/progress/phase11_multi_kb_progress.md`
|
|
|
|
|
|
|
2026-02-27 06:15:10 +00:00
|
|
|
|
### Session #8 (2026-02-27)
|
|
|
|
|
|
- completed:
|
|
|
|
|
|
- T12.1-T12.5 意图识别与规则引擎核心功能
|
|
|
|
|
|
- 实现 IntentRule 实体(支持关键词、正则、优先级、四种响应类型)
|
|
|
|
|
|
- 实现 IntentRuleService(CRUD、命中统计、缓存)
|
|
|
|
|
|
- 实现 IntentRouter 匹配引擎(按优先级 DESC 遍历,先关键词再正则)
|
|
|
|
|
|
- 实现规则缓存(按 tenant_id 缓存,TTL=60s,CRUD 主动失效)
|
|
|
|
|
|
- 实现意图规则管理 API(POST/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.6(Orchestrator 集成)和 T12.7(单元测试)留待集成阶段
|
|
|
|
|
|
|
|
|
|
|
|
### Session #7 (2026-02-27)
|
|
|
|
|
|
- completed:
|
|
|
|
|
|
- T10.1-T10.8 Prompt 模板化核心功能
|
|
|
|
|
|
- 实现 PromptTemplate 和 PromptTemplateVersion 实体
|
|
|
|
|
|
- 实现 PromptTemplateService(CRUD、版本管理、发布/回滚、缓存)
|
|
|
|
|
|
- 实现 VariableResolver 变量替换引擎
|
|
|
|
|
|
- 实现 Prompt 模板管理 API(CRUD + 发布/回滚)
|
|
|
|
|
|
- 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(单元测试)留待集成阶段
|
|
|
|
|
|
|
2026-02-25 15:44:28 +00:00
|
|
|
|
### Session #6 (2026-02-25)
|
2026-02-24 05:55:17 +00:00
|
|
|
|
- completed:
|
2026-02-25 15:44:28 +00:00
|
|
|
|
- T9.1-T9.10 租户管理与 RAG 优化功能
|
|
|
|
|
|
- 实现 Tenant 实体和租户管理 API
|
|
|
|
|
|
- 实现租户 ID 格式校验与自动创建
|
|
|
|
|
|
- 实现前端租户选择器
|
|
|
|
|
|
- 实现文档多编码支持
|
|
|
|
|
|
- 实现按行分块功能
|
|
|
|
|
|
- 实现 NomicEmbeddingProvider
|
|
|
|
|
|
- 实现多维度向量存储
|
|
|
|
|
|
- 实现 KnowledgeIndexer
|
2026-02-24 05:55:17 +00:00
|
|
|
|
- changes:
|
2026-02-25 15:44:28 +00:00
|
|
|
|
- 新增 `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`
|
2026-02-24 05:55:17 +00:00
|
|
|
|
|
2026-02-24 05:28:10 +00:00
|
|
|
|
---
|
|
|
|
|
|
|
|
|
|
|
|
## 🚀 Startup Guide
|
|
|
|
|
|
|
|
|
|
|
|
1. 读取本进度文档,定位当前 Phase 与 Next Action。
|
|
|
|
|
|
2. 打开并阅读 Spec References 指向的模块规范。
|
|
|
|
|
|
3. 直接执行 Next Action;遇到缺口先更新 spec 再编码。
|