API 参考/OpenAI Responses API

OpenAI Responses 端点,用于带内置工具的状态化 Agent 交互。

OpenAI Responses API

通过 UniGateway 调用 OpenAI 的有状态 Responses API,用于面向 Agent 的工作流、内置工具和服务端会话状态管理。

概述

Responses API 是 OpenAI 的下一代 Agent 交互接口,提供内置工具、结构化输出和服务端状态管理。

核心能力包括:

  • 有状态会话:通过 previous_response_id 由服务端保留历史记录
  • 内置工具:网页搜索、代码解释器、计算机使用、文件搜索
  • 推理 token:模型在最终输出前进行推理
  • 结构化输出:保证输出符合指定 JSON Schema

UniGateway 暴露以下端点:

  • POST /v1/responses — 创建响应
  • GET /v1/responses/{id} — 获取响应
  • POST /v1/responses/{id}/input_items — 追加到会话

鉴权

所有请求需要 UniGateway API Key:

Authorization: Bearer <YOUR_UNIGATEWAY_API_KEY>

支持的模型

UniGateway 上支持 Responses API 的 OpenAI 模型:

模型 ID说明输入 / 1M输出 / 1M
gpt-5.4通用平衡型$2.50$15.00
gpt-5.4-pro前沿推理与 Agent 型$30.00$180.00
gpt-5.3-codex代码与推理专用$1.75$14.00

查询实时模型列表:

curl https://api.unigateway.ai/v1/models \
  -H "Authorization: Bearer $UNIGATEWAY_API_KEY"

创建响应

Example request

Run it in your stack

Pick the SDK style that matches your app and copy the snippet directly into your project.

from openai import OpenAI

client = OpenAI(
    api_key="<YOUR_UNIGATEWAY_API_KEY>",
    base_url="https://api.unigateway.ai/v1",
)

resp = client.responses.create(
    model="gpt-5.2",
    input="What is 15 * 27?",
    tools=[{"type": "code_interpreter"}],
)
print(resp.output_text)

基本请求

curl https://api.unigateway.ai/v1/responses \
  -H "Authorization: Bearer $UNIGATEWAY_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "gpt-5.4",
    "input": "用一段话解释量子计算。"
  }'

带会话历史

curl https://api.unigateway.ai/v1/responses \
  -H "Authorization: Bearer $UNIGATEWAY_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "gpt-5.4",
    "input": [
      {"role": "user", "content": [{"type": "text", "text": "2+2 等于多少?"}]},
      {"role": "assistant", "content": [{"type": "text", "text": "4"}]},
      {"role": "user", "content": [{"type": "text", "text": "再乘以 10。"}]}
    ]
  }'

有状态会话

curl https://api.unigateway.ai/v1/responses \
  -H "Authorization: Bearer $UNIGATEWAY_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "gpt-5.4",
    "input": "再乘以 10。",
    "previous_response_id": "resp_abc123"
  }'

设置 previous_response_id 后,服务端自动管理会话历史。省略该字段时由客户端自行管理状态。

请求参数

参数类型必填说明
modelstringGET /v1/models 返回的模型 ID
inputstring / array用户消息文本或消息项数组
previous_response_idstring服务端管理的会话状态
storeboolean服务端保存响应,默认 true
toolsarray启用的内置工具
tool_choicestring / object"auto""required""none" 或指定工具
instructionsstring系统级指令
temperaturenumber采样温度,如 0.2
max_tokensnumber输出 token 上限
top_pnumber核采样
response_formatobject结构化输出 schema
reasoningobject推理强度控制
parallel_tool_callsboolean是否允许多工具并行调用
metadataobject自定义键值对

Input 数组格式

每项包含:

{
  "role": "user",
  "content": [
    {"type": "text", "text": "..."},
    {"type": "image_url", "image_url": {"url": "..."}}
  ]
}

role 支持 userassistantsystemdeveloper

响应格式

{
  "id": "resp_abc123",
  "object": "response",
  "status": "completed",
  "model": "gpt-5.4",
  "output": [
    {
      "type": "message",
      "role": "assistant",
      "content": [
        {"type": "text", "text": "量子计算利用叠加和纠缠..."}
      ]
    }
  ],
  "usage": {
    "input_tokens": 12,
    "output_tokens": 89,
    "total_tokens": 101
  }
}

响应字段

字段说明
id响应 ID,作为下一轮 previous_response_id
status"completed""in_progress""failed""cancelled"
output输出项数组(文本、工具调用、推理)
output[].type"message""reasoning""tool_call"

输出项类型

类型说明
message助手消息,含 rolecontent 数组
reasoning模型推理 token,不向最终用户展示
tool_call工具调用请求,含 call_idtypearguments

内置工具

tools 数组中启用。

网页搜索

{
  "tools": [
    {"type": "web_search_preview"}
  ]
}

代码解释器

{
  "tools": [
    {"type": "code_interpreter"}
  ]
}

计算机使用

{
  "tools": [
    {
      "type": "computer_use_preview",
      "environment": "browser"
    }
  ]
}

错误处理

状态码原因处理方式
400请求参数错误检查 JSON 结构和参数类型
401API Key 无效或缺失检查 Authorization 请求头
404模型 ID 不存在重新确认 GET /v1/models
429触发限流增加退避并重试
5xx服务异常指数退避重试