Appearance
Responses API(当前兼容范围)
接口:
text
POST /v1/responsesSDK:
python
client.responses.create(...)LLMGateway 当前对 Responses API 提供部分兼容。适合文本/图片输入以及文本输出;尚不适合依赖函数工具调用闭环、服务端会话状态或后台任务的 Agent 工作流。
兼容能力概览
| 能力 | 状态 | 说明 |
|---|---|---|
| 文本输入 | 支持 | 支持字符串或 message 数组 |
| 图片输入 | 支持 | 支持图片 URL 和 data:image/...;base64,...,模型必须具备图片输入能力 |
| 非流式文本输出 | 支持 | 返回 Responses 风格的 response 对象和 message/output_text 内容块 |
| 流式文本输出 | 支持 | 返回 Responses SSE 文本事件子集 |
| 函数工具请求 | 部分支持 | tools、tool_choice 可解析并转发,但函数调用输出尚未转换成 Responses output item/事件 |
| 函数工具调用闭环 | 暂不支持 | 不要用当前 Responses 接口运行工具调用循环;请改用 Chat Completions |
| 服务端会话状态 | 暂不支持 | 不支持 previous_response_id、官方 retrieve/delete/input-items 语义和 Conversations API |
| 后台任务 | 暂不支持 | background=true 返回 501 unsupported_feature |
| 文件和内置工具 | 暂不支持 | 不支持 input_file、web search、file search、computer use 等内置工具 |
当前支持的请求字段
| 字段 | 类型 | 必填 | 说明 |
|---|---|---|---|
model | string | 是 | 使用 /v1/models 返回的模型 ID |
input | string/array | 是 | 字符串或 Responses message 数组 |
instructions | string | 否 | 系统指令 |
max_output_tokens | number | 否 | 最大输出 token 数 |
max_tokens | number | 否 | max_output_tokens 的兼容别名;两者同时出现时以前者为准 |
temperature | number | 否 | 采样温度 |
top_p | number | 否 | 核采样参数 |
stream | boolean | 否 | true 时返回 Responses SSE |
metadata | object | 否 | 字符串键值请求元数据 |
enable_thinking | boolean | 否 | 网关兼容扩展;OpenAI SDK 可通过 extra_body 传入 |
llmgw_thinking | boolean | 否 | 网关扩展,显式开启或关闭 thinking/reasoning |
thinking | object | 否 | 模型原生 thinking 配置,是否生效取决于模型及上游 |
max_output_tokens 或 max_tokens 如传入必须大于 0。
输入格式
字符串输入:
json
{
"model": "qwen3.6-plus",
"input": "请只回复 OK"
}message 数组和图片输入:
json
{
"model": "qwen3.6-plus",
"input": [
{
"type": "message",
"role": "user",
"content": [
{"type": "input_text", "text": "这张图里有什么?"},
{"type": "input_image", "image_url": "https://example.com/image.jpg"}
]
}
]
}图片也可以使用 data:image/...;base64,...。调用前请通过 /v1/model-catalog/{model} 确认 modalities.input 包含 image。
响应字段
非流式返回 Responses 风格对象:
| 字段 | 说明 |
|---|---|
id | response ID |
object | response |
status | completed、cancelled 等 |
model | 响应模型 |
output | 输出数组 |
output_text | OpenAI SDK 从 output 聚合出的便利属性,不是原始 HTTP JSON 顶层字段 |
usage | token 用量 |
当前流式文本输出会返回以下 Responses SSE 事件子集:
| 事件 | 说明 |
|---|---|
response.created | 请求已创建,包含 response.id(取消请求需用此 id) |
response.output_item.added | 输出项开始 |
response.content_part.added | 内容块开始 |
response.output_text.delta | 文本增量 |
response.output_text.done | 文本输出结束 |
response.content_part.done | 内容块结束 |
response.output_item.done | 输出项结束 |
response.completed | 正常完成 |
response.cancelled | 请求被取消(output 可能为空) |
response.failed | 请求失败,payload 含 error.code / error.message |
当前不会返回 function_call output item、response.function_call_arguments.*、reasoning item、refusal 或 annotation 增量事件。
函数工具调用边界
当前实现会接受 type=function 的 tools,也会解析 auto、none、required 和指定函数的 tool_choice。但上游产生工具调用后,网关尚未把工具调用转换成 Responses 非流式 output item 或对应流式事件,因此这只是请求侧兼容,不是可用于生产工具循环的完整支持。
需要函数工具调用时,请使用 Chat Completions 的 tools / tool_calls 协议。
有限的流式取消能力
接口:
text
POST /v1/responses/{response_id}/cancelSDK:
python
client.responses.cancel("resp_xxx")HTTP:
bash
curl -X POST https://llm.xiaoyue9527.xyz/v1/responses/resp_xxx/cancel \
-H 'Authorization: Bearer sk-gtw-REPLACE_ME'该接口是网关对当前进程内仍活跃的前台流式请求提供的有限取消能力:
response_id必须取自同一次流式请求的response.created事件。- 请求已经结束、运行在其他进程或服务重启后,取消会返回
404 response_not_found。 - 这不等同于 OpenAI Responses 的 background cancel 语义。
当前不支持的协议能力
| 边界 | 说明 |
|---|---|
previous_response_id | 返回 501 unsupported_feature |
| background mode | 返回 501 unsupported_feature |
| 文件输入 | input_file 返回 501 unsupported_feature |
| 内置工具 | 非 function 工具返回 501 unsupported_feature |
| Responses 工具输出 | 暂不生成 function_call / function_call_output output item 及流式参数事件 |
| 结构化输出 | 尚未实现 Responses text.format 等完整语义 |
| reasoning/refusal | 尚未生成 Responses reasoning、refusal output item 或对应事件 |
| 状态资源 | 官方 retrieve、delete、list input items、token count、compact 和 Conversations API 尚未实现 |
| 断流恢复 | Responses 流式请求暂不写入断流缓存,客户端断流后需自行重试 |
GET /v1/responses/{request_id}当前是网关已有的断流缓存辅助路由,不是官方按response_id获取 Response 的实现,而且当前不保存 Responses 流。请不要把它当作client.responses.retrieve(...)使用。
示例
bash
curl -N https://llm.xiaoyue9527.xyz/v1/responses \
-H 'Content-Type: application/json' \
-H 'Authorization: Bearer sk-gtw-REPLACE_ME' \
--data-raw '{
"model": "qwen3.6-plus",
"input": "解释什么是 RESTful API",
"max_output_tokens": 2048,
"stream": true
}'