4.2 KiB
4.2 KiB
ai-service - Progress
📋 Context
- module:
ai-service - feature:
AISVC(Python AI 中台) - status: 🔄 进行中
🔗 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) (60%) 🔄
- Phase 4: 流式响应(SSE 实现与状态机) (0%) ⏳
- Phase 5: 集成与冒烟测试(Quality Assurance) (0%) ⏳
🔄 Current Phase
Goal
实现核心编排层,包括 LLM Adapter 和 Orchestrator 的完整功能。
Sub Tasks
Phase 3: 核心编排(Orchestrator & LLM Adapter)
- 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]⏳ - T3.5 验证 non-streaming 响应字段完全符合
openapi.provider.yaml契约[AC-AISVC-02]⏳
Next Action (Must be Specific)
Immediate: 执行 T3.3 - 实现 RAG 检索不足时的置信度下调与 shouldTransfer 逻辑。
Details:
- 定义"检索不足"的判定条件:
hits.size < minHitsmax(score) < scoreThreshold- evidence token 超限
- 实现置信度计算策略:
- 基于检索分数计算 confidence
- 检索不足时下调 confidence
- 实现
shouldTransfer逻辑:- 当
confidence < T_low时shouldTransfer=true - 添加
transferReason说明
- 当
- reference:
spec/ai-service/design.mdSection 4.3 - 检索不中兜底与置信度策略spec/ai-service/requirements.mdAC-AISVC-17, AC-AISVC-18, AC-AISVC-19
🏗️ Technical Context
Module Structure
ai-service/app/api/- FastAPI 路由层core/- 配置、异常、中间件、SSEmodels/- Pydantic 模型和 SQLModel 实体services/llm/- LLM Adapter 实现 ✅base.py- LLMClient 抽象接口openai_client.py- OpenAI 兼容客户端
memory.py- Memory 服务orchestrator.py- 编排服务retrieval/- 检索层
tests/- 单元测试
Key Decisions (Why / Impact)
-
decision: LLM Adapter 使用 httpx 而非 langchain-openai reason: 更轻量、更可控、减少依赖 impact: 需要手动处理 OpenAI API 响应解析
-
decision: 使用 tenacity 实现重试逻辑 reason: 简单可靠的重试机制 impact: 提高服务稳定性
Code Snippets
# [AC-AISVC-02] LLM Response generation
response = await llm_client.generate(messages, config=LLMConfig(...))
# [AC-AISVC-06] Streaming generation
async for chunk in llm_client.stream_generate(messages):
yield create_message_event(delta=chunk.delta)
🧾 Session History
Session #1 (2026-02-24)
- completed:
- T3.1 实现 LLM Adapter
- 创建 LLMClient 抽象接口 (base.py)
- 实现 OpenAIClient (openai_client.py)
- 编写单元测试 (test_llm_adapter.py)
- 修复 entities.py JSON 类型问题
- changes:
- 新增
app/services/llm/__init__.py - 新增
app/services/llm/base.py - 新增
app/services/llm/openai_client.py - 新增
tests/test_llm_adapter.py - 更新
app/core/config.py添加 LLM 配置 - 修复
app/models/entities.pyJSON 列类型
- 新增
🚀 Startup Guide
- 读取本进度文档,定位当前 Phase 与 Next Action。
- 打开并阅读 Spec References 指向的模块规范。
- 直接执行 Next Action;遇到缺口先更新 spec 再编码。