对话 API
对话 API 是 Build AI Template 的核心,负责处理所有与 AI 聊天相关的功能。包括创建对话、发送消息、获取历史记录以及管理可用的 AI Agent。
API 端点详情
获取可用 Agent 列表
GET /chat/agents/active
获取所有当前可用的 AI Agent 列表,供用户在创建新对话时选择。
响应 (200 OK):
[ { "id": 1, "name": "GPT-4.1 Mini", "description": "OpenAI 最新、最快的模型", "avatar": "/avatars/gpt-4.1-mini.png", // ... 其他 agent 信息 } ]
创建新对话
POST /chat
创建一个新的对话会话,并将其与一个 Agent 关联。
请求体:
{ "title": "我的新对话", "agent_id": 1, "lang": "zh" }
响应 (201 Created):
{ "id": 123, "title": "我的新对话", "user_id": 1, "agent_id": 1, "created_at": "...", "updated_at": "...", "agent": { // ... 关联的 agent 信息 } }
发送消息
POST /chat/message
在指定对话中发送一条消息并获取 AI 回复。支持流式 (stream=true
) 和非流式响应。
请求体:
{ "chat_id": 123, "content": "你好,世界!", "role": "user", // 只能是 'user' "lang": "zh" }
Query 参数:
stream
(boolean, optional): 设置为true
以启用流式响应。默认为false
。
💡 响应说明
- 非流式: 返回一个包含用户消息和 AI 回复消息对象的数组。
- 流式: 返回一个
text/plain
类型的流。前端需要逐步接收和渲染文本块。流结束后,会包含一个特殊标记__TOKEN_USAGE__
来传递 Token 使用信息。
响应 (200 OK - 非流式):
[ { // 用户消息 "id": 1, "chat_id": 123, "content": "你好,世界!", "role": "user", ... }, { // AI 回复 "id": 2, "chat_id": 123, "content": "你好!有什么可以帮助你的吗?", "role": "assistant", "token_usage": { ... }, ... } ]
获取对话列表
GET /chat
获取当前用户的所有对话列表,支持分页。
Query 参数:
limit
(integer, optional): 每页数量,默认 20,最大 100。offset
(integer, optional): 偏移量,默认 0。include_messages
(boolean, optional): 是否在返回的对话中包含所有消息,默认false
。
响应 (200 OK):
[ { "id": 123, "title": "我的新对话", // ... 其他对话信息 }, // ... 更多对话 ]
获取指定对话详情
GET /chat/{chat_id}
获取单个对话的详细信息,包括其所有历史消息。
响应 (200 OK):
{ "id": 123, "title": "我的新对话", "messages": [ { "role": "user", "content": "你好" }, { "role": "assistant", "content": "你好!" } ], "agent": { // ... 关联的 agent 信息 } }
更新对话
PUT /chat/{chat_id}
更新对话的属性,例如修改标题。
请求体:
{ "title": "更新后的对话标题" }
删除对话
DELETE /chat/{chat_id}
软删除一个对话。数据仍在数据库中,但对用户不可见。
响应 (200 OK):
{ "message": "对话已删除" }