Responses
OpenAI Responses 接口,Codex 等工具使用它。
与 OpenAI Responses API 兼容的接口,是 OpenAI 新一代的统一接口。Codex 等工具只支持这个接口。
POST https://tokenfunc.com/v1/responsescURL
curl https://tokenfunc.com/v1/responses \
-H "Content-Type: application/json" \
-H "Authorization: Bearer sk-xxxxxxxxxxxxxxxx" \
-d '{
"model": "gpt-5",
"instructions": "你是一个乐于助人的助手。",
"input": "用一句话解释什么是 HTTP。"
}'Python
from openai import OpenAI
client = OpenAI(base_url="https://tokenfunc.com/v1", api_key="sk-xxxxxxxxxxxxxxxx")
resp = client.responses.create(
model="gpt-5",
instructions="你是一个乐于助人的助手。",
input="用一句话解释什么是 HTTP。",
)
print(resp.output_text)Node.js
import OpenAI from 'openai'
const client = new OpenAI({ baseURL: 'https://tokenfunc.com/v1', apiKey: 'sk-xxxxxxxxxxxxxxxx' })
const resp = await client.responses.create({
model: 'gpt-5',
instructions: '你是一个乐于助人的助手。',
input: '用一句话解释什么是 HTTP。',
})
console.log(resp.output_text)请求参数
200
{
"id": "resp_abc123",
"object": "response",
"status": "completed",
"model": "gpt-5",
"output": [
{
"type": "message",
"role": "assistant",
"content": [
{
"type": "output_text",
"text": "HTTP 是浏览器和服务器之间传输网页等数据的通信协议。"
}
]
}
],
"usage": { "input_tokens": 25, "output_tokens": 22, "total_tokens": 47 }
}SDK 提供的 output_text 会把所有文字输出拼接好,直接读取即可。
响应字段
流式输出
stream: true 时返回一系列事件,常用的有 response.output_text.delta(文字增量)和 response.completed(结束,含最终用量)。
cURL
curl https://tokenfunc.com/v1/responses \
-H "Content-Type: application/json" \
-H "Authorization: Bearer sk-xxxxxxxxxxxxxxxx" \
-N \
-d '{"model": "gpt-5", "input": "写一首关于秋天的四行短诗", "stream": true}'Python
stream = client.responses.create(model="gpt-5", input="写一首关于秋天的四行短诗", stream=True)
for event in stream:
if event.type == "response.output_text.delta":
print(event.delta, end="", flush=True)Node.js
const stream = await client.responses.create({
model: 'gpt-5',
input: '写一首关于秋天的四行短诗',
stream: true,
})
for await (const event of stream) {
if (event.type === 'response.output_text.delta')
process.stdout.write(event.delta)
}调用示例
多轮对话
把完整的对话历史放进 input 数组即可,每条是 role + content:
cURL
curl https://tokenfunc.com/v1/responses \
-H "Content-Type: application/json" \
-H "Authorization: Bearer sk-xxxxxxxxxxxxxxxx" \
-d '{
"model": "gpt-5",
"input": [
{"role": "user", "content": "Redis 和 Memcached 怎么选?"},
{"role": "assistant", "content": "需要丰富数据结构或持久化选 Redis,只做简单缓存选 Memcached。"},
{"role": "user", "content": "如果需要持久化呢?"}
]
}'Python
history = [{"role": "user", "content": "Redis 和 Memcached 怎么选?"}]
resp = client.responses.create(model="gpt-5", input=history)
history.append({"role": "assistant", "content": resp.output_text})
history.append({"role": "user", "content": "如果需要持久化呢?"})
resp = client.responses.create(model="gpt-5", input=history)
print(resp.output_text)思考强度
推理模型用 reasoning.effort 控制思考强度,取值 none / minimal / low / medium / high / xhigh / max(各模型支持的取值不同),越高越慢、输出 Token 越多:
cURL
curl https://tokenfunc.com/v1/responses \
-H "Content-Type: application/json" \
-H "Authorization: Bearer sk-xxxxxxxxxxxxxxxx" \
-d '{
"model": "gpt-5",
"input": "设计一个短链接服务的数据库表结构",
"reasoning": {"effort": "low"}
}'Python
resp = client.responses.create(
model="gpt-5",
input="设计一个短链接服务的数据库表结构",
reasoning={"effort": "low"},
)
print(resp.output_text)与 Chat Completions 怎么选
- 用 Codex 等只支持 Responses 的工具:只能用这个接口。
- 自己写代码:两者都可以。Chat Completions 支持的模型更多、生态更成熟,没有特别需求时优先用它。