你当前正在访问 Microsoft Azure Global Edition 技术文档网站。 如果需要访问由世纪互联运营的 Microsoft Azure 中国技术文档网站,请访问 https://docs.azure.cn

Get Chat Completions - Get Chat Completions

获取提供的聊天消息的聊天完成。 完成支持各种任务,并生成从或“完成”提供提示数据的文本。 该方法对给定终结点上的 /chat/completions 路由进行 REST API 调用。

POST https:///chat/completions?api-version=2024-05-01-preview

URI 参数

名称 必需 类型 说明
api-version
query True

string

用于此作的 API 版本。

请求头

名称 必需 类型 说明
extra-parameters

ExtraParameters

控制在 JSON 请求有效负载中传递其他参数(由 REST API 未定义)会发生什么情况。 这会 extra-parameters设置 HTTP 请求标头。

请求正文

名称 必需 类型 说明
messages True ChatRequestMessage[]:

与此聊天完成请求关联的上下文消息集合。 典型用法从系统角色的聊天消息开始,该消息提供助理行为的说明,然后是用户和助手角色之间的交替消息。

frequency_penalty

number

一个值,该值根据生成的文本中的累积频率影响生成的令牌出现概率。 正值将使标记在频率增加时不太可能出现,并降低重复相同语句的模型的可能性。 支持的范围为 [-2, 2]。

max_tokens

integer

要生成的令牌的最大数目。

modalities

ChatCompletionsModality[]

允许模型用于聊天完成响应的模态。 默认形式为 text。 指示不受支持的形式组合会导致 422 错误。

model

string

在终结点上提供多个模型时,要使用的特定 AI 模型的 ID。

presence_penalty

number

一个值,该值根据生成的文本中的现有状态影响生成的令牌出现的概率。 正值将使标记在已存在时不太可能出现,并增加模型输出新主题的可能性。 支持的范围为 [-2, 2]。

response_format ChatCompletionsResponseFormat:

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

设置为 { "type": "json_schema", "json_schema": {...} } 启用结构化输出,确保模型与提供的 JSON 架构匹配。

设置为 { "type": "json_object" } 启用 JSON 模式,这可确保模型生成的消息为有效的 JSON。

重要提示:使用 JSON 模式时还必须 还指示模型通过系统或用户消息自行生成 JSON。 如果没有此限制,模型可能会生成一个无限的空白流,直到生成达到令牌限制,从而导致长时间运行且看似“停滞”的请求。 另请注意,如果 finish_reason="length",则消息内容可能会部分中断,这表示已超出生成 max_tokens 或会话超出最大上下文长度。

seed

integer

如果指定,系统将尽最大努力确定性地采样,以便重复具有相同种子和参数的请求应返回相同的结果。 无法保证确定性。

stop

string[]

将结束完成生成的文本序列的集合。

stream

boolean

一个值,该值指示是否应为此请求流式传输聊天完成。

temperature

number

用于控制生成的完成的明显创造力的采样温度。 较高的值将使输出更随机,而较低的值将使结果更加集中和确定性。 不建议修改与这两个设置交互相同的完成请求的温度和top_p,这两种设置的交互难以预测。 支持的范围为 [0, 1]。

tool_choice

如果指定,模型将配置可用于聊天完成响应的提供的工具之一。

tools

ChatCompletionsToolDefinition[]

模型可能请求调用的工具列表。 目前,仅支持函数作为工具。 模型可以使用函数调用请求进行响应,并为该函数提供 JSON 格式的输入参数。

top_p

number

使用称为核采样的温度进行采样的替代方法。 此值会导致模型考虑具有提供的概率质量的令牌结果。 例如,值 0.15 只会导致考虑概率质量的前 15 个% 的标记。 不建议修改与这两个设置交互相同的完成请求的温度和top_p,这两种设置的交互难以预测。 支持的范围为 [0, 1]。

响应

名称 类型 说明
200 OK

ChatCompletions

请求已成功。

Other Status Codes

Azure.Core.Foundations.ErrorResponse

意外的错误响应。

标头

x-ms-error-code: string

安全性

api-key

类型: apiKey
在: header

OAuth2Auth

类型: oauth2
流向: implicit
授权 URL: https://login.microsoftonline.com/common/oauth2/v2.0/authorize

作用域

名称 说明
https://ml.azure.com/.default

示例

Audio modality chat completion
maximum set chat completion
minimum set chat completion

Audio modality chat completion

示例请求

POST https:///chat/completions?api-version=2024-05-01-preview


{
  "modalities": [
    "text",
    "audio"
  ],
  "messages": [
    {
      "role": "system",
      "content": "You are a helpful assistant"
    },
    {
      "role": "user",
      "content": [
        {
          "type": "input_audio",
          "input_audio": {
            "data": "<base64 encoded audio data>",
            "format": "wav"
          }
        }
      ]
    },
    {
      "role": "assistant",
      "content": null,
      "audio": {
        "id": "abcdef1234"
      }
    },
    {
      "role": "user",
      "content": [
        {
          "type": "input_audio",
          "input_audio": {
            "data": "<base64 encoded audio data>",
            "format": "wav"
          }
        }
      ]
    }
  ],
  "frequency_penalty": 0,
  "presence_penalty": 0,
  "temperature": 0,
  "top_p": 0,
  "seed": 21,
  "model": "my-model-name"
}

示例响应

{
  "id": "kgousajxgzyhugvqekuswuqbk",
  "object": "chat.completion",
  "created": 1696522361,
  "model": "my-model-name",
  "usage": {
    "completion_tokens": 19,
    "prompt_tokens": 28,
    "total_tokens": 16,
    "completion_tokens_details": {
      "audio_tokens": 5,
      "total_tokens": 5
    },
    "prompt_tokens_details": {
      "audio_tokens": 10,
      "cached_tokens": 0
    }
  },
  "choices": [
    {
      "index": 0,
      "finish_reason": "stop",
      "message": {
        "role": "assistant",
        "content": null,
        "tool_calls": null,
        "audio": {
          "id": "abcdef1234",
          "format": "wav",
          "data": "<base64 encoded audio data>",
          "expires_at": 1896522361,
          "transcript": "This is a sample transcript"
        }
      }
    }
  ]
}

maximum set chat completion

示例请求

POST https:///chat/completions?api-version=2024-05-01-preview


{
  "modalities": [
    "text"
  ],
  "messages": [
    {
      "role": "system",
      "content": "You are a helpful assistant"
    },
    {
      "role": "user",
      "content": "Explain Riemann's conjecture"
    },
    {
      "role": "assistant",
      "content": "The Riemann Conjecture is a deep mathematical conjecture around prime numbers and how they can be predicted. It was first published in Riemann's groundbreaking 1859 paper. The conjecture states that the Riemann zeta function has its zeros only at the negative even integers and complex numbers with real part 1/21. Many consider it to be the most important unsolved problem in pure mathematics. The Riemann hypothesis is a way to predict the probability that numbers in a certain range are prime that was also devised by German mathematician Bernhard Riemann in 18594."
    },
    {
      "role": "user",
      "content": "Ist it proved?"
    }
  ],
  "frequency_penalty": 0,
  "stream": true,
  "presence_penalty": 0,
  "temperature": 0,
  "top_p": 0,
  "max_tokens": 255,
  "response_format": {
    "type": "text"
  },
  "stop": [
    "<|endoftext|>"
  ],
  "tools": [
    {
      "type": "function",
      "function": {
        "name": "my-function-name",
        "description": "A function useful to know if a theroem is proved or not"
      }
    }
  ],
  "seed": 21,
  "model": "my-model-name"
}

示例响应

{
  "id": "kgousajxgzyhugvqekuswuqbk",
  "object": "chat.completion",
  "created": 18,
  "model": "my-model-name",
  "usage": {
    "completion_tokens": 19,
    "prompt_tokens": 28,
    "total_tokens": 16
  },
  "choices": [
    {
      "index": 7,
      "finish_reason": "stop",
      "message": {
        "role": "assistant",
        "content": null,
        "tool_calls": [
          {
            "id": "yrobmilsrugmbwukmzo",
            "type": "function",
            "function": {
              "name": "my-function-name",
              "arguments": "{ \"arg1\": \"value1\", \"arg2\": \"value2\" }"
            }
          }
        ]
      }
    }
  ]
}

minimum set chat completion

示例请求

POST https:///chat/completions?api-version=2024-05-01-preview

{
  "messages": [
    {
      "role": "user",
      "content": "Explain Riemann's conjecture"
    }
  ]
}

示例响应

{
  "id": "kgousajxgzyhugvqekuswuqbk",
  "object": "chat.completion",
  "created": 1234567890,
  "model": "my-model-name",
  "usage": {
    "prompt_tokens": 205,
    "completion_tokens": 5,
    "total_tokens": 210
  },
  "choices": [
    {
      "index": 0,
      "finish_reason": "stop",
      "message": {
        "role": "assistant",
        "content": "The Riemann Conjecture is a deep mathematical conjecture around prime numbers and how they can be predicted. It was first published in Riemann's groundbreaking 1859 paper. The conjecture states that the Riemann zeta function has its zeros only at the negative even integers and complex numbers with real part 1/21. Many consider it to be the most important unsolved problem in pure mathematics. The Riemann hypothesis is a way to predict the probability that numbers in a certain range are prime that was also devised by German mathematician Bernhard Riemann in 18594"
      }
    }
  ]
}

定义

名称 说明
AudioContentFormat

音频的可能音频格式的表示形式。

Azure.Core.Foundations.Error

错误对象。

Azure.Core.Foundations.ErrorResponse

包含错误详细信息的响应。

Azure.Core.Foundations.InnerError

包含有关错误的更具体信息的对象。 根据Microsoft一个 API 指南 - https://github.com/Microsoft/api-guidelines/blob/vNext/Guidelines.md#7102-error-condition-responses

ChatChoice

单个提示完成作为整体聊天完成请求的一部分的表示形式。 通常,每个提供的提示生成 n 选项,默认值为 1。 令牌限制和其他设置可能会限制生成的选项数。

ChatCompletions

聊天完成请求中的响应数据的表示形式。 完成支持各种任务,并生成从或“完成”提供提示数据的文本。

ChatCompletionsAudio

模型生成的音频的表示形式。

ChatCompletionsModality

允许模型用于聊天完成响应的模态。

ChatCompletionsOptions

聊天完成请求的配置信息。 完成支持各种任务,并生成从或“完成”提供提示数据的文本。

ChatCompletionsResponseFormatJsonObject

聊天完成的响应格式,用于限制对发出有效 JSON 对象的响应。 请注意,若要启用 JSON 模式,某些 AI 模型可能还需要指示模型通过系统或用户消息生成 JSON。

ChatCompletionsResponseFormatJsonSchema

聊天完成的响应格式,用于限制响应以发出有效的 JSON 对象,由调用方指定的 JSON 架构。

ChatCompletionsResponseFormatJsonSchemaDefinition

响应中所需 JSON 架构的定义以及关联的元数据。

ChatCompletionsResponseFormatText

发出文本响应的聊天完成的响应格式。 这是默认响应格式。

ChatCompletionsToolCall

AI 模型请求的函数工具调用。

ChatCompletionsToolDefinition

可以调用函数的聊天完成工具的定义。

ChatRequestAssistantMessage

表示来自助手的响应或作的请求聊天消息。

ChatRequestAudioReference

对模型生成的音频响应的引用。

ChatRequestSystemMessage

请求聊天消息,其中包含影响模型如何生成聊天完成响应的系统说明。

ChatRequestToolMessage

表示已配置工具请求的输出的请求聊天消息。

ChatRequestUserMessage

表示用户对助手输入的请求聊天消息。

ChatResponseMessage

响应中收到的聊天消息的表示形式。

ChatRole

聊天完成交互中消息的预期用途的说明。

CompletionsFinishReason

完成响应结束方式的表示形式。

CompletionsUsage

为完成请求处理的令牌计数的表示形式。 计数将考虑提示、选择、选择备用、best_of代和其他使用者的所有令牌。

CompletionsUsageDetails

完成时使用的令牌明细。

ExtraParameters

控制在 JSON 请求有效负载中传递其他参数(由 REST API 未定义)会发生什么情况。

FunctionCall

应调用的函数的名称和参数,由模型生成。

FunctionDefinition

聊天完成可以调用的调用方指定的函数的定义,以响应匹配的用户输入。

PromptUsageDetails

提示/聊天历史记录中使用的令牌细分。

AudioContentFormat

音频的可能音频格式的表示形式。

说明
mp3

指定 MP3 格式的音频。

wav

以 WAV 格式指定音频。

Azure.Core.Foundations.Error

错误对象。

名称 类型 说明
code

string

服务器定义的错误代码集之一。

details

Azure.Core.Foundations.Error[]

导致此报告错误的特定错误的详细信息数组。

innererror

Azure.Core.Foundations.InnerError

包含与当前对象有关错误的更具体信息的对象。

message

string

错误的人工可读表示形式。

target

string

错误的目标。

Azure.Core.Foundations.ErrorResponse

包含错误详细信息的响应。

名称 类型 说明
error

Azure.Core.Foundations.Error

错误对象。

Azure.Core.Foundations.InnerError

包含有关错误的更具体信息的对象。 根据Microsoft一个 API 指南 - https://github.com/Microsoft/api-guidelines/blob/vNext/Guidelines.md#7102-error-condition-responses

名称 类型 说明
code

string

服务器定义的错误代码集之一。

innererror

Azure.Core.Foundations.InnerError

内部错误。

ChatChoice

单个提示完成作为整体聊天完成请求的一部分的表示形式。 通常,每个提供的提示生成 n 选项,默认值为 1。 令牌限制和其他设置可能会限制生成的选项数。

名称 类型 说明
finish_reason

CompletionsFinishReason

此聊天完成选择完成其生成的原因。

index

integer

与此聊天完成选项关联的有序索引。

message

ChatResponseMessage

给定聊天完成提示的聊天消息。

ChatCompletions

聊天完成请求中的响应数据的表示形式。 完成支持各种任务,并生成从或“完成”提供提示数据的文本。

名称 类型 说明
choices

ChatChoice[]

与此完成响应关联的完成选项的集合。 通常,每个提供的提示生成 n 选项,默认值为 1。 令牌限制和其他设置可能会限制生成的选项数。

created

integer

与此完成响应的生成活动关联的第一个时间戳,表示为自 1970 年 1 月 1 日 Unix 00:00 开始以来的秒数。

id

string

与此聊天完成响应关联的唯一标识符。

model

string

用于聊天完成的模型。

object enum:

chat.completion

响应对象类型,始终 chat.completion

usage

CompletionsUsage

在此完成作过程中处理和生成的令牌的使用信息。

ChatCompletionsAudio

模型生成的音频的表示形式。

名称 类型 说明
data

string

Base64 编码的音频数据

expires_at

integer

Unix 时间戳(以秒为单位),音频片段在多轮对话中不再被其 ID 引用。

format

AudioContentFormat

音频内容的格式。 如果未提供格式,它将匹配输入音频请求中使用的格式。

id

string

音频响应的唯一标识符。 此值可用于聊天历史记录消息,而不是传递完整的音频对象。

transcript

string

音频文件的脚本。

ChatCompletionsModality

允许模型用于聊天完成响应的模态。

说明
audio

允许模型生成音频。

text

仅允许模型生成文本。

ChatCompletionsOptions

聊天完成请求的配置信息。 完成支持各种任务,并生成从或“完成”提供提示数据的文本。

名称 类型 默认值 说明
frequency_penalty

number

0

一个值,该值根据生成的文本中的累积频率影响生成的令牌出现概率。 正值将使标记在频率增加时不太可能出现,并降低重复相同语句的模型的可能性。 支持的范围为 [-2, 2]。

max_tokens

integer

要生成的令牌的最大数目。

messages ChatRequestMessage[]:

与此聊天完成请求关联的上下文消息集合。 典型用法从系统角色的聊天消息开始,该消息提供助理行为的说明,然后是用户和助手角色之间的交替消息。

modalities

ChatCompletionsModality[]

允许模型用于聊天完成响应的模态。 默认形式为 text。 指示不受支持的形式组合会导致 422 错误。

model

string

在终结点上提供多个模型时,要使用的特定 AI 模型的 ID。

presence_penalty

number

0

一个值,该值根据生成的文本中的现有状态影响生成的令牌出现的概率。 正值将使标记在已存在时不太可能出现,并增加模型输出新主题的可能性。 支持的范围为 [-2, 2]。

response_format ChatCompletionsResponseFormat:

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

设置为 { "type": "json_schema", "json_schema": {...} } 启用结构化输出,确保模型与提供的 JSON 架构匹配。

设置为 { "type": "json_object" } 启用 JSON 模式,这可确保模型生成的消息为有效的 JSON。

重要提示:使用 JSON 模式时还必须 还指示模型通过系统或用户消息自行生成 JSON。 如果没有此限制,模型可能会生成一个无限的空白流,直到生成达到令牌限制,从而导致长时间运行且看似“停滞”的请求。 另请注意,如果 finish_reason="length",则消息内容可能会部分中断,这表示已超出生成 max_tokens 或会话超出最大上下文长度。

seed

integer

如果指定,系统将尽最大努力确定性地采样,以便重复具有相同种子和参数的请求应返回相同的结果。 无法保证确定性。

stop

string[]

将结束完成生成的文本序列的集合。

stream

boolean

一个值,该值指示是否应为此请求流式传输聊天完成。

temperature

number

0.7

用于控制生成的完成的明显创造力的采样温度。 较高的值将使输出更随机,而较低的值将使结果更加集中和确定性。 不建议修改与这两个设置交互相同的完成请求的温度和top_p,这两种设置的交互难以预测。 支持的范围为 [0, 1]。

tool_choice

如果指定,模型将配置可用于聊天完成响应的提供的工具之一。

tools

ChatCompletionsToolDefinition[]

模型可能请求调用的工具列表。 目前,仅支持函数作为工具。 模型可以使用函数调用请求进行响应,并为该函数提供 JSON 格式的输入参数。

top_p

number

1

使用称为核采样的温度进行采样的替代方法。 此值会导致模型考虑具有提供的概率质量的令牌结果。 例如,值 0.15 只会导致考虑概率质量的前 15 个% 的标记。 不建议修改与这两个设置交互相同的完成请求的温度和top_p,这两种设置的交互难以预测。 支持的范围为 [0, 1]。

ChatCompletionsResponseFormatJsonObject

聊天完成的响应格式,用于限制对发出有效 JSON 对象的响应。 请注意,若要启用 JSON 模式,某些 AI 模型可能还需要指示模型通过系统或用户消息生成 JSON。

名称 类型 说明
type string:

json_object

用于聊天完成的响应格式类型。

ChatCompletionsResponseFormatJsonSchema

聊天完成的响应格式,用于限制响应以发出有效的 JSON 对象,由调用方指定的 JSON 架构。

名称 类型 说明
json_schema

ChatCompletionsResponseFormatJsonSchemaDefinition

响应中所需 JSON 架构的定义以及关联的元数据。

type string:

json_schema

用于聊天完成的响应格式类型。

ChatCompletionsResponseFormatJsonSchemaDefinition

响应中所需 JSON 架构的定义以及关联的元数据。

名称 类型 默认值 说明
description

string

AI 模型用来确定如何以此格式生成响应的响应格式的说明。

name

string

响应格式的名称。 必须是 a-z、A-Z、0-9 或包含下划线和短划线,最大长度为 64。

schema

JSON 架构的定义

strict

boolean

False

是否在生成输出时启用严格的架构遵循。 如果设置为 true,模型将始终遵循 schema 字段中定义的确切架构。 true strict 时,仅支持 JSON 架构的子集。

ChatCompletionsResponseFormatText

发出文本响应的聊天完成的响应格式。 这是默认响应格式。

名称 类型 说明
type string:

text

用于聊天完成的响应格式类型。

ChatCompletionsToolCall

AI 模型请求的函数工具调用。

名称 类型 说明
function

FunctionCall

AI 模型请求的函数调用的详细信息。

id

string

工具调用的 ID。

type enum:

function

工具调用的类型。 目前仅支持 function

ChatCompletionsToolDefinition

可以调用函数的聊天完成工具的定义。

名称 类型 说明
function

FunctionDefinition

函数工具的函数定义详细信息。

type enum:

function

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

ChatRequestAssistantMessage

表示来自助手的响应或作的请求聊天消息。

名称 类型 说明
audio

ChatRequestAudioReference

多轮对话中上一响应生成的音频。

content

string

消息的内容。

role string:

assistant

与此消息关联的聊天角色。

tool_calls

ChatCompletionsToolCall[]

必须解析的工具调用并将其输出追加到后续输入消息中,以便聊天完成请求按配置解析。

ChatRequestAudioReference

对模型生成的音频响应的引用。

名称 类型 说明
id

string

音频响应的唯一标识符。 此值对应于上一个音频完成的 ID。

ChatRequestSystemMessage

请求聊天消息,其中包含影响模型如何生成聊天完成响应的系统说明。

名称 类型 说明
content

string

系统消息的内容。

role string:

system

与此消息关联的聊天角色。

ChatRequestToolMessage

表示已配置工具请求的输出的请求聊天消息。

名称 类型 说明
content

string

消息的内容。

role string:

tool

与此消息关联的聊天角色。

tool_call_id

string

由提供的内容解析的工具调用的 ID。

ChatRequestUserMessage

表示用户对助手输入的请求聊天消息。

名称 类型 说明
content

用户消息的内容,可用输入类型因所选模型而异。

role string:

user

与此消息关联的聊天角色。

ChatResponseMessage

响应中收到的聊天消息的表示形式。

名称 类型 说明
audio

ChatCompletionsAudio

如果模型配置为生成音频,则模型生成的音频作为消息的响应。

content

string

消息的内容。

role

ChatRole

与消息关联的聊天角色。

tool_calls

ChatCompletionsToolCall[]

必须解析的工具调用并将其输出追加到后续输入消息中,以便聊天完成请求按配置解析。

ChatRole

聊天完成交互中消息的预期用途的说明。

说明
assistant

提供系统指示的用户提示输入的响应的角色。

developer

该角色为在用户消息之前确定优先级的模型提供说明。

system

指示或设置助手行为的角色。

tool

表示聊天完成作中的扩展工具活动的角色。

user

为聊天完成提供输入的角色。

CompletionsFinishReason

完成响应结束方式的表示形式。

说明
content_filter

完成生成了一个响应,该响应被标识为每个内容审查策略的潜在敏感。

length

在生成完成之前,完成已用尽的可用令牌限制。

stop

完成正常结束,并达到令牌生成结束。

tool_calls

完成以调用提供的输出工具的模型结束。

CompletionsUsage

为完成请求处理的令牌计数的表示形式。 计数将考虑提示、选择、选择备用、best_of代和其他使用者的所有令牌。

名称 类型 说明
completion_tokens

integer

在所有完成排放中生成的令牌数。

completion_tokens_details

CompletionsUsageDetails

完成时使用的令牌明细。

prompt_tokens

integer

提供的令牌数会提示完成请求。

prompt_tokens_details

PromptUsageDetails

提示/聊天历史记录中使用的令牌细分。

total_tokens

integer

为完成请求和响应处理的令牌总数。

CompletionsUsageDetails

完成时使用的令牌明细。

名称 类型 说明
audio_tokens

integer

对应于音频输入的令牌数。

total_tokens

integer

为完成请求和响应处理的令牌总数。

ExtraParameters

控制在 JSON 请求有效负载中传递其他参数(由 REST API 未定义)会发生什么情况。

说明
drop

服务将忽略请求有效负载中的额外参数(删除)。 它只会将已知参数传递给后端 AI 模型。

error

如果服务检测到请求有效负载中的额外参数,服务将出错。 这是服务默认值。

pass-through

该服务会将额外的参数传递给后端 AI 模型。

FunctionCall

应调用的函数的名称和参数,由模型生成。

名称 类型 说明
arguments

string

使用 JSON 格式的模型生成的用于调用函数的参数。 请注意,模型并不总是生成有效的 JSON,并且可能会使函数架构未定义的参数幻觉。 在调用函数之前验证代码中的参数。

name

string

要调用的函数的名称。

FunctionDefinition

聊天完成可以调用的调用方指定的函数的定义,以响应匹配的用户输入。

名称 类型 说明
description

string

有关函数的作用的说明。 选择函数并解释其参数时,模型将使用此说明。

name

string

要调用的函数的名称。

parameters

函数接受的参数,描述为 JSON 架构对象。

PromptUsageDetails

提示/聊天历史记录中使用的令牌细分。

名称 类型 说明
audio_tokens

integer

对应于音频输入的令牌数。

cached_tokens

integer

缓存的令牌总数。