Files
fquiz/memory/2026-06-24.md
T
chengkai3 5bf92a9ded feat:[FL-184][AI问答改成流式响应]
Co-authored-by: multica-agent <github@multica.ai>
2026-06-24 13:48:33 +08:00

1.8 KiB
Raw Blame History

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 兼容接口。
    • 流式工具调用会先聚合工具调用参数并执行,再继续流式输出工具后的最终回复。