Skip to Content
👋 欢迎使用 Build AI Template! 了解详情

对话 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

响应 (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": "对话已删除"
}