5bf92a9ded
Co-authored-by: multica-agent <github@multica.ai>
23 lines
1.8 KiB
Markdown
23 lines
1.8 KiB
Markdown
# Work Log - AI问答流式响应(FL-184)
|
||
|
||
- 背景:
|
||
- AI 问答原接口等待 OpenAI-compatible `/chat/completions` 完整返回后再落库并返回 JSON,前端发送后只能等待整段回复。
|
||
|
||
- 本次处理:
|
||
- `/api/v1/ai-chat/conversations/{id}/messages` 改为 `application/x-ndjson` 流式响应,依次输出用户消息、回复增量和最终助手消息。
|
||
- 保留 `/api/v1/ai-chat/conversations/{id}/messages/sync` 同步接口,便于旧调用方或排障回退。
|
||
- 前端 AI 问答页面改为读取 `ReadableStream`,发送后立即追加用户消息和临时助手消息,并随增量实时刷新内容。
|
||
- 补充 AI 聊天流式服务单测,覆盖增量事件输出和最终消息落库。
|
||
|
||
- 验证:
|
||
- 基线:`npm --workspace web exec tsc --noEmit --pretty false` 通过。
|
||
- 基线:`python3 -m pytest api/tests/test_system_param_service.py` 因系统 Python 3.7 不满足项目 Python >=3.10 要求失败;后改用 uv 创建 Python 3.10 venv。
|
||
- 修改后:`python3 -m py_compile api/app/services/ai_chat_service.py api/app/api/v1/ai_chat.py api/tests/test_ai_chat_stream_service.py` 通过。
|
||
- 修改后:`npm --workspace web exec tsc --noEmit --pretty false` 通过。
|
||
- 修改后:`npm --workspace web exec eslint src/app/admin/ai-chat/page.tsx src/types/ai-chat.ts` 通过。
|
||
- 修改后:`PYTHONPATH=. api/.venv/bin/pytest api/tests/test_ai_chat_stream_service.py api/tests/test_system_param_service.py` 通过,3 passed;存在既有 SQLAlchemy relationship warning。
|
||
|
||
- 风险与关注点:
|
||
- 主消息发送接口响应格式由 JSON 改为 NDJSON 流;当前前端已同步适配,后端保留 sync 兼容接口。
|
||
- 流式工具调用会先聚合工具调用参数并执行,再继续流式输出工具后的最终回复。
|