接口参考 / 请求与流式响应
请求与流式响应
准备消息、检查参数并处理流式输出。
请求构建器
构建器在浏览器本地生成代码,不发送请求、不消耗余额。执行代码前设置 ASIORB_API_KEY,并确认所选模型有调用权限。
流式响应
stream:true 会返回 SSE 事件流。网络分块不一定是完整事件,应按空行分隔解析;不同协议有不同的内容字段和结束事件,不能统一用 [DONE] 判断。HTTP 200 后仍可能收到流内错误。
| 协议 | 文本增量 | 内容结束与异常 |
|---|---|---|
| Chat Completions | choices[].delta.content | 以 [DONE] 结束;设置 stream_options.include_usage:true 接收用量 |
| Responses | response.output_text.delta | response.completed 为完成;response.incomplete 表示输出未完整,另需处理 error / response.failed |
| Messages | content_block_delta 中的 text_delta | message_stop 结束事件流,结合 message_delta.stop_reason 判断是否到达输出上限或需要执行工具 |
Chat Completions 的 SSE 格式示意
data: {"choices":[{"delta":{"content":"你好"}}]}
data: {"choices":[],"usage":{"prompt_tokens":12,"completion_tokens":8,"total_tokens":20}}
data: [DONE]
用量事件可能没有文本;工具参数与推理事件也不能直接当作回答显示。逐段累积内容,明确标记完成、输出达到上限、等待工具和中断状态。网络断开或收到 error 时,先查询原请求;内容结束也不代表账务一定已经完成结算。
工具与结构化输出
模型提出工具名称与参数,由你的程序校验并执行;把对应调用和结果一同回传后,模型才能继续。多轮对话也要回传历史,不能只发上一轮的响应 ID。
停止与重试
取消接收后仍可能产生上游用量。先核对请求状态,再决定是否重试,避免重复消费。