发送消息
POST/v1/sessions/:session_id/messages
发送终端用户的下一条消息,并开启一个回答它的任务。每个会话一次只运行一个任务:任务仍在运行时,新消息会被拒绝并返回 session_busy——请等待任务的结束事件,或先停止它。回复保存在消息列表里,并在 GET /v1/sessions/{session_id}/events 上流式发送:把 Last-Event-ID 设为返回的 last_event_id 打开事件流,就会从第一帧开始收到这个任务。也可以设置 stream: true,直接在这个请求上接收任务:此时响应为 200,内容是这个任务自己的帧,与事件流发送的一样,以它的结束帧收尾——或者和所有事件流一样,在 10 分钟后结束(被拒绝的消息仍以其错误响应);任务结束时仍在生成的媒体,之后会在事件流上报告。没有收到结束帧就结束的响应——无论是连接断开还是到了时限——都不会停止任务:用最后一帧的 id 在事件流上继续接收,或用同一个 Idempotency-Key 重试,从第一帧重新接收同一个任务。需要项目的计费账户有可用余额。语音会话不接受文字消息。用户通过操作 a2ui 界面发出的消息,会在 a2ui_action 里带上渲染器给出的操作。
请求
响应
- 200
- 202
- 401
- 404
- 409
- 413
- 422
- 429
- 500
- 503
使用 stream: true 时:任务的帧,以服务器推送事件发送,从第一帧到结束帧。
成功响应
鉴权失败:凭证缺失、格式错误、已过期或已作废。
invalid_token— 访问令牌无效。project_disabled— 此项目未启用。token_expired— 访问令牌已过期。user_disabled— 此用户未启用。
请求的资源不存在,或对调用方不可见。
session_not_found— 找不到会话file_not_found— 找不到请求的文件。file_expired— 请求的文件已过期。
请求与资源的当前状态冲突。
session_busy— 这个会话已有任务在运行;请等它完成后再开启下一个。idempotency_conflict— 这个 Idempotency-Key 属于另一个请求。idempotency_in_progress— 带这个 Idempotency-Key 的第一次请求仍在处理中。请稍后用同一个键重试。session_not_taskable— 这个会话不接受任务。
请求体超过了允许的上限。
file_too_large— 文件超过了允许的最大大小。payload_too_large— 请求体太大。
请求中的某个值未通过校验;details 数组会列出每个出错的字段。
unsupported_media_type— 不支持该媒体类型。validation_failed— 请求内容未通过校验。
要么是请求太多(Retry-After 响应头会说明何时重试),要么是计费账户的积分已用完(不带 Retry-After——加上积分才能继续);用 code 字段区分这两种情况。
insufficient_credits— 计费账户的积分不足。rate_limited— 请求太频繁,请放慢速度。
服务端发生了意外错误。
internal— 发生了意外错误。
服务暂时不可用;请稍等片刻后重试。
service_unavailable— 实时更新目前已满负荷,请稍后重试。