返回结果、分页与流式响应

接口用途

说明 Genesis 各接口的结果位置、分页与流式约定;其中 /responses 兼容 OpenAI Responses 风格。

请求方式

POST

接口地址

$GENESIS_BASE_URL/responses

身份认证

使用 Genesis API Key:Authorization: Bearer <API_KEY>。详见接口地址与身份认证

Responses 接口

POST /responses 支持无状态调用。对于已接入有状态通道的模型,控制台接入资料还列出了 storeprevious_response_id、Conversations 以及 retrieve、delete、input items 等能力。它们并非所有模型的共同能力;使用前先在「使用」页选择模型并复制当前示例,不要把有状态参数默认加到所有请求中。

最小请求通常由 model 与输入组成,但具体输入分段和输出项目会随模型能力变化。以控制台代码生成器生成的请求体作为当前契约。响应业务内容位于 output[] 等 Responses 原生字段,而不是 Chat Completions 的 choices[]

各接口的结果位置

接口

主要结果

Chat Completions

choices[].message.content

Responses

output[]

Messages

content[]

Embeddings

data[].embedding

Rerank

results[]

Models

data[]

usage 是用量核对的入口。不同生态可能使用 prompt_tokens / completion_tokensinput_tokens / output_tokens;只读取实际返回的字段,不要用缺失字段自行推算账单。

分页与批量结果

/embeddings/rerank 返回的数组是本次请求的批量结果,不是分页列表。/models 当前以 data[] 返回可用模型;是否存在游标或更多页应以实际响应为准。客户端只有在响应明确提供下一页标识时才继续翻页,不能自行构造未文档化的 pageoffset 参数。

处理 SSE 流

对支持流式输出的接口设置 stream: true 后,服务通过 Server-Sent Events 返回增量事件。OpenAI 风格流通常以多条 data: 事件组成,并以 data: [DONE] 结束;Messages 使用 Anthropic 原生事件和终止事件。

流式客户端需要:

  1. 检查 HTTP 状态成功后再开始解析事件;

  2. 按空行切分 SSE 事件,保留跨网络分片的未完成行;

  3. 按接口原生格式合并文本增量,而不是把每个事件当成完整 JSON 响应;

  4. 收到 [DONE]、原生终止事件或连接正常结束后关闭读取;

  5. 记录最终事件提供的用量;流中未返回用量时以日志和用量页为准。

请求已开始产生输出后,自动重试可能生成重复内容或重复计费。连接中断时,只有业务能识别并去重请求才适合重试。4295xx 的退避策略见错误码