Skip to content

推理能力

POST  v1/responses

请求参数

Authorization

在 Header 添加参数 Authorization,其值为在 Bearer 之后拼接 Token。

Authorization: Bearer ******************

Body 参数

Content-Type: application/json

参数名类型必填说明
modelstring必需要使用的模型 ID。
toolsarray[object]必需工具
inputarray [object]必需输入消息列表。包含 role (可选), content (可选) 等字段。
reasoningobject必需仅适用于o系列模型
truncationstring必需用于模型响应的截断策略
includearray[string]可选指定要在模型响应中包含的附加输出数据。
instructionsstring可选作为系统消息插入到模型上下文的最前面。注意:当使用 previous_response_id 时,之前的指令不会自动带入,方便切换指令。
max_output_tokensinteger可选响应生成的最大 token 数(包含可见输出和推理 token)。
metadataobject可选最多包含 16 个键值对的元数据对象,用于存储额外信息。键最长 64 字符,值最长 512 字符。
parallel_tool_callsboolean可选是否在工具调用期间启用并行执行。
previous_response_idstring可选前一次响应的唯一 ID,用于创建多轮对话。
reasoningobject可选仅适用于 o 系列模型。配置模型的推理行为。
service_tierstring可选指定处理请求的延迟层级(如 auto, default, flex)。未设置时默认为 auto
storeboolean可选是否将此请求的输出存储用于模型蒸馏或评估。
streamboolean可选如果为 true,将通过服务器发送事件流式返回响应。
temperaturenumber可选采样温度 (0-2)。值越高输出越随机,值越低越确定。建议只调整此参数或 top_p 其中之一。
textobject可选文本响应的配置。可配置 { "type": "json_schema" } 以启用结构化输出。
tool_choicearray[string]可选模型可调用的工具列表(目前仅支持函数)。最多支持 128 个函数。
top_pnumber可选核采样参数 (0-1)。例如 0.1 意味着只考虑概率质量前 10% 的 token。
truncationstring可选用于模型响应的截断策略。
userstring可选最终用户的唯一标识符,有助于 OpenAI 监控和检测滥用行为。

请求示例 (JSON)

{
    "model": "o3-mini",
    "input": "一只啄木鸟能啄多少木头?",
    "reasoning": {
        "effort": "high"
    }
}

返回响应

200 成功

Content-Type: application/json

响应参数

字段名类型必填说明
idstring必需响应的唯一标识符。
objectstring必需对象类型。
created_atinteger必需创建时间的 Unix 时间戳。
statusstring必需响应的当前状态。
backgroundboolean必需是否在后台运行。
modelstring必需使用的模型名称。
parallel_tool_callsboolean必需是否启用了并行工具调用。
service_tierstring必需服务层级(如 default, flex 等)。
storeboolean必需是否存储了输出用于训练/评估。
temperatureinteger必需采样温度。
tool_choicestring必需工具选择策略。
toolsarray[string]必需可用的工具列表。
top_logprobsinteger必需返回的对数概率数量。
top_pinteger必需核采样概率阈值。
truncationstring必需截断策略。
usernull必需用户标识(此处显示为 null,通常用于审计)。
metadataobject必需用户自定义的元数据。
createdinteger必需另一个时间戳字段(可能是兼容旧版字段)。

响应示例

{
    "id": "resp_05ad3c3ed6d449ad0068eee08df58c8190959a870a21f446f2",
    "object": "response",
    "created_at": 1760485517,
    "status": "completed",
    "background": false,
    "content_filters": null,
    "error": null,
    "incomplete_details": null,
    "instructions": null,
    "max_output_tokens": null,
    "max_tool_calls": null,
    "model": "o3-mini-global",
    "output": [
        {
            "id": "rs_05ad3c3ed6d449ad0068eee0a1aeb88190a9796d46ddb7fdf8",
            "type": "reasoning",
            "summary": []
        },
        {
            "id": "msg_05ad3c3ed6d449ad0068eee0a6de708190bc9195c4d695250d",
            "type": "message",
            "status": "completed",
            "content": [
                {
                    "type": "output_text",
                    "annotations": [],
                    "logprobs": [],
                    "text": "这个问题其实没有严格的数字答案,因为它本身更多是一种幽默或者文字游戏,而不是一个科学计量问题。\n\n实际上,啄木鸟啄木头主要是为了捕食树皮下的昆虫、制作巢穴或进行领域性“敲打”沟通。它们啄击的频率很快,有些种类的啄木鸟每秒可以啄击几十次,但它们每次只是在树皮上敲出一个小孔或凿出些微的木屑,远没有足够的力量将大量的木头啄掉。\n\n因此,“一只啄木鸟能啄多少木头”更多是在玩文字游戏,并没有一个能够量化的标准答案。可以说,它们啄的只是“恰到好处”,既满足觅食需要,又不会过度破坏树木。"
                }
            ],
            "role": "assistant"
        }
    ],
    "parallel_tool_calls": true,
    "previous_response_id": null,
    "prompt_cache_key": null,
    "reasoning": {
        "effort": "high",
        "summary": null
    },
    "safety_identifier": null,
    "service_tier": "default",
    "store": true,
    "temperature": 1,
    "text": {
        "format": {
            "type": "text"
        },
        "verbosity": "medium"
    },
    "tool_choice": "auto",
    "tools": [],
    "top_logprobs": 0,
    "top_p": 1,
    "truncation": "disabled",
    "usage": {
        "input_tokens": 19,
        "input_tokens_details": {
            "cached_tokens": 0
        },
        "output_tokens": 2628,
        "output_tokens_details": {
            "reasoning_tokens": 2432
        },
        "total_tokens": 2647
    },
    "user": null,
    "metadata": {}
}

示例代码

python
import http.client
import json

conn = http.client.HTTPSConnection("nxaiapp.com")
payload = json.dumps({
   "model": "o3-mini",
   "input": "一只啄木鸟能啄多少木头?",
   "reasoning": {
      "effort": "high"
   }
})
headers = {
   'Authorization': 'Bearer <token>',
   'Content-Type': 'application/json'
}
conn.request("POST", "/v1//responses", payload, headers)
res = conn.getresponse()
data = res.read()
print(data.decode("utf-8"))