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

8.1 KiB
Raw Blame History

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)

  • Phase 1: 基础设施FastAPI 框架与多租户基础) (100%)
  • Phase 2: 存储与检索实现Memory & Retrieval (100%)
  • Phase 3: 核心编排Orchestrator & LLM Adapter (100%)
  • Phase 4: 流式响应SSE 实现与状态机) (100%)
  • Phase 5: 集成与冒烟测试Quality Assurance (100%)
  • Phase 6: 前后端联调真实对接 (100%)
  • Phase 7: 嵌入模型可插拔与文档解析 (100%)
  • Phase 8: LLM 配置与 RAG 调试输出 (100%)
  • Phase 9: 租户管理与 RAG 优化 (100%)
  • Phase 10: Prompt 模板化 (80%) 🔄 (T10.1-T10.8 完成T10.9-T10.10 待集成阶段)
  • Phase 11: 多知识库管理 (63%) 🔄 (T11.1-T11.5 完成T11.6-T11.8 待集成阶段)
  • 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)

  • T11.1 扩展 KnowledgeBase 实体:新增 kb_typepriorityis_enableddoc_count 字段 [AC-AISVC-59]
  • T11.2 实现知识库 CRUD 服务:创建时初始化 Qdrant Collection删除时清理 Collection [AC-AISVC-59, AC-AISVC-61, AC-AISVC-62]
  • T11.3 实现知识库管理 APIPOST/GET/PUT/DELETE /admin/kb/knowledge-bases [AC-AISVC-59~AC-AISVC-62]
  • T11.4 升级 Qdrant Collection 命名:kb_{tenant_id}_{kb_id},兼容现有 kb_{tenant_id} [AC-AISVC-63]
  • 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 再编码。