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": "gpt-4.1",
    "input": "波士顿今天的天气如何?",
    "tools": [
        {
            "type": "function",
            "name": "get_current_weather",
            "description": "获取指定位置的当前天气",
            "parameters": {
                "type": "object",
                "properties": {
                    "location": {
                        "type": "string",
                        "description": "城市和州,例如 San Francisco, CA"
                    },
                    "unit": {
                        "type": "string",
                        "enum": [
                            "celsius",
                            "fahrenheit"
                        ]
                    }
                },
                "required": [
                    "location",
                    "unit"
                ]
            }
        }
    ],
    "tool_choice": "auto"
}

返回响应

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_0f3675c81213cac70068eee028ee58819791a17ac7f50b1ebc",
    "object": "response",
    "created_at": 1760485416,
    "status": "completed",
    "background": false,
    "content_filters": null,
    "error": null,
    "incomplete_details": null,
    "instructions": null,
    "max_output_tokens": null,
    "max_tool_calls": null,
    "model": "gpt-4.1-data",
    "output": [
        {
            "id": "fc_0f3675c81213cac70068eee0292ba081979b12de02ace3889f",
            "type": "function_call",
            "status": "completed",
            "arguments": "{\"location\":\"Boston, MA\",\"unit\":\"celsius\"}",
            "call_id": "call_ebE9bPEg0sVtsCqPOIItkpth",
            "name": "get_current_weather"
        }
    ],
    "parallel_tool_calls": true,
    "previous_response_id": null,
    "prompt_cache_key": null,
    "reasoning": {
        "effort": null,
        "summary": null
    },
    "safety_identifier": null,
    "service_tier": "default",
    "store": true,
    "temperature": 1,
    "text": {
        "format": {
            "type": "text"
        },
        "verbosity": "medium"
    },
    "tool_choice": "auto",
    "tools": [
        {
            "type": "function",
            "description": "获取指定位置的当前天气",
            "name": "get_current_weather",
            "parameters": {
                "type": "object",
                "properties": {
                    "location": {
                        "type": "string",
                        "description": "城市和州,例如 San Francisco, CA"
                    },
                    "unit": {
                        "enum": [
                            "celsius",
                            "fahrenheit"
                        ],
                        "type": "string"
                    }
                },
                "required": [
                    "location",
                    "unit"
                ],
                "additionalProperties": false
            },
            "strict": true
        }
    ],
    "top_logprobs": 0,
    "top_p": 1,
    "truncation": "disabled",
    "usage": {
        "input_tokens": 69,
        "input_tokens_details": {
            "cached_tokens": 0
        },
        "output_tokens": 23,
        "output_tokens_details": {
            "reasoning_tokens": 0
        },
        "total_tokens": 92
    },
    "user": null,
    "metadata": {}
}

示例代码

python
import http.client
import json

conn = http.client.HTTPSConnection("nxaiapp.com")
payload = json.dumps({
   "model": "gpt-4.1",
   "input": "波士顿今天的天气如何?",
   "tools": [
      {
         "type": "function",
         "name": "get_current_weather",
         "description": "获取指定位置的当前天气",
         "parameters": {
            "type": "object",
            "properties": {
               "location": {
                  "type": "string",
                  "description": "城市和州,例如 San Francisco, CA"
               },
               "unit": {
                  "type": "string",
                  "enum": [
                     "celsius",
                     "fahrenheit"
                  ]
               }
            },
            "required": [
               "location",
               "unit"
            ]
         }
      }
   ],
   "tool_choice": "auto"
})
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"))