后台中的同一位顾问也可以在您的应用中使用。您创建会话、打开流、发送消息,然后分段接收回答。需要 tools:chat 权限范围。
工作方式
- 创建会话:保存对话上下文。
- 打开会话的事件流。
- 发送消息。
- 回答通过流分段到达,直到完成。
请在发送消息之前打开流,否则会错过回答的开头部分。
会话
| 请求 | 作用 |
|---|---|
POST /chat/sessions | 创建会话 |
GET /chat/sessions | 您的会话:limit 1-50(默认 20,超过返回 400)、cursor、q(按标题搜索)、projectId、archivedOnly、sort(recent、title) |
PATCH /chat/sessions/{id} | 修改会话;至少一个字段 |
DELETE /chat/sessions/{id} | 归档 |
POST /chat/sessions 请求体(均为可选):
| 字段 | 说明 |
|---|---|
title | 会话名称,最多 200 个字符 |
projectId | 会话所属项目 |
mode | chat_consult(默认);其他任何值都会被替换为 chat_consult |
PATCH /chat/sessions/{id} 字段:
| 字段 | 说明 |
|---|---|
title | 新名称,最多 200 个字符 |
projectId | 移入项目;null 表示移出项目 |
isPinned | 置顶或取消置顶 |
isUnread | 标记为未读或已读 |
isArchived | 仅限 false:恢复已归档的会话;归档请用 DELETE |
curl -X POST https://developers.grem.capital/api/v1/chat/sessions \
-H "Authorization: Bearer gsk_live_xxx" \
-H "Content-Type: application/json" \
-d '{"title":"客户关于房贷的问题"}'
响应中包含 sessionId:后续每次调用都要传入。创建会话需要账户资料已填写完整,否则返回 400。
API 提供通用顾问模式。后台 CRM 中的自动回复模式无法从外部开启。
发送消息
curl -X POST https://developers.grem.capital/api/v1/chat/messages \
-H "Authorization: Bearer gsk_live_xxx" \
-H "Content-Type: application/json" \
-d '{"sessionId":"SESSION_ID","text":"Podil 的两居室要多少钱?","clientMessageId":"msg-0001"}'
clientMessageId:您的消息 ID,必填。同一个 ID 只回答一次、只扣费一次:重试时请沿用同一个 ID;它相当于对话中的Idempotency-Key。style(可选):回答长度,short、normal或detailed。
该响应只是确认收到;助手的回答通过流到达。
响应流
GET /chat/stream?sessionId=SESSION_ID
Authorization: Bearer gsk_live_xxx
Accept: text/event-stream
这是长连接;事件随回答生成而到达:
| 事件 | 含义 |
|---|---|
assistant.started | 助手开始回答 |
assistant.delta | 下一段文字,在 delta 中 |
assistant.done | 回答完成,完整文本在 text 中 |
如果连接断开,请用同一个 sessionId 重新连接:服务器会从头重放当前回答。因此收到 assistant.started 时,请清空为该消息累积的文本,否则会重复。
历史记录
GET /chat/history?sessionId=SESSION_ID&limit=50:会话中保存的消息,从旧到新。limit 为 1 到 200(默认 50);下一页用 cursor,值为上一次响应中的 nextCursor。在界面重新加载后可用它恢复对话。
计费
| 操作 | 费用 |
|---|---|
POST /chat/messages | API 调用 + 消息价格 |
对会话执行 POST、PATCH、DELETE | API 调用 |
GET 列表、历史、流 | 免费 |
Free 套餐有每日消息上限。超过后返回 429:请明天继续或更换套餐。响应带有 code: free_daily_limit,以及到 00:00 UTC(上限重置时)为止的 Retry-After。
相关文章
- TypeScript SDK:支持流的现成客户端。
- 限制与计费
- 错误