跳到正文
土土金API

API 参考

Responses 接口

POST /v1/responses 的请求头、参数、请求与响应示例和流式事件。格式与 OpenAI Responses API 一致,部分模型只支持这种格式,本站按原格式转发请求。

POST /v1/responses 是 OpenAI 较新的接口格式:用 input 代替 messages,系统指令单独放在 instructions 里,推理强度、结构化输出和工具的写法也和 Chat Completions 不同。目录里有一部分模型只支持这种格式。本站把请求按原格式转发给模型服务,参数是否生效以对应模型的官方说明为准。

POSThttps://www.tutujin.com/v1/responses

请求头

请求头必填说明
Authorization是Bearer sk-...,控制台创建的 API Key
Content-Type是application/json

请求参数

参数类型必填说明
modelstring是模型名,例如 gpt-6.1-sol
inputstring 或 array是输入内容。可以是一段文本,也可以是消息数组,多轮对话和图文输入用数组,结构见下文
instructionsstring否系统指令,相当于 Chat Completions 里的 system 消息
max_output_tokensinteger否本次最多生成多少 tokens,包含推理模型的思考部分
temperaturenumber否采样温度,越高越发散。推理模型通常不支持
top_pnumber否核采样,和 temperature 一般只调一个
streamboolean否设为 true 时以 SSE 事件流返回,默认 false
reasoningobject否推理配置,例如 {"effort": "low"},常见取值 low、medium、high,仅推理模型支持
textobject否输出格式,例如 {"format": {"type": "json_object"}} 要求输出 JSON;部分模型支持 json_schema 严格结构化输出
toolsarray否可供模型调用的工具,例如函数定义。内置工具能否使用取决于模型
tool_choicestring 或 object否auto、none、required,或指定某个工具
storeboolean否是否在服务端保存本次响应。本站没有实测依赖服务端存储的功能,建议设为 false
previous_response_idstring否引用上一轮响应来延续对话。它依赖服务端保存的响应,本站未实测,建议在 input 里自己带上历史消息
metadataobject否自定义键值对,方便你这边对账和排查

input 结构

最简单的写法是直接传一段字符串。多轮对话或图文输入时传数组,每项是一条消息:

JSON
[
  { "role": "user", "content": "这张发票的金额是多少?" },
  {
    "role": "user",
    "content": [
      { "type": "input_text", "text": "只回答金额和币种。" },
      { "type": "input_image", "image_url": "https://example.com/invoice.png" }
    ]
  }
]

role 可以是 user、assistant、system 或 developer。图片也可以用 data:image/png;base64,... 的形式直接放进 image_url。

请求示例

curl https://www.tutujin.com/v1/responses \
  -H "Authorization: Bearer $TUTUJIN_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "gpt-6.1-sol",
    "instructions": "你是财务助理,回答简洁,金额保留两位小数。",
    "input": "差旅费 1280 元,餐补每天 80 元共 3 天,合计报销多少?"
  }'

响应示例

JSON
{
  "id": "resp_...",
  "object": "response",
  "created_at": 1794000000,
  "status": "completed",
  "model": "gpt-6.1-sol",
  "output": [
    {
      "type": "message",
      "id": "msg_...",
      "status": "completed",
      "role": "assistant",
      "content": [
        { "type": "output_text", "text": "合计报销 1520.00 元。", "annotations": [] }
      ]
    }
  ],
  "usage": {
    "input_tokens": 48,
    "input_tokens_details": { "cached_tokens": 0 },
    "output_tokens": 15,
    "output_tokens_details": { "reasoning_tokens": 0 },
    "total_tokens": 63
  }
}
字段说明
statuscompleted 表示正常完成;incomplete 通常是达到 max_output_tokens 被截断
output输出项数组,可能包含 message(回答)、reasoning(推理摘要)、function_call(需要你执行的函数调用)
output[].content[].text回答文本。官方 SDK 提供 output_text 属性,直接拼好了全部文本
usage.input_tokens输入 tokens,按输入单价计费
usage.input_tokens_details.cached_tokens命中上下文缓存的输入 tokens,按缓存读取价计费
usage.output_tokens输出 tokens,按输出单价计费,其中 reasoning_tokens 是思考部分

流式输出

设置 "stream": true 后,服务端按 Server-Sent Events 逐个推送事件。每个事件有 event: 名称,文本增量在 response.output_text.delta 事件的 delta 字段里,response.completed 事件带有完整响应和用量:

Text
event: response.created
data: {"type":"response.created","response":{"id":"resp_...","status":"in_progress"}}

event: response.output_text.delta
data: {"type":"response.output_text.delta","output_index":0,"content_index":0,"delta":"合计"}

event: response.output_text.done
data: {"type":"response.output_text.done","output_index":0,"content_index":0,"text":"合计报销 1520.00 元。"}

event: response.completed
data: {"type":"response.completed","response":{"id":"resp_...","status":"completed","usage":{"input_tokens":48,"output_tokens":15,"total_tokens":63}}}

用 SDK 时按事件类型取文本:

stream = client.responses.create(
    model="gpt-6.1-sol",
    input="写一段 100 字的产品介绍",
    stream=True,
)
for event in stream:
    if event.type == "response.output_text.delta":
        print(event.delta, end="", flush=True)
    elif event.type == "response.completed":
        print("\n", event.response.usage)

注意事项

  • 这个接口是原样转发,没有在本站单独实测。接入新模型时先用小流量验证参数和返回结构。
  • 多轮对话请在 input 里带上完整的历史消息,不要依赖 previous_response_id 和 store。
  • 推理模型的思考 tokens 计入输出,费用可能明显高于普通模型,可以用 max_output_tokens 和 reasoning.effort 控制。
  • 联网搜索等内置工具是否可用、是否另行计费都取决于模型,以控制台「操作日志」为准。
  • 如果模型同时支持 Chat Completions,又不需要 Responses 的专有功能,用 Chat Completions 更省事,切换其他厂商的模型也只需改 model。

支持此接口的模型

模型厂商最低价分组输入 ¥/百万输出 ¥/百万按次 ¥/次
GPT-6.1 SolOpenAI标准¥4¥20—
GPT-6 LunaOpenAI标准¥0.2¥1—
GPT-6 SolOpenAI标准¥20¥100—
gpt-6-astraOpenAI标准¥20¥100—
muse-wonder-1.0其他标准¥56¥280—

价格为人民币,取各模型最低价分组;价格更新于 2026年11月13日 17:58。

没找到答案?加客服微信 JsnonoChat,发送报错信息里的 request id,我们帮你排查。