OpenAI 创建聊天补全

2026-11-11 17:09 更新

创建聊天补全

post /chat/completions

开始新项目?建议尝试 Responses, 以使用 OpenAI 平台的最新功能。两者对比请参阅 从 Chat Completions 迁移到 Responses。

为给定聊天对话生成模型响应。更多信息请参阅 文本生成、视觉 和音频指南。

参数支持情况可能因生成响应所用的模型而异, 尤其是较新的推理模型。仅支持推理模型的参数 会在下文注明。推理模型当前不支持的参数, 请参阅 推理指南。

返回聊天补全对象;如请求流式传输,返回一系列 聊天补全流式块对象。

请求体参数

内容类型:application/json

  • messages: array of ChatCompletionMessageParam

到目前为止构成对话的消息列表。根据所用 模型,支持的消息类型(模态)有所不同, 例如文本、 图像和音频。

minItems: 1

  • ChatCompletionDeveloperMessageParam object { content, role, name }

开发者提供的指令,模型应遵循这些指令,而不受 用户消息影响。对于 o1 及后续模型,developer 消息 取代此前的 system 消息。

  • content: string or array of ChatCompletionContentPartText

开发者消息的内容。

  • TextContent = string

开发者消息的内容。

  • ArrayOfContentParts = array of ChatCompletionContentPartText

由具有指定类型的内容部分组成的数组。开发者消息仅支持 text 类型。

minItems: 1

  • text: string

文本内容。

  • type: "text"

内容部分的类型。

  • "text"

  • prompt_cache_breakpoint: optional object { mode, ttl }

标记可复用提示词前缀的精确结束位置。省略 ttl 时,断点继承请求中的 prompt_cache_options.ttl;该边界不会按词元块取整。

  • mode: "explicit" (default: "explicit")

断点模式,固定为 explicit。

  • "explicit"

  • ttl: optional "30m" or "12h"

此缓存断点的最短存续时间,默认为请求的 TTL。

  • "30m"

  • "12h"

  • role: "developer"

消息作者的角色,此处为 developer。

  • "developer"

  • name: optional string

可选的参与者名称,为模型提供信息,以区分角色相同的不同参与者。

  • ChatCompletionSystemMessageParam object { content, role, name }

开发者提供的指令,模型应遵循这些指令,而不受 用户发送的消息影响。对于 o1 及后续模型,改用 developer 消息 提供此类指令。

  • content: string or array of ChatCompletionContentPartText

系统消息的内容。

  • TextContent = string

系统消息的内容。

  • ArrayOfContentParts = array of ChatCompletionContentPartText

由具有指定类型的内容部分组成的数组。系统消息仅支持 text 类型。

minItems: 1

  • text: string

文本内容。

  • type: "text"

内容部分的类型。

  • prompt_cache_breakpoint: optional object { mode, ttl }

标记可复用提示词前缀的精确结束位置。省略 ttl 时,断点继承请求中的 prompt_cache_options.ttl;该边界不会按词元块取整。

  • role: "system"

消息作者的角色,此处为 system。

  • "system"

  • name: optional string

可选的参与者名称,为模型提供信息,以区分角色相同的不同参与者。

  • ChatCompletionUserMessageParam object { content, role, name }

最终用户发送的消息,包含提示词或额外上下文 信息。

  • content: string or array of ChatCompletionContentPart

用户消息的内容。

  • TextContent = string

消息的文本内容。

  • ArrayOfContentParts = array of ChatCompletionContentPart

由具有指定类型的内容部分组成的数组。支持的选项取决于生成响应所用的模型,可以包含文本、图像或音频输入。

minItems: 1

  • ChatCompletionContentPartText object { text, type, prompt_cache_breakpoint }

了解文本输入。

  • text: string

文本内容。

  • type: "text"

内容部分的类型。

  • prompt_cache_breakpoint: optional object { mode, ttl }

标记可复用提示词前缀的精确结束位置。省略 ttl 时,断点继承请求中的 prompt_cache_options.ttl;该边界不会按词元块取整。

  • ChatCompletionContentPartImage object { image_url, type, prompt_cache_breakpoint }

了解图像输入。

  • image_url: object { url, detail }

  • url: string

图像 URL 或 Base64 编码的图像数据。

format: uri

  • detail: optional "auto" or "low" or "high" or "original" (default: "auto")

指定图像细节级别。参阅视觉指南。

  • "auto"

  • "low"

  • "high"

  • "original"

  • type: "image_url"

内容部分的类型。

  • "image_url"

  • prompt_cache_breakpoint: optional object { mode, ttl }

标记可复用提示词前缀的精确结束位置。省略 ttl 时,断点继承请求中的 prompt_cache_options.ttl;该边界不会按词元块取整。

  • mode: "explicit" (default: "explicit")

断点模式,固定为 explicit。

  • "explicit"

  • ttl: optional "30m" or "12h"

此缓存断点的最短存续时间,默认为请求的 TTL。

  • "30m"

  • "12h"

  • ChatCompletionContentPartInputAudio object { input_audio, type, prompt_cache_breakpoint }

了解音频输入。

  • input_audio: object { data, format }

  • data: string

Base64 编码的音频数据。

  • format: "wav" or "mp3"

编码音频数据的格式,当前支持 "wav" 和 "mp3"。

  • "wav"

  • "mp3"

  • type: "input_audio"

内容部分类型,固定为 input_audio。

  • "input_audio"

  • prompt_cache_breakpoint: optional object { mode, ttl }

标记可复用提示词前缀的精确结束位置。省略 ttl 时,断点继承请求中的 prompt_cache_options.ttl;该边界不会按词元块取整。

  • mode: "explicit" (default: "explicit")

断点模式,固定为 explicit。

  • "explicit"

  • ttl: optional "30m" or "12h"

此缓存断点的最短存续时间,默认为请求的 TTL。

  • "30m"

  • "12h"

  • FileContentPart object { file, type, prompt_cache_breakpoint }

了解用于文本生成的文件输入。

  • file: object { file_data, file_id, filename }

  • file_data: optional string

将文件作为字符串传给模型时,使用 Base64 编码的 文件数据。

  • file_id: optional string

用作输入的已上传文件的 ID。

  • filename: optional string

将文件作为字符串传给模型时,使用的 文件名。

  • type: "file"

内容部分类型,固定为 file。

  • "file"

  • prompt_cache_breakpoint: optional object { mode, ttl }

标记可复用提示词前缀的精确结束位置。省略 ttl 时,断点继承请求中的 prompt_cache_options.ttl;该边界不会按词元块取整。

  • mode: "explicit" (default: "explicit")

断点模式,固定为 explicit。

  • "explicit"

  • ttl: optional "30m" or "12h"

此缓存断点的最短存续时间,默认为请求的 TTL。

  • "30m"

  • "12h"

  • role: "user"

消息作者的角色,此处为 user。

  • "user"

  • name: optional string

可选的参与者名称,为模型提供信息,以区分角色相同的不同参与者。

  • ChatCompletionAssistantMessageParam object { role, audio, content, 4 more }

模型回应用户消息时发送的消息。

  • role: "assistant"

消息作者的角色,此处为 assistant。

  • "assistant"

  • audio: optional object { id } or null

模型此前音频响应的相关数据。 了解更多。

  • id: string

模型此前音频响应的唯一标识。

  • content: optional string or array of ChatCompletionContentPartText or ChatCompletionContentPartRefusal or null

助手消息内容。未指定 tool_calls 或 function_call 时必填。

  • TextContent = string

助手消息的内容。

  • ArrayOfContentParts = array of ChatCompletionContentPartText or ChatCompletionContentPartRefusal

由具有指定类型的内容部分组成的数组,可以包含一个或多个 text 部分,或恰好一个 refusal 部分。

minItems: 1

  • ChatCompletionContentPartText object { text, type, prompt_cache_breakpoint }

了解文本输入。

  • ChatCompletionContentPartRefusal object { refusal, type }

  • refusal: string

模型生成的拒绝消息。

  • type: "refusal"

内容部分的类型。

  • "refusal"

  • function_call: optional object { arguments, name } or null

此字段已弃用,由 tool_calls 替代。它包含模型生成的待调用函数名称与参数。

  • arguments: string

模型以 JSON 格式生成的函数调用参数。模型可能生成无效 JSON,也可能虚构函数结构中未定义的参数。调用函数前,应在代码中验证这些参数。

  • name: string

要调用的函数名称。

  • name: optional string

可选的参与者名称,为模型提供信息,以区分角色相同的不同参与者。

  • refusal: optional string or null

助手给出的拒绝消息。

  • tool_calls: optional array of ChatCompletionMessageToolCall

模型生成的工具调用,例如函数调用。

  • ChatCompletionMessageFunctionToolCall object { id, function, type }

模型生成的函数工具调用。

  • id: string

工具调用 ID。

  • function: object { arguments, name }

模型调用的函数。

  • arguments: string

模型以 JSON 格式生成的函数调用参数。模型可能生成无效 JSON,也可能虚构函数结构中未定义的参数。调用函数前,应在代码中验证这些参数。

  • name: string

要调用的函数名称。

  • type: "function"

工具类型,目前仅支持 function。

  • "function"

  • ChatCompletionMessageCustomToolCall object { id, custom, type }

模型生成的自定义工具调用。

  • id: string

工具调用 ID。

  • custom: object { input, name }

模型调用的自定义工具。

  • input: string

模型生成的自定义工具调用输入。

  • name: string

要调用的自定义工具名称。

  • type: "custom"

工具类型,固定为 custom。

  • "custom"

  • ChatCompletionToolMessageParam object { content, role, tool_call_id }

  • content: string or array of ChatCompletionContentPartText

工具消息的内容。

  • TextContent = string

工具消息的内容。

  • ArrayOfContentParts = array of ChatCompletionContentPartText

由具有指定类型的内容部分组成的数组。工具消息仅支持 text 类型。

minItems: 1

  • text: string

文本内容。

  • type: "text"

内容部分的类型。

  • prompt_cache_breakpoint: optional object { mode, ttl }

标记可复用提示词前缀的精确结束位置。省略 ttl 时,断点继承请求中的 prompt_cache_options.ttl;该边界不会按词元块取整。

  • role: "tool"

消息作者的角色,此处为 tool。

  • "tool"

  • tool_call_id: string

此消息所回应的工具调用。

  • ChatCompletionFunctionMessageParam object { content, name, role }

  • content: string or null

函数消息的内容。

  • name: string

要调用的函数名称。

  • role: "function"

消息作者的角色,此处为 function。

  • "function"

  • model: string or "gpt-6-astra" or "gpt-6.1-sol" or "gpt-6.1-terra" or 87 more

用于生成响应的模型 ID,例如 gpt-6-astra 或 o3。OpenAI 提供多种模型,其能力、性能 特点及价格各不相同。可通过模型指南 浏览并比较可用模型。

  • string

  • "gpt-6-astra" or "gpt-6.1-sol" or "gpt-6.1-terra" or 87 more

用于生成响应的模型 ID,例如 gpt-6-astra 或 o3。OpenAI 提供多种模型,其能力、性能 特点及价格各不相同。可通过模型指南 浏览并比较可用模型。

  • "gpt-6-astra"

  • "gpt-6.1-sol"

  • "gpt-6.1-terra"

  • "gpt-6-sol"

  • "gpt-6-luna"

  • "gpt-5.6-sol"

  • "gpt-5.6-terra"

  • "gpt-5.6-luna"

  • "gpt-5.5"

  • "gpt-5.5-2026-04-23"

  • "gpt-5.4"

  • "gpt-5.4-mini"

  • "gpt-5.4-nano"

  • "gpt-5.4-mini-2026-03-17"

  • "gpt-5.4-nano-2026-03-17"

  • "gpt-5.3-chat-latest"

  • "gpt-5.2"

  • "gpt-5.2-2025-12-11"

  • "gpt-5.2-chat-latest"

  • "gpt-5.2-pro"

  • "gpt-5.2-pro-2025-12-11"

  • "gpt-5.1"

  • "gpt-5.1-2025-11-13"

  • "gpt-5.1-codex"

  • "gpt-5.1-mini"

  • "gpt-5.1-chat-latest"

  • "gpt-5"

  • "gpt-5-mini"

  • "gpt-5-nano"

  • "gpt-5-2025-08-07"

  • "gpt-5-mini-2025-08-07"

  • "gpt-5-nano-2025-08-07"

  • "gpt-5-chat-latest"

  • "gpt-4.1"

  • "gpt-4.1-mini"

  • "gpt-4.1-nano"

  • "gpt-4.1-2025-04-14"

  • "gpt-4.1-mini-2025-04-14"

  • "gpt-4.1-nano-2025-04-14"

  • "o4-mini"

  • "o4-mini-2025-04-16"

  • "o3"

  • "o3-2025-04-16"

  • "o3-mini"

  • "o3-mini-2025-01-31"

  • "o1"

  • "o1-2024-12-17"

  • "o1-preview"

  • "o1-preview-2024-09-12"

  • "o1-mini"

  • "o1-mini-2024-09-12"

  • "gpt-4o"

  • "gpt-4o-2024-11-20"

  • "gpt-4o-2024-08-06"

  • "gpt-4o-2024-05-13"

  • "gpt-audio-mini"

  • "gpt-audio-mini-2025-12-15"

  • "gpt-4o-audio-preview"

  • "gpt-4o-audio-preview-2024-10-01"

  • "gpt-4o-audio-preview-2024-12-17"

  • "gpt-4o-audio-preview-2025-06-03"

  • "gpt-4o-mini-audio-preview"

  • "gpt-4o-mini-audio-preview-2024-12-17"

  • "gpt-4o-search-preview"

  • "gpt-4o-mini-search-preview"

  • "gpt-4o-search-preview-2025-03-11"

  • "gpt-4o-mini-search-preview-2025-03-11"

  • "chatgpt-4o-latest"

  • "codex-mini-latest"

  • "gpt-4o-mini"

  • "gpt-4o-mini-2024-07-18"

  • "gpt-4-turbo"

  • "gpt-4-turbo-2024-04-09"

  • "gpt-4-0125-preview"

  • "gpt-4-turbo-preview"

  • "gpt-4-1106-preview"

  • "gpt-4-vision-preview"

  • "gpt-4"

  • "gpt-4-0314"

  • "gpt-4-0613"

  • "gpt-4-32k"

  • "gpt-4-32k-0314"

  • "gpt-4-32k-0613"

  • "gpt-3.5-turbo"

  • "gpt-3.5-turbo-16k"

  • "gpt-3.5-turbo-0301"

  • "gpt-3.5-turbo-0613"

  • "gpt-3.5-turbo-1106"

  • "gpt-3.5-turbo-0125"

  • "gpt-3.5-turbo-16k-0613"

  • audio: optional ChatCompletionAudioParam or null

音频输出参数。通过 modalities: ["audio"] 请求音频 输出时必填。了解更多。

  • format: "wav" or "aac" or "mp3" or 3 more

输出音频格式,须为 wav、mp3、flac、 opus 或 pcm16。

  • "wav"

  • "aac"

  • "mp3"

  • "flac"

  • "opus"

  • "pcm16"

  • voice: string or "alloy" or "ash" or "ballad" or 7 more or ID { id }

模型响应使用的音色。支持的内置音色包括 alloy, ash, ballad, coral, echo, fable, nova, onyx, sage、shimmer、marin 和 cedar。也可以提供 包含 id 的自定义音色对象,例如 { "id": "voice_1234" }。 自定义音色须通过音频样本创建。通过文本 提示词创建的音色仅适用于 Live。

  • string

  • "alloy" or "ash" or "ballad" or 7 more

  • "alloy"

  • "ash"

  • "ballad"

  • "coral"

  • "echo"

  • "sage"

  • "shimmer"

  • "verse"

  • "marin"

  • "cedar"

  • ID object { id }

自定义音色引用。

  • id: string

自定义音色 ID,例如 voice_1234。

  • frequency_penalty: optional number or null (default: 0)

数值介于 -2.0 和 2.0。正数会根据新词元 在现有文本中的出现频率惩罚它,降低模型 逐字重复相同行的概率。

minimum: -2, maximum: 2

  • function_call: optional "none" or "auto" or ChatCompletionFunctionCallOption

已弃用,改用 tool_choice。

控制模型是否调用函数,以及调用哪个函数。

none 表示模型不调用函数,而是生成 消息。

auto 表示模型可在生成消息和调用 函数之间选择。

通过 {"name": "my_function"} 指定具体函数,会强制 模型调用该函数。

没有函数时,默认为 none;有函数时, 默认为 auto。

  • "none" or "auto"

none 表示模型不调用函数,而是生成消息;auto 表示模型可在生成消息和调用函数之间选择。

  • "none"

  • "auto"

  • ChatCompletionFunctionCallOption object { name }

通过 {"name": "my_function"} 指定具体函数,会强制模型调用该函数。

  • name: string

要调用的函数名称。

  • functions: optional array of object { name, description, parameters }

已弃用,改用 tools。

模型可为其生成 JSON 输入的函数列表。

minItems: 1, maxItems: 128

  • name: string

要调用的函数名称,须使用 a-z、A-Z、0-9,或包含下划线和连字符,最长为 64 个字符。

  • description: optional string

函数功能的描述,模型据此选择何时以及如何调用该函数。

  • parameters: optional FunctionParameters

函数接受的参数,以 JSON Schema 对象描述。示例参阅指南,格式说明参阅 JSON Schema 参考。

省略 parameters 表示定义参数列表为空的函数。

  • logit_bias: optional map[number] or null (default: null)

修改指定词元出现在补全内容中的概率。

接受 JSON 对象,将词元(以分词器中的词元 ID 指定) 映射到 -100 至 100 的偏置值。在数学上, 采样前将此偏置加到模型生成的 logits 上。 确切效果因模型而异,但 -1 至 1 之间的值应 降低或提高被选中的概率;-100 或 100 等值 应分别禁止或使模型仅选择相关词元。

  • logprobs: optional boolean or null (default: false)

是否返回输出词元的对数概率。为 true 时, 返回 message 的 content 中 每个输出词元的对数概率。

  • max_completion_tokens: optional integer or null

补全可生成的词元数量上限,包括可见输出词元和推理词元。

  • max_tokens: optional integer or null

聊天补全可生成的最大词元 数量,可用于控制通过 API 生成文本的 成本。

此值已弃用,改用 max_completion_tokens,且 不兼容 o 系列模型。

  • metadata: optional Metadata or null

可附加到对象的元数据,最多包含 16 组键值对,可 以结构化方式存储对象的额外信息, 并通过 API 或控制台查询对象。

键为最多 64 个字符的字符串,值为 最多 512 个字符的字符串。

  • modalities: optional array of "text" or "audio" or null

希望模型生成的输出类型。 多数模型能够生成文本,这也是默认值:

["text"]

gpt-4o-audio-preview 模型也可用于 生成音频。如需此模型同时生成 文本和音频响应,可以使用:

["text", "audio"]

  • "text"

  • "audio"

  • moderation: optional object { model, policy } or null

对请求输入和生成输出执行审核的配置。

  • model: string

审核补全内容所用的审核模型,例如 'omni-moderation-latest'。

  • policy: optional object { input, output } or null

对受审核响应的输入和输出应用的策略。

  • input: optional object { mode } or null

响应输入的审核策略。

  • mode: "score" or "block"

  • "score"

  • "block"

  • output: optional object { mode } or null

响应输出的审核策略。

  • mode: "score" or "block"

  • "score"

  • "block"

  • n: optional integer or null (default: 1)

每条输入消息要生成的聊天补全候选项数量。计费按所有候选项生成的词元总数计算。保持 n 为 1 可降低成本。

minimum: 1, maximum: 128

  • parallel_tool_calls: optional boolean (default: true)

工具使用期间是否启用并行函数调用。

  • prediction: optional ChatCompletionPredictionContent or null

预测输出配置。 预先知道模型响应的大部分内容时,可以显著缩短 响应时间。最常见的场景是重新生成文件, 但只对大部分现有内容作少量修改。

  • content: string or array of ChatCompletionContentPartText

生成模型响应时应匹配的内容。 如果生成的词元与此内容匹配,整个模型响应 可以更快返回。

  • TextContent = string

预测输出使用的内容,通常是 你正在作少量修改并重新生成的文件的文本。

  • ArrayOfContentParts = array of ChatCompletionContentPartText

由具有指定类型的内容部分组成的数组。支持的选项取决于生成响应所用的模型,可以包含文本输入。

minItems: 1

  • text: string

文本内容。

  • type: "text"

内容部分的类型。

  • prompt_cache_breakpoint: optional object { mode, ttl }

标记可复用提示词前缀的精确结束位置。省略 ttl 时,断点继承请求中的 prompt_cache_options.ttl;该边界不会按词元块取整。

  • type: "content"

要提供的预测内容的类型,当前 固定为 content。

  • "content"

  • presence_penalty: optional number or null (default: 0)

数值介于 -2.0 和 2.0。正数会根据新词元 是否已出现在当前文本中惩罚它,提高模型 讨论新话题的概率。

minimum: -2, maximum: 2

  • prompt_cache_key: optional string or null

OpenAI 用于缓存类似请求的响应,以优化缓存命中率。替代 user 字段。了解更多。

  • prompt_cache_options: optional object { mode, ttl }

提示词缓存选项,支持 gpt-5.6 及后续模型。默认由 OpenAI 自动选择一个隐式缓存断点。可通过 prompt_cache_breakpoint 为内容块添加显式断点。每个请求最多写入四个断点。缓存匹配会考虑对话中最近最多 80 个断点,不受内容块回看数量限制。将 mode 设为 explicit 可禁用隐式断点。ttl 默认为 30m。支持的存续时间取决于 API,当前详情参阅提示词缓存指南。

  • mode: optional "implicit" or "explicit"

控制 OpenAI 是否自动创建隐式缓存断点,默认为 implicit。使用 implicit 时,创建一个隐式断点,并写入请求中最近最多三个显式断点。使用 explicit 时,不创建隐式断点,写入最近最多四个显式断点。如果没有显式断点,请求不使用提示词缓存。

  • "implicit"

  • "explicit"

  • ttl: optional "30m"

请求写入的每个隐式和显式缓存断点的最短存续时间,默认为 30m,目前仅支持此值。后端可能保留缓存条目更长时间。

  • "30m"

  • prompt_cache_retention: optional "in_memory" or "24h" or null

已弃用,改用 prompt_cache_options.ttl。

提示词缓存的保留策略。设为 24h 可启用扩展提示词缓存,使缓存前缀保持活动更久,最长 24 小时。了解更多。 此字段表示最大保留策略,而 prompt_cache_options.ttl 表示最短缓存存续时间。两者 相互独立,不发生交互。 对于 gpt-5.5、gpt-5.5-pro 及未来模型,仅支持 24h。

对于同时支持 in_memory 和 24h 的较早模型,默认值取决于组织的数据保留策略:

  • 未启用 ZDR 的组织默认为 24h。
  • 启用 ZDR 的组织在未指定 prompt_cache_retention 时默认为 in_memory。

  • "in_memory"

  • "24h"

  • reasoning_effort: optional ReasoningEffort or null (default: "medium")

限制推理模型的推理强度。当前支持 none、minimal、low、medium、high、xhigh 和 max。 降低推理强度可能加快响应,并减少响应中用于 推理的词元数。并非所有推理模型都支持每个 取值。各模型的支持情况请参阅 推理指南 中的说明。

  • "none"

  • "minimal"

  • "low"

  • "medium"

  • "high"

  • "xhigh"

  • "max"

  • response_format: optional ResponseFormatText or ResponseFormatJSONSchema or ResponseFormatJSONObject

指定模型必须输出的格式的对象。

设为 { "type": "json_schema", "json_schema": {...} } 会启用 结构化输出,确保模型遵循你提供的 JSON 模式。更多信息请参阅结构化输出 指南。

设为 { "type": "json_object" } 会启用旧版 JSON 模式, 确保模型生成有效的 JSON。对于支持的模型,优先使用 json_schema 格式。

  • ResponseFormatText object { type }

默认响应格式,用于生成文本响应。

  • type: "text"

定义的响应格式类型,固定为 text。

  • "text"

  • ResponseFormatJSONSchema object { json_schema, type }

JSON Schema 响应格式,用于生成结构化 JSON 响应。 参阅结构化输出。

  • json_schema: object { name, description, schema, strict }

结构化输出配置选项,包含 JSON Schema。

  • name: string

响应格式的名称,须使用 a-z、A-Z、0-9,或包含 下划线和连字符,最长为 64 个字符。

  • description: optional string

响应格式的用途描述,模型据此 判断如何按该格式响应。

  • schema: optional map[unknown]

以 JSON Schema 对象描述的响应格式模式。 JSON Schema 的构建方法参阅此处。

  • strict: optional boolean or null (default: false)

生成输出时是否启用严格模式遵循。 设为 true 时,模型始终严格遵循 schema 字段中定义的模式。strict 为 true 时仅支持 JSON Schema 的子集。更多信息请参阅结构化输出 指南。

  • type: "json_schema"

定义的响应格式类型,固定为 json_schema。

  • "json_schema"

  • ResponseFormatJSONObject object { type }

JSON 对象响应格式,是生成 JSON 响应的较早方式。 对于支持的模型,建议使用 json_schema。注意: 须在系统消息或用户消息中指示模型生成 JSON, 模型才会生成 JSON。

  • type: "json_object"

定义的响应格式类型,固定为 json_object。

  • "json_object"

  • safety_identifier: optional string or null

稳定的标识,用于检测可能违反 OpenAI 使用政策的应用用户。 ID 应为唯一标识每位用户的字符串,最长 128 个字符。建议对用户名或邮箱地址进行哈希处理,避免发送可识别身份的信息。了解更多。

maxLength: 128

  • seed: optional integer or null

此功能处于 Beta 阶段。 如果指定,系统会尽力进行确定性采样,使相同 seed 和参数的重复请求返回相同结果。 不保证确定性,应通过响应参数 system_fingerprint 监测后端变化。

format: int64, minimum: -9223372036854775808, maximum: 9223372036854775807

  • service_tier: optional "auto" or "default" or "flex" or 3 more or null (default: "auto")

指定处理请求所采用的服务类型。

  • 设为 'auto' 时,按项目设置的服务层级处理请求。未另行配置时,项目使用 'default'。
  • 设为 'default' 时,使用所选模型的标准价格和性能处理请求。
  • 设为 'flex' 时,使用 Flex Processing 服务层级处理请求。
  • 在请求级别启用快速模式,可在 Responses 或 Chat Completions 请求中传入 service_tier=fast 或 service_tier=priority。无论请求中使用哪一种值,响应均显示 service_tier=priority。
  • 未设置时,默认按 'auto' 处理。

设置 service_tier 后,响应体中的同名字段反映实际采用的处理模式,可能与请求参数的值不同。

  • "auto"

  • "default"

  • "flex"

  • "scale"

  • "priority"

  • "fast"

  • stop: optional string or array of string or null

不支持最新推理模型 o3 和 o4-mini。

最多四个序列,API 遇到时停止生成后续词元。 返回文本不包含停止序列。

  • string

  • array of string

minItems: 1, maxItems: 4

  • store: optional boolean or null (default: false)

是否存储此聊天补全请求的输出,以用于 模型蒸馏或 评测产品。

支持文本和图像输入。注意:超过 8MB 的输入图像会被丢弃。

  • stream: optional boolean or null (default: false)

设为 true 时,模型响应数据会在生成过程中通过 服务器发送事件(SSE)流式发送给客户端。 更多信息参阅下方的流式传输章节, 处理流式事件的方法参阅流式响应 指南。

  • stream_options: optional ChatCompletionStreamOptions or null

流式响应的选项,仅在设置 stream: true 时使用。

  • include_obfuscation: optional boolean

为 true 时启用流混淆。流混淆会在流式增量事件的 obfuscation 字段中添加随机字符,以使载荷大小趋于一致, 缓解某些侧信道攻击。 默认包含这些混淆字段,会增加少量 数据流开销。如果信任应用与 OpenAI API 之间的 网络连接,可以将 include_obfuscation 设为 false, 以优化带宽使用。

  • include_usage: optional boolean

如果设置,会在 data: [DONE] 消息前额外 流式发送一个块,其 usage 表示整个请求的词元用量, choices 始终为 空数组。

其他所有块也会包含 usage 字段,但值为 null。注意:如果流被打断,可能收不到 包含请求总词元用量的最后一个块。

  • temperature: optional number or null (default: 1)

模型采样温度,范围为 0–2。0.8 等较高值使输出更随机,0.2 等较低值使输出更集中、更具确定性。 通常建议只调整此项或 top_p 中的一项,不同时调整两者。

minimum: 0, maximum: 2

  • tool_choice: optional ChatCompletionToolChoiceOption

控制模型调用哪个工具,或是否调用工具。 none 表示模型不调用工具,而是生成消息。 auto 表示模型可在生成消息和调用一个或多个工具之间选择。 required 表示模型必须调用一个或多个工具。 通过 {"type": "function", "function": {"name": "my_function"}} 指定具体工具,会强制模型调用它。

没有工具时,默认为 none;有工具时,默认为 auto。

  • ToolChoiceMode = "none" or "auto" or "required"

none 表示模型不调用工具,而是生成消息;auto 表示可在生成消息和调用一个或多个工具之间选择;required 表示必须调用一个或多个工具。

  • "none"

  • "auto"

  • "required"

  • ChatCompletionAllowedToolChoice object { allowed_tools, type }

将模型可用的工具限制为预先定义的集合。

  • allowed_tools: ChatCompletionAllowedTools

将模型可用的工具限制为预先定义的集合。

  • mode: "auto" or "required"

将模型可用的工具限制为预先定义的集合。

auto 允许模型从允许的工具中选择,并生成 消息。

required 要求模型调用一个或多个允许的工具。

  • "auto"

  • "required"

  • tools: array of map[unknown]

应允许模型调用的工具定义列表。

对于 Chat Completions API,工具定义列表可能如下:

        [
          { "type": "function", "function": { "name": "get_weather" } },
          { "type": "function", "function": { "name": "get_time" } }
        ]

  • type: "allowed_tools"

允许的工具配置类型,固定为 allowed_tools。

  • "allowed_tools"

  • ChatCompletionNamedToolChoice object { function, type }

指定模型应使用的工具,用于强制模型调用指定函数。

  • function: object { name }

  • name: string

要调用的函数名称。

  • type: "function"

对于函数调用,类型固定为 function。

  • "function"

  • ChatCompletionNamedToolChoiceCustom object { custom, type }

指定模型应使用的工具,用于强制模型调用指定自定义工具。

  • custom: object { name }

  • name: string

要调用的自定义工具名称。

  • type: "custom"

对于自定义工具调用,类型固定为 custom。

  • "custom"

  • tools: optional array of ChatCompletionTool

模型可调用的工具列表。可以提供 自定义工具或 函数工具。

  • ChatCompletionFunctionTool object { function, type }

可用于生成响应的函数工具。

  • function: FunctionDefinition

  • name: string

要调用的函数名称,须使用 a-z、A-Z、0-9,或包含下划线和连字符,最长为 64 个字符。

  • description: optional string

函数功能的描述,模型据此选择何时以及如何调用该函数。

  • parameters: optional FunctionParameters

函数接受的参数,以 JSON Schema 对象描述。示例参阅指南,格式说明参阅 JSON Schema 参考。

省略 parameters 表示定义参数列表为空的函数。

  • strict: optional boolean or null (default: false)

生成函数调用时是否启用严格模式遵循。设为 true 时,模型严格遵循 parameters 字段中定义的模式。strict 为 true 时仅支持 JSON Schema 的子集。结构化输出的更多信息参阅函数调用指南。

  • type: "function"

工具类型,目前仅支持 function。

  • "function"

  • ChatCompletionCustomTool object { custom, type }

按指定格式处理输入的自定义工具。

  • custom: object { name, description, format }

自定义工具的属性。

  • name: string

自定义工具的名称,用于在工具调用中标识它。

  • description: optional string

自定义工具的可选描述,用于提供更多上下文。

  • format: optional Text { type } or Grammar { grammar, type }

自定义工具的输入格式,默认为无约束文本。

  • Text object { type }

无约束的自由文本。

  • type: "text"

无约束文本格式,固定为 text。

  • "text"

  • Grammar object { grammar, type }

用户定义的语法。

  • grammar: object { definition, syntax }

选用的语法。

  • definition: string

语法定义。

  • syntax: "lark" or "regex"

语法定义的语法类型,可选 lark 或 regex。

  • "lark"

  • "regex"

  • type: "grammar"

语法格式,固定为 grammar。

  • "grammar"

  • type: "custom"

自定义工具类型,固定为 custom。

  • "custom"

  • top_logprobs: optional integer or null

数值为 0–20 的整数,指定每个词元位置最多返回 多少个最可能的词元,每个词元附带其对数 概率。某些情况下,返回数量可能少于 请求数量。 使用此参数时,logprobs 必须为 true。

minimum: 0, maximum: 20

  • top_p: optional number or null (default: 1)

除 temperature 采样之外的另一种方式,称为核采样。 模型考虑累计概率质量达到 top_p 的词元。 例如 0.1 表示仅考虑累计占最高 10% 概率质量 的词元。

通常建议只调整此项或 temperature 中的一项,不同时调整两者。

minimum: 0, maximum: 1

  • user: optional string or null

此字段正被 safety_identifier 和 prompt_cache_key 替代。使用 prompt_cache_key 保持缓存优化。 最终用户的稳定标识。 通过更好地对类似请求分组,提高缓存命中率,并帮助 OpenAI 检测与防止滥用。了解更多。

  • verbosity: optional "low" or "medium" or "high" or null (default: "medium")

限制模型响应的详细程度。较低值会生成 更简洁的响应,较高值会生成更详细的响应。 当前支持 low、medium 和 high,默认值为 medium.

  • "low"

  • "medium"

  • "high"

  • web_search_options: optional object { search_context_size, user_location }

搜索网页以获取可用于响应的相关结果的工具。 了解网页搜索工具。

  • search_context_size: optional "low" or "medium" or "high" (default: "medium")

搜索占用上下文窗口空间大小的总体指导。 可选 low、medium 或 high,默认为 medium。

  • "low"

  • "medium"

  • "high"

  • user_location: optional object { approximate, type } or null

搜索使用的大致位置参数。

  • approximate: object { city, country, region, timezone }

搜索使用的大致位置参数。

  • city: optional string

用户所在城市的自由文本,例如 San Francisco。

  • country: optional string

用户所在国家/地区的两字母 ISO 代码, 例如 US。

  • region: optional string

用户所在地区的自由文本,例如 California。

  • timezone: optional string

用户所在的 IANA 时区, 例如 America/Los_Angeles。

  • type: "approximate"

位置估算类型,固定为 approximate。

  • "approximate"

返回值

  • ChatCompletion object { id, choices, created, 7 more }

表示模型根据输入返回的聊天补全响应。

  • id: string

聊天补全的唯一标识。

  • choices: array of object { finish_reason, index, logprobs, message }

聊天补全候选项列表。n 大于 1 时,可能包含多个候选项。

  • finish_reason: "stop" or "length" or "tool_calls" or 2 more

模型停止生成词元的原因。到达自然停止点或指定停止序列时为 stop, 达到请求中指定的最大词元数时为 length, 因内容过滤器标记而省略内容时为 content_filter, 调用工具时为 tool_calls,调用函数时为已弃用的 function_call。 详情参阅模型规范。

  • "stop"

  • "length"

  • "tool_calls"

  • "content_filter"

  • "function_call"

  • index: integer

候选项在列表中的索引。

  • logprobs: object { content, refusal } or null

候选项的对数概率信息。

  • content: array of ChatCompletionTokenLogprob or null

消息内容词元及其对数概率的列表。

  • token: string

词元。

  • bytes: array of number or null

表示词元 UTF-8 字节的整数列表。一个字符由多个词元表示、需要组合字节以正确还原文本时,此字段尤其有用。词元没有字节表示时可为 null。

  • logprob: number

若词元位于最可能的前 20 个词元内,此字段为其对数概率。否则以 -9999.0 表示该词元出现的可能性极低。

  • top_logprobs: array of object { token, bytes, logprob }

当前词元位置上最可能的词元及其对数概率列表,实际条目数可能少于请求的 top_logprobs。

  • token: string

词元。

  • bytes: array of number or null

表示词元 UTF-8 字节的整数列表。一个字符由多个词元表示、需要组合字节以正确还原文本时,此字段尤其有用。词元没有字节表示时可为 null。

  • logprob: number

若词元位于最可能的前 20 个词元内,此字段为其对数概率。否则以 -9999.0 表示该词元出现的可能性极低。

  • refusal: array of ChatCompletionTokenLogprob or null

拒绝响应词元及其对数概率列表。

  • token: string

词元。

  • bytes: array of number or null

表示词元 UTF-8 字节的整数列表。一个字符由多个词元表示、需要组合字节以正确还原文本时,此字段尤其有用。词元没有字节表示时可为 null。

  • logprob: number

若词元位于最可能的前 20 个词元内,此字段为其对数概率。否则以 -9999.0 表示该词元出现的可能性极低。

  • top_logprobs: array of object { token, bytes, logprob }

当前词元位置上最可能的词元及其对数概率列表,实际条目数可能少于请求的 top_logprobs。

  • message: ChatCompletionMessage

模型生成的聊天补全消息。

  • content: string or null

消息内容。

  • role: "assistant"

消息作者的角色。

  • "assistant"

  • annotations: optional array of object { type, url_citation }

消息注释,在适用时提供,例如使用 网络搜索工具时。

  • type: "url_citation"

URL 引用的类型,固定为 url_citation。

  • "url_citation"

  • url_citation: object { end_index, start_index, title, url }

使用网络搜索时的 URL 引用。

  • end_index: integer

URL 引用在消息中最后一个字符的索引。

  • start_index: integer

URL 引用在消息中第一个字符的索引。

  • title: string

网络资源标题。

  • url: string

网络资源 URL。

format: uri

  • audio: optional ChatCompletionAudio or null

请求音频输出模态时,此对象包含 模型音频响应的数据。参阅音频指南。

  • id: string

此音频响应的唯一标识。

  • data: string

模型生成的 Base64 编码音频字节,采用 请求指定的格式。

  • expires_at: integer

此音频响应不再能在服务端用于多轮 对话的时间,以 Unix 时间戳表示, 单位为秒。

format: unixtime

  • transcript: string

模型生成音频的转录文本。

  • function_call: optional object { arguments, name } or null

此字段已弃用,由 tool_calls 替代。它包含模型生成的待调用函数名称与参数。

  • arguments: string

模型以 JSON 格式生成的函数调用参数。模型可能生成无效 JSON,也可能虚构函数结构中未定义的参数。调用函数前,应在代码中验证这些参数。

  • name: string

要调用的函数名称。

  • refusal: optional string or null

模型生成的拒绝消息。

  • tool_calls: optional array of ChatCompletionMessageToolCall or null

模型生成的工具调用,例如函数调用。

  • ChatCompletionMessageFunctionToolCall object { id, function, type }

模型生成的函数工具调用。

  • id: string

工具调用 ID。

  • function: object { arguments, name }

模型调用的函数。

  • arguments: string

模型以 JSON 格式生成的函数调用参数。模型可能生成无效 JSON,也可能虚构函数结构中未定义的参数。调用函数前,应在代码中验证这些参数。

  • name: string

要调用的函数名称。

  • type: "function"

工具类型,目前仅支持 function。

  • "function"

  • ChatCompletionMessageCustomToolCall object { id, custom, type }

模型生成的自定义工具调用。

  • id: string

工具调用 ID。

  • custom: object { input, name }

模型调用的自定义工具。

  • input: string

模型生成的自定义工具调用输入。

  • name: string

要调用的自定义工具名称。

  • type: "custom"

工具类型,固定为 custom。

  • "custom"

  • created: integer

聊天补全创建时的 Unix 时间戳,单位为秒。

format: unixtime

  • model: string

聊天补全所使用的模型。

  • object: "chat.completion"

对象类型,固定为 chat.completion。

  • "chat.completion"

  • metadata: optional Metadata or null

可附加到对象的元数据,最多包含 16 组键值对,可 以结构化方式存储对象的额外信息, 并通过 API 或控制台查询对象。

键为最多 64 个字符的字符串,值为 最多 512 个字符的字符串。

  • moderation: optional object { input, output } or null

请求启用了审核补全时,提供请求输入与生成输出的 审核结果。

  • input: ModerationResults { model, results, type } or Error { code, message, type }

请求输入的审核结果。

  • ModerationResults object { model, results, type }

请求输入或生成输出的成功审核结果。

  • model: string

生成审核结果的审核模型。

  • results: array of object { categories, category_applied_input_types, category_scores, 3 more }

审核结果列表。

  • categories: map[boolean]

审核类别到布尔值的映射。输入被某类别标记时,该类别值为 true。

  • category_applied_input_types: map[array of "text" or "image"]

各类别评分所涵盖的输入模态。

  • "text"

  • "image"

  • category_scores: map[number]

审核类别到分数的映射。

  • flagged: boolean

表示内容是否被任一类别标记的布尔值。

  • model: string

生成此结果的审核模型。

  • type: "moderation_result" (default: "moderation_result")

对象类型,成功审核结果中固定为 moderation_result。

  • "moderation_result"

  • type: "moderation_results"

对象类型,固定为 moderation_results。

  • "moderation_results"

  • Error object { code, message, type }

尝试审核时产生的错误。

  • code: string

错误代码。

  • message: string

错误消息。

  • type: "error"

对象类型,固定为 error。

  • "error"

  • output: ModerationResults { model, results, type } or Error { code, message, type }

生成输出的审核结果。

  • ModerationResults object { model, results, type }

请求输入或生成输出的成功审核结果。

  • model: string

生成审核结果的审核模型。

  • results: array of object { categories, category_applied_input_types, category_scores, 3 more }

审核结果列表。

  • categories: map[boolean]

审核类别到布尔值的映射。输入被某类别标记时,该类别值为 true。

  • category_applied_input_types: map[array of "text" or "image"]

各类别评分所涵盖的输入模态。

  • "text"

  • "image"

  • category_scores: map[number]

审核类别到分数的映射。

  • flagged: boolean

表示内容是否被任一类别标记的布尔值。

  • model: string

生成此结果的审核模型。

  • type: "moderation_result" (default: "moderation_result")

对象类型,成功审核结果中固定为 moderation_result。

  • "moderation_result"

  • type: "moderation_results"

对象类型,固定为 moderation_results。

  • "moderation_results"

  • Error object { code, message, type }

尝试审核时产生的错误。

  • code: string

错误代码。

  • message: string

错误消息。

  • type: "error"

对象类型,固定为 error。

  • "error"

  • service_tier: optional "auto" or "default" or "flex" or 3 more or null (default: "auto")

指定处理请求所采用的服务类型。

  • 设为 'auto' 时,按项目设置的服务层级处理请求。未另行配置时,项目使用 'default'。
  • 设为 'default' 时,使用所选模型的标准价格和性能处理请求。
  • 设为 'flex' 时,使用 Flex Processing 服务层级处理请求。
  • 在请求级别启用快速模式,可在 Responses 或 Chat Completions 请求中传入 service_tier=fast 或 service_tier=priority。无论请求中使用哪一种值,响应均显示 service_tier=priority。
  • 未设置时,默认按 'auto' 处理。

设置 service_tier 后,响应体中的同名字段反映实际采用的处理模式,可能与请求参数的值不同。

  • "auto"

  • "default"

  • "flex"

  • "scale"

  • "priority"

  • "fast"

  • system_fingerprint: optional string

此指纹表示模型运行时的后端配置。

可结合请求的 seed 参数,判断后端变动是否可能影响输出的确定性。

  • usage: optional CompletionUsage

补全请求的用量统计。

  • completion_tokens: integer (default: 0)

生成补全中的词元数量。

  • prompt_tokens: integer (default: 0)

提示词中的词元数量。

  • total_tokens: integer (default: 0)

请求使用的词元总数,为提示词与补全之和。

  • completion_tokens_details: optional object { accepted_prediction_tokens, audio_tokens, reasoning_tokens, 2 more }

补全词元的用量明细。

  • accepted_prediction_tokens: optional integer (default: 0)

使用预测输出时,预测内容中 实际出现在补全中的词元数量。

  • audio_tokens: optional integer (default: 0)

模型生成的音频输入词元数量。

  • reasoning_tokens: optional integer (default: 0)

模型用于推理的词元数量。

  • rejected_prediction_tokens: optional integer (default: 0)

使用预测输出时,预测内容中 未出现在补全中的词元数量。与 推理词元一样,这些词元仍计入补全 词元总量,用于计费、输出和上下文窗口 限制的计算。

  • text_tokens: optional integer

模型生成的文本输出词元数量。

  • prompt_tokens_details: optional object { audio_tokens, cache_write_tokens, cached_tokens, 2 more }

提示词词元的用量明细。

  • audio_tokens: optional integer (default: 0)

提示词中的音频输入词元数量。

  • cache_write_tokens: optional integer (default: 0)

写入缓存的提示词词元原始数量。

  • cached_tokens: optional integer (default: 0)

提示词中命中缓存的词元数量。

  • image_tokens: optional integer

提示词中的图像输入词元数量。

  • text_tokens: optional integer

提示词中的文本输入词元数量。

示例

## 设置 OPENAI_API_KEY,并按接口替换模型、消息及聊天补全 ID。
curl https://api.openai.com/v1/chat/completions \
    -H 'Content-Type: application/json' \
    -H "Authorization: Bearer $OPENAI_API_KEY" \
    -d '{
          "messages": [
            {
              "content": "string",
              "role": "developer"
            }
          ],
          "model": "gpt-6-astra",
          "n": 1,
          "prompt_cache_key": "prompt-cache-key-1234",
          "safety_identifier": "safety-identifier-1234",
          "temperature": 1,
          "top_p": 1,
          "user": "user-1234"
        }'

200 响应示例

{
  "id": "id",
  "choices": [
    {
      "finish_reason": "stop",
      "index": 0,
      "logprobs": {
        "content": [
          {
            "token": "token",
            "bytes": [
              0
            ],
            "logprob": 0,
            "top_logprobs": [
              {
                "token": "token",
                "bytes": [
                  0
                ],
                "logprob": 0
              }
            ]
          }
        ],
        "refusal": [
          {
            "token": "token",
            "bytes": [
              0
            ],
            "logprob": 0,
            "top_logprobs": [
              {
                "token": "token",
                "bytes": [
                  0
                ],
                "logprob": 0
              }
            ]
          }
        ]
      },
      "message": {
        "content": "content",
        "role": "assistant",
        "annotations": [
          {
            "type": "url_citation",
            "url_citation": {
              "end_index": 0,
              "start_index": 0,
              "title": "title",
              "url": "https://example.com"
            }
          }
        ],
        "audio": {
          "id": "id",
          "data": "data",
          "expires_at": 0,
          "transcript": "transcript"
        },
        "function_call": {
          "arguments": "arguments",
          "name": "name"
        },
        "refusal": "refusal",
        "tool_calls": [
          {
            "id": "id",
            "function": {
              "arguments": "arguments",
              "name": "name"
            },
            "type": "function"
          }
        ]
      }
    }
  ],
  "created": 0,
  "model": "model",
  "object": "chat.completion",
  "metadata": {
    "foo": "string"
  },
  "moderation": {
    "input": {
      "model": "model",
      "results": [
        {
          "categories": {
            "foo": true
          },
          "category_applied_input_types": {
            "foo": [
              "text"
            ]
          },
          "category_scores": {
            "foo": 0
          },
          "flagged": true,
          "model": "model",
          "type": "moderation_result"
        }
      ],
      "type": "moderation_results"
    },
    "output": {
      "model": "model",
      "results": [
        {
          "categories": {
            "foo": true
          },
          "category_applied_input_types": {
            "foo": [
              "text"
            ]
          },
          "category_scores": {
            "foo": 0
          },
          "flagged": true,
          "model": "model",
          "type": "moderation_result"
        }
      ],
      "type": "moderation_results"
    }
  },
  "service_tier": "auto",
  "system_fingerprint": "system_fingerprint",
  "usage": {
    "completion_tokens": 0,
    "prompt_tokens": 0,
    "total_tokens": 0,
    "completion_tokens_details": {
      "accepted_prediction_tokens": 0,
      "audio_tokens": 0,
      "reasoning_tokens": 0,
      "rejected_prediction_tokens": 0,
      "text_tokens": 0
    },
    "prompt_tokens_details": {
      "audio_tokens": 0,
      "cache_write_tokens": 0,
      "cached_tokens": 0,
      "image_tokens": 0,
      "text_tokens": 0
    }
  }
}

示例

## 设置 OPENAI_API_KEY,并按接口替换模型、消息及聊天补全 ID。
curl https://api.openai.com/v1/chat/completions \
  -H "Content-Type: application/json" \
  -H "Authorization: Bearer $OPENAI_API_KEY" \
  -d '{
    "model": "gpt-6-astra",
    "messages": [
      {
        "role": "developer",
        "content": "你是一名乐于助人的助手。"
      },
      {
        "role": "user",
        "content": "你好!"
      }
    ]
  }'

响应示例

{
  "id": "chatcmpl-B9MBs8CjcvOU2jLn4n570S5qMJKcT",
  "object": "chat.completion",
  "created": 1741569952,
  "model": "gpt-6-astra",
  "choices": [
    {
      "index": 0,
      "message": {
        "role": "assistant",
        "content": "你好!今天有什么可以帮你?",
        "refusal": null,
        "annotations": []
      },
      "logprobs": null,
      "finish_reason": "stop"
    }
  ],
  "usage": {
    "prompt_tokens": 19,
    "completion_tokens": 10,
    "total_tokens": 29,
    "prompt_tokens_details": {
      "cached_tokens": 0,
      "audio_tokens": 0
    },
    "completion_tokens_details": {
      "reasoning_tokens": 0,
      "audio_tokens": 0,
      "accepted_prediction_tokens": 0,
      "rejected_prediction_tokens": 0
    }
  },
  "service_tier": "default"
}

函数

## 设置 OPENAI_API_KEY,并按接口替换模型、消息及聊天补全 ID。
curl https://api.openai.com/v1/chat/completions \
-H "Content-Type: application/json" \
-H "Authorization: Bearer $OPENAI_API_KEY" \
-d '{
  "model": "gpt-6-astra",
  "messages": [
    {
      "role": "user",
      "content": "波士顿今天天气怎么样?"
    }
  ],
  "tools": [
    {
      "type": "function",
      "function": {
        "name": "get_current_weather",
        "description": "查询指定地点的当前天气",
        "parameters": {
          "type": "object",
          "properties": {
            "location": {
              "type": "string",
              "description": "城市和州,例如加利福尼亚州旧金山"
            },
            "unit": {
              "type": "string",
              "enum": ["celsius", "fahrenheit"]
            }
          },
          "required": ["location"]
        }
      }
    }
  ],
  "tool_choice": "auto"
}'

响应示例

{
  "id": "chatcmpl-abc123",
  "object": "chat.completion",
  "created": 1699896916,
  "model": "gpt-6-astra",
  "choices": [
    {
      "index": 0,
      "message": {
        "role": "assistant",
        "content": null,
        "tool_calls": [
          {
            "id": "call_abc123",
            "type": "function",
            "function": {
              "name": "get_current_weather",
              "arguments": "{\n\"location\": \"Boston, MA\"\n}"
            }
          }
        ]
      },
      "logprobs": null,
      "finish_reason": "tool_calls"
    }
  ],
  "usage": {
    "prompt_tokens": 82,
    "completion_tokens": 17,
    "total_tokens": 99,
    "completion_tokens_details": {
      "reasoning_tokens": 0,
      "accepted_prediction_tokens": 0,
      "rejected_prediction_tokens": 0
    }
  }
}

图像输入

## 设置 OPENAI_API_KEY,并按接口替换模型、消息及聊天补全 ID。
curl https://api.openai.com/v1/chat/completions \
  -H "Content-Type: application/json" \
  -H "Authorization: Bearer $OPENAI_API_KEY" \
  -d '{
    "model": "gpt-6-astra",
    "messages": [
      {
        "role": "user",
        "content": [
          {
            "type": "text",
            "text": "这张图里有什么?"
          },
          {
            "type": "image_url",
            "image_url": {
              "url": "https://upload.wikimedia.org/wikipedia/commons/thumb/d/dd/Gfp-wisconsin-madison-the-nature-boardwalk.jpg/2560px-Gfp-wisconsin-madison-the-nature-boardwalk.jpg"
            }
          }
        ]
      }
    ],
    "max_tokens": 300
  }'

响应示例

{
  "id": "chatcmpl-B9MHDbslfkBeAs8l4bebGdFOJ6PeG",
  "object": "chat.completion",
  "created": 1741570283,
  "model": "gpt-6-astra",
  "choices": [
    {
      "index": 0,
      "message": {
        "role": "assistant",
        "content": "图中一条木栈道穿过郁郁葱葱的绿色田野或草地。天空湛蓝,散布着一些云朵,营造出宁静平和的氛围。背景中可以看到树木和灌木。",
        "refusal": null,
        "annotations": []
      },
      "logprobs": null,
      "finish_reason": "stop"
    }
  ],
  "usage": {
    "prompt_tokens": 1117,
    "completion_tokens": 46,
    "total_tokens": 1163,
    "prompt_tokens_details": {
      "cached_tokens": 0,
      "audio_tokens": 0
    },
    "completion_tokens_details": {
      "reasoning_tokens": 0,
      "audio_tokens": 0,
      "accepted_prediction_tokens": 0,
      "rejected_prediction_tokens": 0
    }
  },
  "service_tier": "default"
}

对数概率示例

## 设置 OPENAI_API_KEY,并按接口替换模型、消息及聊天补全 ID。
curl https://api.openai.com/v1/chat/completions \
  -H "Content-Type: application/json" \
  -H "Authorization: Bearer $OPENAI_API_KEY" \
  -d '{
    "model": "gpt-6-sol",
    "messages": [
      {
        "role": "user",
        "content": "Hello!"
      }
    ],
    "reasoning_effort": "none",
    "logprobs": true,
    "top_logprobs": 2
  }'

响应示例

{
  "id": "chatcmpl-123",
  "object": "chat.completion",
  "created": 1702685778,
  "model": "gpt-6-sol",
  "choices": [
    {
      "index": 0,
      "message": {
        "role": "assistant",
        "content": "Hello! How can I assist you today?"
      },
      "logprobs": {
        "content": [
          {
            "token": "Hello",
            "logprob": -0.31725305,
            "bytes": [72, 101, 108, 108, 111],
            "top_logprobs": [
              {
                "token": "Hello",
                "logprob": -0.31725305,
                "bytes": [72, 101, 108, 108, 111]
              },
              {
                "token": "Hi",
                "logprob": -1.3190403,
                "bytes": [72, 105]
              }
            ]
          },
          {
            "token": "!",
            "logprob": -0.02380986,
            "bytes": [
              33
            ],
            "top_logprobs": [
              {
                "token": "!",
                "logprob": -0.02380986,
                "bytes": [33]
              },
              {
                "token": " there",
                "logprob": -3.787621,
                "bytes": [32, 116, 104, 101, 114, 101]
              }
            ]
          },
          {
            "token": " How",
            "logprob": -0.000054669687,
            "bytes": [32, 72, 111, 119],
            "top_logprobs": [
              {
                "token": " How",
                "logprob": -0.000054669687,
                "bytes": [32, 72, 111, 119]
              },
              {
                "token": "<|end|>",
                "logprob": -10.953937,
                "bytes": null
              }
            ]
          },
          {
            "token": " can",
            "logprob": -0.015801601,
            "bytes": [32, 99, 97, 110],
            "top_logprobs": [
              {
                "token": " can",
                "logprob": -0.015801601,
                "bytes": [32, 99, 97, 110]
              },
              {
                "token": " may",
                "logprob": -4.161023,
                "bytes": [32, 109, 97, 121]
              }
            ]
          },
          {
            "token": " I",
            "logprob": -3.7697225e-6,
            "bytes": [
              32,
              73
            ],
            "top_logprobs": [
              {
                "token": " I",
                "logprob": -3.7697225e-6,
                "bytes": [32, 73]
              },
              {
                "token": " assist",
                "logprob": -13.596657,
                "bytes": [32, 97, 115, 115, 105, 115, 116]
              }
            ]
          },
          {
            "token": " assist",
            "logprob": -0.04571125,
            "bytes": [32, 97, 115, 115, 105, 115, 116],
            "top_logprobs": [
              {
                "token": " assist",
                "logprob": -0.04571125,
                "bytes": [32, 97, 115, 115, 105, 115, 116]
              },
              {
                "token": " help",
                "logprob": -3.1089056,
                "bytes": [32, 104, 101, 108, 112]
              }
            ]
          },
          {
            "token": " you",
            "logprob": -5.4385737e-6,
            "bytes": [32, 121, 111, 117],
            "top_logprobs": [
              {
                "token": " you",
                "logprob": -5.4385737e-6,
                "bytes": [32, 121, 111, 117]
              },
              {
                "token": " today",
                "logprob": -12.807695,
                "bytes": [32, 116, 111, 100, 97, 121]
              }
            ]
          },
          {
            "token": " today",
            "logprob": -0.0040071653,
            "bytes": [32, 116, 111, 100, 97, 121],
            "top_logprobs": [
              {
                "token": " today",
                "logprob": -0.0040071653,
                "bytes": [32, 116, 111, 100, 97, 121]
              },
              {
                "token": "?",
                "logprob": -5.5247097,
                "bytes": [63]
              }
            ]
          },
          {
            "token": "?",
            "logprob": -0.0008108172,
            "bytes": [63],
            "top_logprobs": [
              {
                "token": "?",
                "logprob": -0.0008108172,
                "bytes": [63]
              },
              {
                "token": "?\n",
                "logprob": -7.184561,
                "bytes": [63, 10]
              }
            ]
          }
        ],
        "refusal": null
      },
      "finish_reason": "stop"
    }
  ],
  "usage": {
    "prompt_tokens": 9,
    "completion_tokens": 9,
    "total_tokens": 18,
    "completion_tokens_details": {
      "reasoning_tokens": 0,
      "accepted_prediction_tokens": 0,
      "rejected_prediction_tokens": 0
    }
  }
}

流式传输示例

## 设置 OPENAI_API_KEY,并按接口替换模型、消息及聊天补全 ID。
curl https://api.openai.com/v1/chat/completions \
  -H "Content-Type: application/json" \
  -H "Authorization: Bearer $OPENAI_API_KEY" \
  -d '{
    "model": "gpt-6-astra",
    "messages": [
      {
        "role": "developer",
        "content": "你是一名乐于助人的助手。"
      },
      {
        "role": "user",
        "content": "你好!"
      }
    ],
    "stream": true
  }'

响应示例

data: {"id":"chatcmpl-123","object":"chat.completion.chunk","created":1694268190,"model":"gpt-6-astra", "system_fingerprint": "fp_44709d6fcb", "choices":[{"index":0,"delta":{"role":"assistant","content":""},"logprobs":null,"finish_reason":null}]}

data: {"id":"chatcmpl-123","object":"chat.completion.chunk","created":1694268190,"model":"gpt-6-astra", "system_fingerprint": "fp_44709d6fcb", "choices":[{"index":0,"delta":{"content":"你好"},"logprobs":null,"finish_reason":null}]}

: Intermediate chat completion chunks omitted.

data: {"id":"chatcmpl-123","object":"chat.completion.chunk","created":1694268190,"model":"gpt-6-astra", "system_fingerprint": "fp_44709d6fcb", "choices":[{"index":0,"delta":{},"logprobs":null,"finish_reason":"stop"}]}

data: [DONE]
以上内容是否对您有帮助:
在线笔记
App下载
App下载

扫描二维码

下载编程狮App

公众号
微信公众号

编程狮公众号