函数调用
POST messages支持官方原生格式,模型名称和官方一致
请求参数
Authorization
在 Header 添加参数 Authorization,其值为在 Bearer 之后拼接 Token。
Authorization: Bearer ******************Body 参数
Content-Type: application/json
| 参数名 | 类型 | 必填项 | 说明 |
|---|---|---|---|
| model | string | 必需 | 要使用的模型 ID。有关哪些模型适用于 Chat API 的详细信息,请参阅模型端点兼容性表。 |
| max_tokens | integer | 必需 | 聊天完成时生成的最大令牌数。 输入标记和生成标记的总长度受模型上下文长度的限制。 |
| tools | array [object] | 必需 | 工具 |
| messages | array [object] | 必需 | 模型聊天记录 |
| └─role | string | 可选 | 角色类型:user / assistant / system |
| └─content | string | 可选 | 文本内容 |
| store | boolean | 可选 | 是否存储此聊天补全请求的输出以用于模型蒸馏或评估产品。 |
| reasoning_effort | string | 可选 | 仅适用于 o 系列的模型。 约束推理模型的推理工作。当前支持的值为 low、medium 和 high。减少推理工作可以加快响应速度并减少响应中用于推理的标记数。 |
| metadata | object | 可选 | 可以附加到对象的 16 个键值对集合。这对于以结构化格式存储对象的其他信息很有用,并可以通过 API 或仪表板查询对象。 - 键:最大长度为 64 个字符的字符串。 - 值:最大长度为 512 个字符的字符串。 |
| modalities | array[string] | 可选 | 您希望模型为此请求生成的输出类型。大多数模型都能生成文本,这是默认设置:["text"]。 该模型还可以用于生成音频。要请求此模型同时生成文本和音频响应,您可以使用:["text", "audio"] |
| prediction | object | 可选 | 预测输出的配置。当提前知道模型响应的大部分内容时,可以大大提高响应时间。这在您只对文件进行微小更改时最常见。 |
| audio | object | 可选 | 音频输出的参数。当使用 modalities: ["audio"] 请求音频输出时需要。 |
| temperature | number | 可选 | 要使用的采样温度,介于 0 和 2 之间。 - 较高值(如 0.8):使输出更加随机。 - 较低值(如 0.2):使其更加集中和确定性。 建议:通常建议更改此值或 top_p,但不要同时更改。 |
| top_p | number | 可选 | 一种替代采样温度的方法,称为核采样,其中模型考虑具有 top_p 概率质量的标记结果。因此,0.1 意味着只考虑包含前 10% 概率质量的标记。 建议:通常建议更改此值或 temperature,但不要同时更改。 |
| n | integer | 可选 | 为每个输入消息生成多少个聊天补全选择。请注意,您将根据所有选择生成的标记数量收费。保持 n 为 1 可最大限度地降低成本。 |
| stop | string | 可选 | 不支持最新的推理模型和 .o3、o4-mini。 API 将停止生成更多标记的最多 4 个序列。返回的文本不会包含停止序列。 |
| max_completion_tokens | integer | 可选 | 补全中可以生成的标记数的上限,包括可见输出标记和推理标记。 |
| presence_penalty | number | 可选 | 介于 -2.0 和 2.0 之间的数字。正值根据新标记到目前为止在文本中出现的情况来惩罚它们,从而增加模型讨论新主题的可能性。 |
| frequency_penalty | number | 可选 | 介于 -2.0 和 2.0 之间的数字。正值根据新标记到目前为止在文本中的现有频率来惩罚它们,从而降低模型逐字重复同一行的可能性。 |
| logit_bias | string | 可选 | 修改指定标记出现在补全中的可能性。 接受一个 JSON 对象,该对象将标记(由分词器中的标记 ID 指定)映射到从 -100 到 100 的关联偏差值。在数学上,偏差被添加到模型在采样之前生成的对数中。确切的效果会因模型而异,但介于 -1 和 1 之间的值应该会减少或增加选择的可能性;像 -100 或 100 这样的值应该导致相关标记被禁止或独占选择。 |
| logprobs | boolean | 可选 | 是否在响应中包含对数概率。 |
| user | string | 可选 | 表示最终用户的唯一标识符,可以帮助 OpenAI 监控和检测滥用行为。 |
请求示例 (JSON)
{
"model": "claude-sonnet-4-5-20250929",
"max_tokens": 1024,
"tools": [
{
"name": "get_weather",
"description": "Get the current weather in a given location",
"input_schema": {
"type": "object",
"properties": {
"location": {
"type": "string",
"description": "The city and state, e.g. San Francisco, CA"
}
},
"required": [
"location"
]
}
}
],
"messages": [
{
"role": "user",
"content": "What is the weather like in San Francisco?"
}
]
}返回响应
200 成功
Content-Type: application/json
响应参数
| 参数 | 类型 | 必填 | 说明 |
|---|---|---|---|
| id | string | 必需 | 聊天补全对象的唯一标识符。 |
| object | string | 必需 | 对象类型,通常为 "chat.completion"。 |
| created | integer | 必需 | 补全创建时的 Unix 时间戳(秒)。 |
| model | string | 必需 | 用于生成此补全的模型。 |
| choices | array [object] | 必需 | 模型生成的补全列表。 |
| └─index | integer | 可选 | 此补全在其列表中的索引。 |
| └─message | object | 可选 | 包含模型生成的响应消息的对象。 |
| └─logprobs | null | 可选 | 如果请求中设置了 logprobs,则包含标记的对数概率。 |
| └─finish_reason | string | 可选 | 模型停止生成补全的原因。可能是 "stop"、"length" 或 "tool_calls"。 |
| usage | object | 必需 | 此补全请求使用的令牌统计信息。 |
| └─prompt_tokens | integer | 必需 | 提示中使用的令牌数量。 |
| └─completion_tokens | integer | 必需 | 补全中生成的令牌数量。 |
| └─total_tokens | integer | 必需 | 使用的总令牌数(提示 + 补全)。 |
响应示例
{
"id": "chatcmpl-123",
"object": "chat.completion",
"created": 1677652288,
"choices": [
{
"index": 0,
"message": {
"role": "assistant",
"content": "\n\nHello there, how may I assist you today?"
},
"finish_reason": "stop"
}
],
"usage": {
"prompt_tokens": 9,
"completion_tokens": 12,
"total_tokens": 21
}
}示例代码
python
import http.client
import json
conn = http.client.HTTPSConnection("nxaiapp.com")
payload = json.dumps({
"model": "claude-sonnet-4-5-20250929",
"max_tokens": 1024,
"tools": [
{
"name": "get_weather",
"description": "Get the current weather in a given location",
"input_schema": {
"type": "object",
"properties": {
"location": {
"type": "string",
"description": "The city and state, e.g. San Francisco, CA"
}
},
"required": [
"location"
]
}
}
],
"messages": [
{
"role": "user",
"content": "What is the weather like in San Francisco?"
}
]
})
headers = {
'Authorization': 'Bearer <token>',
'Content-Type': 'application/json'
}
conn.request("POST", "/messages", payload, headers)
res = conn.getresponse()
data = res.read()
print(data.decode("utf-8"))