Responses(OpenAI)
Responses 接口为 OpenAI Responses API 兼容(协议标识 openai-response)。
适用于 GPT-5 等仅支持 Responses 协议的模型,以及目录中标注了该协议的模型。
POST https://api.smartapi.cc/api/openapi/v1/responses鉴权#
与 OpenAI 对话补全相同:
Authorization: Bearer sk-your-key-here
Content-Type: application/json与 Chat Completions 的区别#
| 项目 | Chat Completions | Responses |
|---|---|---|
| 路径 | /chat/completions | /responses |
| 对话历史 | messages | input |
| 系统提示 | messages 中 system | instructions(可选) |
| 流式事件 | choices[].delta | response.output_text.delta 等 |
| 用量字段 | usage.prompt_tokens | usage.input_tokens |
SmartAPI 仅校验 model 字段,其余参数均原样转发给模型服务。请使用与 OpenAI
Responses API 一致的请求体。
请求体#
常用字段:
| 字段 | 类型 | 必填 | 说明 |
|---|---|---|---|
model | string | 是 | 模型标识,例如 gpt-5。 |
input | array | 是 | 对话输入。可为字符串,或含 role / content 的消息数组。 |
instructions | string | 否 | 系统级指令,相当于 system prompt。 |
stream | boolean | 否 | 以 SSE 流式返回,默认 false。 |
max_output_tokens | integer | 否 | 生成的最大输出 token 数。 |
思考 / 推理#
支持思考的模型可通过 reasoning 对象开启推理:
| 字段 | 类型 | 说明 |
|---|---|---|
reasoning.effort | string | 推理强度:none / low / medium / high 等,依上游模型支持。 |
{
"model": "gpt-5",
"input": [{ "role": "user", "content": "你好" }],
"reasoning": { "effort": "medium" }
}基础示例#
curl https://api.smartapi.cc/api/openapi/v1/responses \
-H "Authorization: Bearer $SMARTAPI_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "gpt-5",
"instructions": "You are a helpful assistant.",
"input": [
{ "role": "user", "content": "What is SmartAPI?" }
]
}'响应#
{
"id": "resp_...",
"object": "response",
"status": "completed",
"model": "gpt-5",
"output_text": "SmartAPI is...",
"usage": {
"input_tokens": 24,
"output_tokens": 88,
"total_tokens": 112
}
}部分上游会在 output 数组中返回结构化内容块,SmartAPI 会原样透传。
流式响应#
将 stream 设为 true,通过 text/event-stream 增量接收输出。
文本增量事件类型为 response.output_text.delta;流结束时上游会发送
response.completed 事件,其中包含 response.usage。
from openai import OpenAI
client = OpenAI(
api_key="sk-your-key-here",
base_url="https://api.smartapi.cc/api/openapi/v1",
)
stream = client.responses.create(
model="gpt-5",
input=[{"role": "user", "content": "Write a haiku about APIs."}],
stream=True,
)
for event in stream:
if event.type == "response.output_text.delta":
print(event.delta, end="")典型 SSE 数据块:
data: {"type":"response.output_text.delta","delta":"Hello"}
data: {"type":"response.completed","response":{"usage":{"input_tokens":2,"output_tokens":33,"total_tokens":35}}}用量与计费#
非流式响应从顶层 usage 读取用量;流式从 response.completed 事件的
response.usage 读取。字段为 input_tokens、output_tokens、total_tokens
(部分上游亦兼容 prompt_tokens / completion_tokens)。
当上游未返回 token 用量时,SmartAPI 会基于请求与响应文本做本地预估后计费。 详见计费。