# 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 待集成阶段) - [ ] Phase 11: 多知识库管理 (0%) ⏳ - [x] Phase 12: 意图识别与规则引擎 (71%) 🔄 (T12.1-T12.5 完成,T12.6-T12.7 待集成阶段) --- ## 🔄 Current Phase ### Goal Phase 12 意图识别与规则引擎核心功能已完成,T12.6(Orchestrator 集成)和 T12.7(单元测试)留待集成阶段。 ### Completed Tasks (Phase 12) - [x] T12.1 定义 `IntentRule` SQLModel 实体,创建数据库表 `[AC-AISVC-65]` ✅ - [x] T12.2 实现 `IntentRuleService`:规则 CRUD + 命中统计更新 `[AC-AISVC-65~AC-AISVC-68]` ✅ - [x] T12.3 实现 `IntentRouter`:按优先级遍历规则,关键词+正则匹配 `[AC-AISVC-69]` ✅ - [x] T12.4 实现规则缓存:按 tenant_id 缓存规则列表,CRUD 操作时主动失效 `[AC-AISVC-69]` ✅ - [x] T12.5 实现意图规则管理 API:`POST/GET/PUT/DELETE /admin/intent-rules` `[AC-AISVC-65~AC-AISVC-68]` ✅ ### Pending Tasks (Phase 12 - 集成阶段) - [ ] T12.6 在 Orchestrator 中集成 IntentRouter:RAG 检索前执行意图识别,按 response_type 路由 `[AC-AISVC-69, AC-AISVC-70]` - [ ] T12.7 编写意图识别服务单元测试 `[AC-AISVC-65~AC-AISVC-70]` --- ## 🏗️ 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=60s,CRUD 操作时主动失效 - decision: 四种响应类型 reason: 支持不同的处理链路 impact: fixed 直接返回、rag 定向检索、flow 进入流程、transfer 转人工 --- ## 🧾 Session History ### 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(单元测试)留待集成阶段 ### 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 再编码。