对话与补全
本页汇总 OpenAI Chat Completions、OpenAI Responses、Anthropic Claude 原生格式与 Google Gemini 原生格式相关接口。
Apifox 覆盖范围补充
- OpenAI / ChatCompletions:基础文本对话、流式响应、图片理解、函数调用、Logprobs、内容补全、联网搜索、PDF 文件分析、Codex、
response_format、N 测试、Token Usage - OpenAI / Responses:基础文本响应、图像分析响应、网络搜索工具、文件搜索工具、Computer use、流式响应、deep-research、函数调用、推理能力、推理总结、xAI 联网搜索
- Anthropic Claude:原生格式、OpenAI 兼容格式、强制返回思考、多轮函数调用、Web search
- Google Gemini:原生文本聊天/媒体识别,OpenAI 兼容格式下的强制思考、自定义思考预算、联网搜索、TTS、音频理解、视频理解
模型接口/聊天(Chat)/OpenAI/ChatCompletions格式
POST Completions旧格式
POST /completions
Body 请求参数
{
"model": "gpt-3.5-turbo-instruct",
"prompt": "Write a tagline for an ice cream shop."
}
请求参数
| 名称 | 位置 | 类型 | 必选 | 说明 |
|---|---|---|---|---|
| Content-Type | header | string | 否 | none |
| Accept | header | string | 否 | none |
| Authorization | header | string | 否 | none |
| body | body | object | 否 | none |
| » messages | body | [object] | 是 | 以聊天格式生成聊天完成的消息。 |
| »» role | body | string | 否 | none |
| »» content | body | string | 否 | none |
| » model | body | string | 是 | 要使用的模型 ID。有关哪些模型适用于 Chat API 的详细信息,请参阅模型端点兼容性表。 |
| » store | body | boolean¦null | 否 | 是否存储此聊天补全请求的输出以用于我们的模型蒸馏或评估产品。 |
| » reasoning_effort | body | string¦null | 否 | 仅适用于 o系列 的模型 |
| » metadata | body | object¦null | 否 | 可以附加到对象的16个键值对集合。这对于以结构化格式存储对象的其他信息很有用,并可以通过 API 或仪表板查询对象。 |
| » modalities | body | [string]¦null | 否 | 您希望模型为此请求生成的输出类型。大多数模型都能生成文本,这是默认设置: ["text"] |
| » prediction | body | object | 否 | 预测输出的配置,当提前知道模型响应的大部分内容时,可以大大提高响应时间。这在您只对文件进行微小更改时最常见。 |
| » audio | body | object¦null | 否 | 音频输出的参数。当使用 modalities: ["audio"] 请求音频输出时需要。 |
| » temperature | body | number¦null | 否 | 要使用的采样温度,介于 0 和 2 之间。较高的值(如0.8)会使输出更加随机,而较低的值(如0.2)会使其更加集中和确定性。我们通常建议更改此值或 top_p,但不要同时更改。 |
| » top_p | body | number¦null | 否 | 一种替代采样温度的方法,称为核采样,其中模型考虑具有 top_p 概率质量的标记结果。因此,0.1 意味着只考虑包含前 10% 概率质量的标记。 |
| » n | body | integer¦null | 否 | 为每个输入消息生成多少个聊天补全选择。请注意,您将根据所有选择生成的标记数量收费。保持 n 为 1 可最大限度地降低成本。 |
| » stop | body | string¦null | 否 | 不支持最新的推理模型和 .o3、o4-mini |
| » max_tokens | body | integer¦null | 否 | 聊天补全中可以生成的最大标记数。此值可用于控制通过 API 生成的文本成本。 |
| » max_completion_tokens | body | integer¦null | 否 | 补全中可以生成的标记数的上限,包括可见输出标记和推理标记。 |
| » presence_penalty | body | number¦null | 否 | 介于 -2.0 和 2.0 之间的数字。正值根据新标记到目前为止在文本中出现的情况来惩罚它们,从而增加模型讨论新主题的可能性。 |
| » frequency_penalty | body | number¦null | 否 | 介于 -2.0 和 2.0 之间的数字。正值根据新标记到目前为止在文本中的现有频率来惩罚它们,从而降低模型逐字重复同一行的可能性。 |
| » logit_bias | body | null | 否 | 修改指定标记出现在补全中的可能性。 |
| » logprobs | body | boolean¦null | 否 | 是否返回输出标记的对数概率。如果为 true,则返回 message.content 中每个输出标记的对数概率。 |
| » user | body | string | 否 | 表示最终用户的唯一标识符,可以帮助 OpenAI 监控和检测滥用行为。 |
| » service_tier | body | string¦null | 否 | 指定用于处理请求的延迟层级。此参数与订阅了 scale tier 服务的客户相关: |
| » stream_options | body | object¦null | 否 | 流式响应的选项。仅在设置 stream: true 时使用。 |
| »» include_usage | body | boolean | 否 | 如果设置,将在 data: [DONE] 消息之前流式传输一个附加块。该块上的 usage 字段显示整个请求的令牌使用统计信息,choices 字段始终为空数组。所有其他块也将包含 usage 字段,但值为 null。注意:如果流被中断,您可能不会收到包含请求总令牌使用量的最终使用块。 |
| » response_format | body | object | 否 | 指定模型必须输出的格式。 |
| » seed | body | integer¦null | 否 | Beta 功能。如果指定,我们的系统将尽最大努力进行确定性采样,使得具有相同 seed 和参数的重复请求应返回相同的结果。不保证确定性,您应参考响应参数的 system_fingerprint 以监控后端的变化。 |
| » tools | body | [string] | 否 | 模型可能调用的工具列表。目前仅支持函数作为工具。使用此参数提供模型可能生成 JSON 输入的函数列表。最多支持 128 个函数。 |
| » functions | body | [string] | 否 | 注意:已弃用,推荐使用 tools |
| » tool_choice | body | string | 否 | 控制模型调用哪个工具(如果有): - none:模型不会调用任何工具,而是生成消息 - auto:模型可以在生成消息或调用一个或多个工具之间选择 - required:模型必须调用一个或多个工具 - {"type": "function", "function": {"name": "my_function"}}:强制模型调用特定工具 |
| » function_call | body | string | 否 | 注意:已弃用,推荐使用 tool_choice |
| » parallel_tool_calls | body | boolean | 否 | 是否在工具使用期间启用并行函数调用。 |
| » stream | body | boolean | 否 | 如果设置为 true,模型响应数据将在生成时通过服务器发送事件流式传输到客户端。请参阅下方的流式响应部分获取更多信息,以及流式响应指南了解如何处理流式事件。 |
| » top_logprobs | body | integer | 否 | 0 到 20 之间的整数,指定在每个标记位置返回的最可能标记的数量,每个标记都有关联的对数概率。如果使用此参数,必须将 logprobs 设置为 true。 |
| » web_search_options | body | object | 否 | 此工具搜索网络以获取相关结果用于回复。了解更多关于网络搜索工具的信息。 |
详细说明
» reasoning_effort: 仅适用于 o系列 的模型 约束推理模型的推理工作。当前支持的值为 low、medium 和 high。减少推理工作可以加快响应速度并减少响应中用于推理的标记数。
» metadata: 可以附加到对象的16个键值对集合。这对于以结构化格式存储对象的其他信息很有用,并可以通过 API 或仪表板查询对象。
键是最大长度为64个字符的字符串。值是最大长度为512个字符的字符串。
» modalities: 您希望模型为此请求生成的输出类型。大多数模型都能生成文本,这是默认设置: ["text"]
该模型还可以用于生成音频。要请求此模型同时生成文本和音频响应,您可以使用: ["text", "audio"]
» top_p: 一种替代采样温度的方法,称为核采样,其中模型考虑具有 top_p 概率质量的标记结果。因此,0.1 意味着只考虑包含前 10% 概率质量的标记。
我们通常建议更改此值或 temperature,但不要同时更改。
» stop: 不支持最新的推理模型和 .o3、o4-mini API 将停止生成更多标记的最多 4 个序列。返回的文本不会包含停止序列。
» max_tokens: 聊天补全中可以生成的最大标记数。此值可用于控制通过 API 生成的文本成本。
该值现已弃用,取而代之的是 max_completion_tokens,并且与 o1 系列模型不兼容。
» logit_bias: 修改指定标记出现在补全中的可能性。
接受一个 JSON 对象,该对象将标记(由分词器中的标记 ID 指定)映射到从 -100 到 100 的关联偏差值。在数学上,偏差被添加到模型在采样之前生成的对数中。确切的效果会因模型而异,但介于 -1 和 1 之间的值应该会减少或增加选择的可能性;像 -100 或 100 这样的值应该导致相关标记被禁止或独占选择。
» service_tier: 指定用于处理请求的延迟层级。此参数与订阅了 scale tier 服务的客户相关:
如果设置为 'auto',且项目启用了 Scale tier,系统将使用 scale tier 信用直到用完 如果设置为 'auto',且项目未启用 Scale tier,请求将使用默认服务层级处理,具有较低的正常运行时间 SLA 且无延迟保证 如果设置为 'default',请求将使用默认服务层级处理,具有较低的正常运行时间 SLA 且无延迟保证 如果设置为 'flex',请求将使用 Flex Processing 服务层级处理。详情请参阅文档。 未设置时,默认行为为 'auto' 当设置此参数时,响应体将包含使用的 service_tier
» response_format: 指定模型必须输出的格式。
设置为 { "type": "json_schema", "json_schema": {...} } 启用结构化输出,确保模型将匹配您提供的 JSON schema。 设置为 { "type": "json_object" } 启用 JSON 模式,确保模型生成的消息是有效的 JSON。 重要提示:使用 JSON 模式时,您还必须通过系统或用户消息自行指示模型生成 JSON。否则,模型可能会生成无尽的空白直到生成达到令牌限制。
» tool_choice: 控制模型调用哪个工具(如果有): - none:模型不会调用任何工具,而是生成消息 - auto:模型可以在生成消息或调用一个或多个工具之间选择 - required:模型必须调用一个或多个工具 - {"type": "function", "function": {"name": "my_function"}}:强制模型调用特定工具
当没有工具时默认为 none,有工具时默认为 auto
» function_call: 注意:已弃用,推荐使用 tool_choice 控制模型调用哪个函数(如果有):
none:模型不会调用函数,而是生成消息 auto:模型可以在生成消息或调用函数之间选择 {"name": "my_function"}:强制模型调用特定函数
返回示例
200 Response
{
"id": "string",
"object": "string",
"created": 0,
"choices": [
{
"index": 0,
"message": {
"role": "string",
"content": "string"
},
"finish_reason": "string"
}
],
"usage": {
"prompt_tokens": 0,
"completion_tokens": 0,
"total_tokens": 0
}
}
返回结果
| 状态码 | 状态码含义 | 说明 | 数据模型 |
|---|---|---|---|
| 200 | OK | none | Inline |
返回数据结构
状态码 200
| 名称 | 类型 | 必选 | 约束 | 中文名 | 说明 |
|---|---|---|---|---|---|
| » id | string | true | none | none | |
| » object | string | true | none | none | |
| » created | integer | true | none | none | |
| » choices | [object] | true | none | none | |
| »» index | integer | false | none | none | |
| »» message | object | false | none | none | |
| »»» role | string | true | none | none | |
| »»» content | string | true | none | none | |
| »» finish_reason | string | false | none | none | |
| » usage | object | true | none | none | |
| »» prompt_tokens | integer | true | none | none | |
| »» completion_tokens | integer | true | none | none | |
| »» total_tokens | integer | true | none | none |
GET 令牌用量查询(Token Usage)
GET /api/usage/token
通过认证查询当前 Bearer Token 的额度使用情况:授予总量、已用、剩余、是否无限、模型限额及到期时间。
字段说明(data) object: 固定为 token_usage name: 令牌名称 total_granted: 授予总量(= 已用 + 剩余) total_used: 已使用额度 total_available: 可用剩余额度 unlimited_quota: 是否为无限额度 model_limits: 允许使用的模型列表 model_limits_enabled: 是否启用模型限额 expires_at: 到期时间的 Unix 时间戳(秒)。若永不过期返回 0(由后端将 -1 归一化为 0)
请求参数
| 名称 | 位置 | 类型 | 必选 | 说明 |
|---|---|---|---|---|
| Authorization | header | string | 否 | none |
返回示例
200 Response
{
"data": [
{
"id": "string",
"object": "string",
"owned_by": "string",
"permission": [
"string"
]
}
],
"object": "string"
}
返回结果
| 状态码 | 状态码含义 | 说明 | 数据模型 |
|---|---|---|---|
| 200 | OK | none | Inline |
返回数据结构
状态码 200
| 名称 | 类型 | 必选 | 约束 | 中文名 | 说明 |
|---|---|---|---|---|---|
| » data | [object] | true | none | none | |
| »» id | string | true | none | none | |
| »» object | string | true | none | none | |
| »» owned_by | string | true | none | none | |
| »» permission | [oneOf] | true | none | none |
oneOf
| 名称 | 类型 | 必选 | 约束 | 中文名 | 说明 |
|---|---|---|---|---|---|
| »»» anonymous | string | false | none | none |
xor
| 名称 | 类型 | 必选 | 约束 | 中文名 | 说明 |
|---|---|---|---|---|---|
| »»» anonymous | integer | false | none | none |
xor
| 名称 | 类型 | 必选 | 约束 | 中文名 | 说明 |
|---|---|---|---|---|---|
| »»» anonymous | boolean | false | none | none |
xor
| 名称 | 类型 | 必选 | 约束 | 中文名 | 说明 |
|---|---|---|---|---|---|
| »»» anonymous | array | false | none | none |
xor
| 名称 | 类型 | 必选 | 约束 | 中文名 | 说明 |
|---|---|---|---|---|---|
| »»» anonymous | object | false | none | none |
xor
| 名称 | 类型 | 必选 | 约束 | 中文名 | 说明 |
|---|---|---|---|---|---|
| »»» anonymous | number | false | none | none |
continued
| 名称 | 类型 | 必选 | 约束 | 中文名 | 说明 |
|---|---|---|---|---|---|
| » object | string | true | none | none |
模型接口/聊天(Chat)/OpenAI/Responses格式
POST xAI联网搜索
POST /responses
Body 请求参数
{
"model": "grok-4-1-fast-reasoning",
"input": [
{
"role": "user",
"content": "最近 xAI 有哪些最新动态?"
}
],
"tools": [
{
"type": "web_search"
},
{
"type": "x_search"
}
]
}
请求参数
| 名称 | 位置 | 类型 | 必选 | 说明 |
|---|---|---|---|---|
| Content-Type | header | string | 是 | none |
| Accept | header | string | 是 | none |
| Authorization | header | string | 否 | none |
| body | body | object | 否 | none |
| » model | body | string | 是 | 要使用的模型的 ID。有关哪些模型适用于聊天 API 的详细信息,请参阅模型端点兼容性表。 |
| » messages | body | [object] | 是 | 以聊天格式生成聊天完成的消息。 |
| »» role | body | string | 否 | none |
| »» content | body | string | 否 | none |
| » temperature | body | integer | 否 | 使用什么采样温度,介于 0 和 2 之间。较高的值(如 0.8)将使输出更加随机,而较低的值(如 0.2)将使输出更加集中和确定。 我们通常建议改变这个或top_p但不是两者。 |
| » top_p | body | integer | 否 | 一种替代温度采样的方法,称为核采样,其中模型考虑具有 top_p 概率质量的标记的结果。所以 0.1 意味着只考虑构成前 10% 概率质量的标记。 我们通常建议改变这个或temperature但不是两者。 |
| » n | body | integer | 否 | 为每个输入消息生成多少个聊天完成选项。 |
| » stream | body | boolean | 否 | 如果设置,将发送部分消息增量,就像在 ChatGPT 中一样。当令牌可用时,令牌将作为纯数据服务器发送事件data: [DONE]发送,流由消息终止。有关示例代码,请参阅 OpenAI Cookbook 。 |
| » stop | body | string | 否 | API 将停止生成更多令牌的最多 4 个序列。 |
| » max_tokens | body | integer | 否 | 聊天完成时生成的最大令牌数。 输入标记和生成标记的总长度受模型上下文长度的限制。 |
| » presence_penalty | body | number | 否 | -2.0 和 2.0 之间的数字。正值会根据到目前为止是否出现在文本中来惩罚新标记,从而增加模型谈论新主题的可能性。 查看有关频率和存在惩罚的更多信息。 |
| » frequency_penalty | body | number | 否 | -2.0 和 2.0 之间的数字。正值会根据新标记在文本中的现有频率对其进行惩罚,从而降低模型逐字重复同一行的可能性。 查看有关频率和存在惩罚的更多信息。 |
| » logit_bias | body | null | 否 | 修改指定标记出现在完成中的可能性。 接受一个 json 对象,该对象将标记(由标记器中的标记 ID 指定)映射到从 -100 到 100 的关联偏差值。从数学上讲,偏差会在采样之前添加到模型生成的 logits 中。确切的效果因模型而异,但 -1 和 1 之间的值应该会减少或增加选择的可能性;像 -100 或 100 这样的值应该导致相关令牌的禁止或独占选择。 |
| » user | body | string | 否 | 代表您的最终用户的唯一标识符,可以帮助 OpenAI 监控和检测滥用行为。了解更多。 |
返回示例
200 Response
{
"id": "string",
"object": "string",
"created": 0,
"choices": [
{
"index": 0,
"message": {
"role": "string",
"content": "string"
},
"finish_reason": "string"
}
],
"usage": {
"prompt_tokens": 0,
"completion_tokens": 0,
"total_tokens": 0
}
}
返回结果
| 状态码 | 状态码含义 | 说明 | 数据模型 |
|---|---|---|---|
| 200 | OK | none | Inline |
返回数据结构
状态码 200
| 名称 | 类型 | 必选 | 约束 | 中文名 | 说明 |
|---|---|---|---|---|---|
| » id | string | true | none | none | |
| » object | string | true | none | none | |
| » created | integer | true | none | none | |
| » choices | [object] | true | none | none | |
| »» index | integer | false | none | none | |
| »» message | object | false | none | none | |
| »»» role | string | true | none | none | |
| »»» content | string | true | none | none | |
| »» finish_reason | string | false | none | none | |
| » usage | object | true | none | none | |
| »» prompt_tokens | integer | true | none | none | |
| »» completion_tokens | integer | true | none | none | |
| »» total_tokens | integer | true | none | none |
模型接口/聊天(Chat)/Anthropic Claude/原生Claude格式(推荐)
POST Web search / 联网搜索
POST /messages
支持官方原生格式,模型名称和官方一致
Body 请求参数
{
"model": "claude-sonnet-4-6",
"max_tokens": 1024,
"messages": [
{
"role": "user",
"content": "今天几号?用一句话总结今天北京的天气,并给出信息来源"
}
],
"tools": [
{
"type": "web_search_20250305",
"name": "web_search",
"max_uses": 3
}
],
"tool_choice": {
"type": "auto"
}
}
请求参数
| 名称 | 位置 | 类型 | 必选 | 说明 |
|---|---|---|---|---|
| Content-Type | header | string | 是 | none |
| Accept | header | string | 是 | none |
| x-api-key | header | string | 否 | none |
| body | body | object | 否 | none |
| » model | body | string | 是 | 要使用的模型的 ID。有关哪些模型适用于聊天 API 的详细信息,请参阅模型端点兼容性表。 |
| » messages | body | [object] | 是 | 以聊天格式生成聊天完成的消息。 |
| »» role | body | string | 否 | none |
| »» content | body | string | 否 | none |
| » temperature | body | integer | 否 | 使用什么采样温度,介于 0 和 2 之间。较高的值(如 0.8)将使输出更加随机,而较低的值(如 0.2)将使输出更加集中和确定。 我们通常建议改变这个或top_p但不是两者。 |
| » top_p | body | integer | 否 | 一种替代温度采样的方法,称为核采样,其中模型考虑具有 top_p 概率质量的标记的结果。所以 0.1 意味着只考虑构成前 10% 概率质量的标记。 我们通常建议改变这个或temperature但不是两者。 |
| » n | body | integer | 否 | 为每个输入消息生成多少个聊天完成选项。 |
| » stream | body | boolean | 否 | 如果设置,将发送部分消息增量,就像在 ChatGPT 中一样。当令牌可用时,令牌将作为纯数据服务器发送事件data: [DONE]发送,流由消息终止。有关示例代码,请参阅 OpenAI Cookbook 。 |
| » stop | body | string | 否 | API 将停止生成更多令牌的最多 4 个序列。 |
| » max_tokens | body | integer | 否 | 聊天完成时生成的最大令牌数。 输入标记和生成标记的总长度受模型上下文长度的限制。 |
| » presence_penalty | body | number | 否 | -2.0 和 2.0 之间的数字。正值会根据到目前为止是否出现在文本中来惩罚新标记,从而增加模型谈论新主题的可能性。 查看有关频率和存在惩罚的更多信息。 |
| » frequency_penalty | body | number | 否 | -2.0 和 2.0 之间的数字。正值会根据新标记在文本中的现有频率对其进行惩罚,从而降低模型逐字重复同一行的可能性。 查看有关频率和存在惩罚的更多信息。 |
| » logit_bias | body | null | 否 | 修改指定标记出现在完成中的可能性。 接受一个 json 对象,该对象将标记(由标记器中的标记 ID 指定)映射到从 -100 到 100 的关联偏差值。从数学上讲,偏差会在采样之前添加到模型生成的 logits 中。确切的效果因模型而异,但 -1 和 1 之间的值应该会减少或增加选择的可能性;像 -100 或 100 这样的值应该导致相关令牌的禁止或独占选择。 |
| » user | body | string | 否 | 代表您的最终用户的唯一标识符,可以帮助 OpenAI 监控和检测滥用行为。了解更多。 |
返回示例
200 Response
{
"id": "string",
"object": "string",
"created": 0,
"choices": [
{
"index": 0,
"message": {
"role": "string",
"content": "string"
},
"finish_reason": "string"
}
],
"usage": {
"prompt_tokens": 0,
"completion_tokens": 0,
"total_tokens": 0
}
}
返回结果
| 状态码 | 状态码含义 | 说明 | 数据模型 |
|---|---|---|---|
| 200 | OK | none | Inline |
返回数据结构
状态码 200
| 名称 | 类型 | 必选 | 约束 | 中文名 | 说明 |
|---|---|---|---|---|---|
| » id | string | true | none | none | |
| » object | string | true | none | none | |
| » created | integer | true | none | none | |
| » choices | [object] | true | none | none | |
| »» index | integer | false | none | none | |
| »» message | object | false | none | none | |
| »»» role | string | true | none | none | |
| »»» content | string | true | none | none | |
| »» finish_reason | string | false | none | none | |
| » usage | object | true | none | none | |
| »» prompt_tokens | integer | true | none | none | |
| »» completion_tokens | integer | true | none | none | |
| »» total_tokens | integer | true | none | none |
模型接口/聊天(Chat)/Google Gemini/原生Gemini格式
POST Gemini文本聊天
POST /v1beta/models/gemini-3-flash-preview:generateContent
代理 Gemini API 请求。 路径格式: /v1beta/models/{model_name}:{action} 例如: /v1beta/models/gemini-2.5-pro:generateContent /v1beta/models/gemini-2.5-pro:streamGenerateContent?alt=sse
Body 请求参数
{
"contents": [
{
"parts": [
{
"text": "Hello"
}
]
}
]
}
请求参数
| 名称 | 位置 | 类型 | 必选 | 说明 |
|---|---|---|---|---|
| key | query | string | 是 | none |
| Content-Type | header | string | 是 | none |
| body | body | object | 否 | none |
| » contents | body | [object] | 是 | none |
| »» parts | body | [object] | 否 | none |
| »»» text | body | string | 否 | none |
返回示例
200 Response
{
"id": "string",
"object": "string",
"created": 0,
"choices": [
{
"index": 0,
"message": {
"role": "string",
"content": "string"
},
"finish_reason": "string"
}
],
"usage": {
"prompt_tokens": 0,
"completion_tokens": 0,
"total_tokens": 0
}
}
返回结果
| 状态码 | 状态码含义 | 说明 | 数据模型 |
|---|---|---|---|
| 200 | OK | none | Inline |
返回数据结构
状态码 200
| 名称 | 类型 | 必选 | 约束 | 中文名 | 说明 |
|---|---|---|---|---|---|
| » id | string | true | none | none | |
| » object | string | true | none | none | |
| » created | integer | true | none | none | |
| » choices | [object] | true | none | none | |
| »» index | integer | false | none | none | |
| »» message | object | false | none | none | |
| »»» role | string | true | none | none | |
| »»» content | string | true | none | none | |
| »» finish_reason | string | false | none | none | |
| » usage | object | true | none | none | |
| »» prompt_tokens | integer | true | none | none | |
| »» completion_tokens | integer | true | none | none | |
| »» total_tokens | integer | true | none | none |