跳转到主要内容

端点

POST /api/v1/chat/stream

概览

通过发送消息与 AI 健康助手交互,并接收智能的流式回复。API 支持两种 Agent 类型:DeepAgent(基于 LangChain,用于复杂任务)和 BaselineAgent(原生 Gemini,用于简单对话)。
聊天 API 使用服务器发送事件(SSE)进行流式响应,并支持文件上传、MCP 工具调用和多语言对话。

请求参数

question
string
必填
用户的消息或问题
agent
string
必填
要使用的 Agent 类型:deep (DeepAgent) 或 baseline (BaselineAgent)
user_id
string
必填
经过身份验证的用户的唯一标识符
query_user_id
string
要查询其数据的用户 ID(默认为 user_id)。用于帮助询问功能。
session_id
string
用于维持对话上下文的会话 ID。如果未提供,则自动生成。
provider
string
LLM 提供商覆盖:google, openai, openrouter。如果未指定,则使用 Agent 的默认设置。
enable_mcp
integer
默认值:"1"
启用 MCP 工具(1 = 启用, 0 = 禁用)
file_list
array
要包含在对话中的文件对象数组
prompt_name
string
要使用的自定义提示模板名称
language
string
默认值:"en"
回复语言:en, zh 等。
timezone
string
默认值:"America/Los_Angeles"
用于基于时间的查询的用户时区
token
string
JWT 身份验证令牌
curl -X POST http://localhost:18080/api/v1/chat/stream \
  -H "Content-Type: application/json" \
  -H "Authorization: Bearer YOUR_JWT_TOKEN" \
  -d '{
    "question": "我昨天走了多少步?",
    "agent": "deep",
    "user_id": "user_123",
    "session_id": "session_abc",
    "language": "zh"
  }'

响应格式

API 返回带有 JSON 分块的服务器发送事件(SSE)。每个分块都有一个 typecontent
data: {"type": "reply", "content": "根据您的 Garmin 数据"}
data: {"type": "reply", "content": ",您走了"}
data: {"type": "reply", "content": " 10,543 步"}

分块类型

类型描述
replyAI 响应内容令牌
thinking推理/思考令牌(适用于具有推理能力的模型)
queryTitle正在调用的工具名称
queryArguments工具调用的参数
queryDetail工具执行的结果
costStatistics令牌使用情况和成本信息
end流完成信号
error错误消息
聊天服务会自动持久化对话历史记录,并与 MCP 工具集成以访问健康数据、执行计算等。

Agent 类型

基于 LangChain 的 Agent,用于处理复杂任务:
  • 文件处理(PDF、图像、音频)
  • 多步规划和推理
  • 高级 MCP 工具编排
  • 记忆和上下文管理
在请求中使用 "agent": "deep"