95 lines
3.6 KiB
Markdown
95 lines
3.6 KiB
Markdown
---
|
||
context:
|
||
module: "intent-driven-script"
|
||
feature: "IDS-Backend"
|
||
status: "✅已完成"
|
||
version: "1.0.0"
|
||
active_ac_range: "AC-IDS-01~13"
|
||
role: "backend"
|
||
|
||
spec_references:
|
||
requirements: "spec/intent-driven-script/requirements.md"
|
||
design: "spec/intent-driven-script/design.md"
|
||
tasks: "spec/intent-driven-script/tasks.md"
|
||
openapi: "spec/intent-driven-script/openapi.admin.yaml"
|
||
|
||
overall_progress:
|
||
- [x] Phase 1: 数据模型与 API 扩展 (100%)
|
||
- [x] Phase 2: 后端话术生成引擎 (100%)
|
||
- [x] Phase 4: 测试与验证 (100%)
|
||
|
||
current_phase:
|
||
goal: "后端开发已完成"
|
||
sub_tasks:
|
||
- [x] Task 1.1: 扩展 Python 类型定义 ✅
|
||
- [x] Task 1.3: 更新 OpenAPI 契约 ✅ (已定义在 spec/)
|
||
- [x] Task 1.4: 验证 API 向后兼容性 ✅
|
||
- [x] Task 2.1: 创建 ScriptGenerator 模块 ✅
|
||
- [x] Task 2.2: 创建 TemplateEngine 模块 ✅
|
||
- [x] Task 2.3: 扩展 FlowEngine ✅
|
||
- [x] Task 2.4: 修改 FlowEngine.start() ✅
|
||
- [x] Task 2.5: 修改 FlowEngine.advance() ✅
|
||
- [x] Task 2.6: 实现 Fallback 机制 ✅
|
||
- [x] Phase 4: 单元测试 ✅ (32 tests passed)
|
||
|
||
next_action:
|
||
immediate: "后端开发完成,等待前端联调"
|
||
details:
|
||
file: "N/A"
|
||
action: "通知前端进行联调"
|
||
constraints: "无"
|
||
|
||
technical_context:
|
||
module_structure: "ai-service/app/services/flow/"
|
||
key_decisions:
|
||
- decision: "在现有 FlowStep SQLModel 中扩展字段"
|
||
reason: "steps 字段已经是 JSON 类型,可以直接扩展,无需数据库迁移"
|
||
impact: "保持向后兼容,现有流程无需修改"
|
||
- decision: "ScriptGenerator 和 TemplateEngine 作为独立模块"
|
||
reason: "遵循单一职责原则,便于测试和维护"
|
||
impact: "需要在 FlowEngine 中注入 LLM 客户端"
|
||
- decision: "LLM 调用超时设置为 2 秒"
|
||
reason: "对话系统需要快速响应,2 秒是可接受的上限"
|
||
impact: "超时后返回 fallback 话术"
|
||
code_snippets: |
|
||
# FlowStep 扩展字段
|
||
script_mode: str = Field(default=ScriptMode.FIXED.value)
|
||
intent: str | None = Field(default=None)
|
||
intent_description: str | None = Field(default=None)
|
||
script_constraints: list[str] | None = Field(default=None)
|
||
expected_variables: list[str] | None = Field(default=None)
|
||
|
||
# FlowEngine 话术生成
|
||
async def _generate_step_content(step, context, history) -> str:
|
||
script_mode = step.get("script_mode", "fixed")
|
||
if script_mode == "fixed":
|
||
return step.get("content", "")
|
||
elif script_mode == "flexible":
|
||
return await self._script_generator.generate(...)
|
||
elif script_mode == "template":
|
||
return await self._template_engine.fill_template(...)
|
||
|
||
session_history:
|
||
- session: "Session #1 (2026-02-28)"
|
||
completed:
|
||
- Task 1.1: 扩展 Python 类型定义
|
||
- Task 2.1: 创建 ScriptGenerator 模块
|
||
- Task 2.2: 创建 TemplateEngine 模块
|
||
- Task 2.3-2.6: 扩展 FlowEngine
|
||
- Phase 4: 单元测试 (32 tests)
|
||
changes:
|
||
- ai-service/app/models/entities.py (新增 ScriptMode 枚举,扩展 FlowStep)
|
||
- ai-service/app/services/flow/script_generator.py (新建)
|
||
- ai-service/app/services/flow/template_engine.py (新建)
|
||
- ai-service/app/services/flow/engine.py (重构)
|
||
- ai-service/app/services/flow/__init__.py (更新导出)
|
||
- ai-service/tests/test_script_generator.py (新建)
|
||
- ai-service/tests/test_template_engine.py (新建)
|
||
- ai-service/tests/test_flow_engine_script_generation.py (新建)
|
||
|
||
startup_guide:
|
||
- "Step 1: 读取本进度文档"
|
||
- "Step 2: 读取 spec_references 中的规范"
|
||
- "Step 3: 执行 next_action"
|
||
---
|