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 CompletionsResponses
路径/chat/completions/responses
对话历史messagesinput
系统提示messagessysteminstructions(可选)
流式事件choices[].deltaresponse.output_text.delta
用量字段usage.prompt_tokensusage.input_tokens

SmartAPI 仅校验 model 字段,其余参数均原样转发给模型服务。请使用与 OpenAI Responses API 一致的请求体。

请求体#

常用字段:

字段类型必填说明
modelstring模型标识,例如 gpt-5
inputarray对话输入。可为字符串,或含 role / content 的消息数组。
instructionsstring系统级指令,相当于 system prompt。
streamboolean以 SSE 流式返回,默认 false
max_output_tokensinteger生成的最大输出 token 数。

思考 / 推理#

支持思考的模型可通过 reasoning 对象开启推理:

字段类型说明
reasoning.effortstring推理强度: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_tokensoutput_tokenstotal_tokens (部分上游亦兼容 prompt_tokens / completion_tokens)。

当上游未返回 token 用量时,SmartAPI 会基于请求与响应文本做本地预估后计费。 详见计费