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

参考:聊天补全| Azure 机器学习

为给定聊天对话创建模型响应。

POST /chat/completions?api-version=2024-04-01-preview

URI 参数

名称 必需 类型​​ 说明
api-version 查询 正确 string 格式为“YYYY-MM-DD”或“YYYY-MM-DD-preview”格式的 API 版本。

请求头

名称 必需 类型​​ 描述
其他参数 string 在有效负载中指示其他参数时 API 的行为。 使用 pass-through 让 API 将参数传递给基础模型。 如果要传递基础模型可以支持的参数,请使用此值。 使用 ignore 让 API 删除任何不受支持的参数。 如果需要在不同模型中使用相同的有效负载,请使用此值,但如果不受支持,其中一个其他参数可能会使模型出错。 使用 error 让 API 拒绝有效负载中的任何其他参数。 只能指示此 API 中指定的参数,否则将返回 400 错误。
azureml-model-deployment string 要将请求路由到的部署的名称。 支持支持多个部署的终结点。

请求正文

名称 必需 类型​​ 说明
messages True ChatCompletionRequestMessage 包含到目前为止的对话的消息列表。 如果模型无法理解部分或全部消息,则返回 422 错误。
frequency_penalty 数字 通过降低已使用字词的选中几率,帮助防止字词重复。 频率惩罚越高,模型在其输出中重复相同字词的可能性就越小。 如果模型不支持值或参数,则返回 422 错误。
max_tokens integer 可以在聊天补全时生成的最大词元数。

输入词元和生成的词元的总长度受模型上下文长度的限制。 传递 null 会导致模型使用其最大上下文长度。
presence_penalty 数字 如果某个单词已经存在于补全内容中,即使只存在一次,也对该单词应用惩罚,从而避免重复相同的话题。 如果模型不支持值或参数,则返回 422 错误。
response_format ChatCompletionResponseFormat
seed integer 指定后,我们的系统将尽最大努力进行确定性采样,以便具有相同 seed 和参数的重复请求应返回相同的结果。 无法保证确定性,你应参考 system_fingerprint 响应参数来监视后端的更改。
stop API 停止生成更多词元的序列。
流 (stream) boolean 如果设置此选项,系统将发送部分消息增量。 词元将在可用时作为服务器发送的事件发送(内容仅包括数据),并且流式传输将由 data: [DONE] 消息终止。
温度 数字 非负数。 如果模型不支持值,则返回 422。
tool_choice ChatCompletionToolChoiceOption 控制模型调用的函数(如有)。 none 表示模型不会调用函数,而是会生成消息。 auto 表示模型可以在生成消息和调用函数之间进行选择。 通过 {"type": "function", "function": {"name": "my_function"}} 指定特定函数会强制模型调用该函数。

当不存在任何函数时,默认值为 none。 如果存在函数,则 auto 是默认值。 如果模型不支持该工具,则返回 422 错误。
工具 ChatCompletionTool[] 模型可能调用的工具列表。 目前,仅支持函数作为工具。 使用它可以提供函数列表,模型可能为其生成 JSON 输入。 如果模型不支持该工具,则返回 422 错误。
top_p 数字 温度采样的替代方法,称为核采样,其中模型考虑具有 top_p 概率质量的令牌的结果。 所以 0.1 意味着只考虑包含前 10% 概率质量的令牌。

我们通常建议更改此设置或 temperature,但不要同时更改两者。

响应

名称 Type 说明
200 OK CreateChatCompletionResponse 确定
401 未授权 UnauthorizedError 访问令牌缺失或无效

标头

x-ms-error-code: string
404 未找到 NotFoundError 模型不支持模态。 查看模型的文档,查看哪些路由可用。

标头

x-ms-error-code: string
422 不可处理实体 UnprocessableContentError 请求包含无法处理的内容

标头

x-ms-error-code: string
429 请求次数过多 TooManyRequestsError 你已达到指定的速率限制,需要调整请求的速度。

标头

x-ms-error-code: string
其他状态代码 ContentFilterError 无效的请求

标头

x-ms-error-code: string

安全性

授权

带有 Bearer: 前缀的令牌,例如 Bearer abcde12345

Type: apiKey
In: header

AADToken

Azure Active Directory OAuth2 身份验证

Type: oauth2
Flow: application
Token URL: https://login.microsoftonline.com/common/oauth2/v2.0/token

示例

为给定聊天对话创建模型响应

示例请求

POST /chat/completions?api-version=2024-04-01-preview

{
  "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,
  "presence_penalty": 0,
  "max_tokens": 256,
  "seed": 42,
  "stop": "<|endoftext|>",
  "stream": false,
  "temperature": 0,
  "top_p": 1,
  "response_format": { "type": "text" }
}

示例响应

状态代码:200

{
  "id": "1234567890",
  "model": "llama2-70b-chat",
  "choices": [
    {
      "index": 0,
      "finish_reason": "stop",
      "message": {
        "role": "assistant",
        "content": "No, it has never been proved"
      }
    }
  ],
  "created": 1234567890,
  "object": "chat.completion",
  "usage": {
    "prompt_tokens": 205,
    "completion_tokens": 5,
    "total_tokens": 210
  }
}

定义

名称 描述
ChatCompletionRequestMessage
ChatCompletionMessageContentPart
ChatCompletionMessageContentPartType
ChatCompletionToolChoiceOption 控制模型调用的函数(如有)。 none 表示模型不会调用函数,而是会生成消息。 auto 表示模型可以在生成消息和调用函数之间进行选择。 通过 {"type": "function", "function": {"name": "my_function"}} 指定特定函数会强制模型调用该函数。

当不存在任何函数时,默认值为 none。 如果存在函数,则 auto 是默认值。 如果模型不支持该工具,则返回 422 错误。
ChatCompletionFinishReason 模型停止生成标记的原因。 如果模型判定遇到了自然停止点或提供的停止序列,则为 stop;如果达到请求中指定的最大词元数,则为 length;如果由于内容筛选器中的标志而省略内容,则为 content_filter;如果模型调用了工具,则为 tool_calls
ChatCompletionMessageToolCall
ChatCompletionObject 始终为 chat.completion 的对象类型。
ChatCompletionResponseFormat 模型响应的响应格式。 设置为 json_object 可启用 JSON 模式,这可以保证模型生成的消息是有效的 JSON。 使用 JSON 模式时,还必须使用系统或用户消息指示模型自己生成 JSON。 另请注意,如果使用 finish_reason="length",则消息内容可能会部分截断,这表示生成超过了 max_tokens,或者对话超过了最大上下文长度。
ChatCompletionResponseFormatType 响应格式类型。
ChatCompletionResponseMessage 模型生成的聊天补全消息。
ChatCompletionTool
ChatMessageRole 此消息作者的角色。
选择项 聊天完成选项的列表。
CompletionUsage 完成请求的使用情况统计信息。
ContentFilterError 当提示按配置触发内容筛选器时,API 调用将失败。 修改提示,然后重试。
CreateChatCompletionRequest
CreateChatCompletionResponse 表示模型根据提供的输入返回的聊天补全响应。
详细信息 UnprocessableContentError 错误的详细信息。
Function 模型调用的函数。
FunctionObject 模型有权访问的函数的定义。
ImageDetail 指定图像的详细信息级别。
NotFoundError 路由对已部署的模型无效。
ToolType 工具的类型。 目前仅支持 function
TooManyRequestsError 你已达到分配的速率限制,并且你的请求需要调整步调。
UnauthorizedError 身份验证缺失或无效。
UnprocessableContentError 请求包含无法处理的内容。 当指示的有效负载根据此规范判定为有效时,将返回该错误。 但是,有效负载中指示的某些指令在基础模型中不受支持。 参照 details 部分了解违规的参数。

ChatCompletionFinishReason

模型停止生成标记的原因。 如果模型判定遇到了自然停止点或提供的停止序列,则为 stop;如果达到请求中指定的最大词元数,则为 length;如果由于内容筛选器中的标志而省略内容,则为 content_filter;如果模型调用了工具,则为 tool_calls

名称 Type 描述
content_filter string
length string
stop string
tool_calls string

ChatCompletionMessageToolCall

名称 Type 说明
function Function 模型调用的函数。
ID string 工具调用的 ID。
type ToolType 工具的类型。 目前仅支持 function

ChatCompletionObject

始终为 chat.completion 的对象类型。

名称 Type 描述
chat.completion string

ChatCompletionResponseFormat

模型响应的响应格式。 设置为 json_object 可启用 JSON 模式,这可以保证模型生成的消息是有效的 JSON。 使用 JSON 模式时,还必须使用系统或用户消息指示模型自己生成 JSON。 另请注意,如果使用 finish_reason="length",则消息内容可能会部分截断,这表示生成超过了 max_tokens,或者对话超过了最大上下文长度。

名称 Type 说明
type ChatCompletionResponseFormatType 响应格式类型。

ChatCompletionResponseFormatType

响应格式类型。

名称 Type 描述
json_object string
text string

ChatCompletionResponseMessage

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

名称 Type 描述
内容 string 消息的内容。
role ChatMessageRole 此消息作者的角色。
tool_calls ChatCompletionMessageToolCall[] 模型生成的工具调用,例如函数调用。

ChatCompletionTool

名称 Type 说明
function FunctionObject
type ToolType 工具的类型。 目前仅支持 function

ChatMessageRole

此消息作者的角色。

名称 Type 描述
assistant string
系统 string
tool string
user string

选择项

聊天完成选项的列表。 如果 n 大于 1,则可以具备多个角色。

名称 Type 描述
finish_reason ChatCompletionFinishReason 模型停止生成标记的原因。 如果模型判定遇到了自然停止点或提供的停止序列,则为 stop;如果达到请求中指定的最大词元数,则为 length;如果由于内容筛选器中的标志而省略内容,则为 content_filter;如果模型调用了工具,则为 tool_calls
index integer 选项列表中的所选索引。
message ChatCompletionResponseMessage 模型生成的聊天补全消息。

CompletionUsage

完成请求的使用情况统计信息。

名称 Type 描述
completion_tokens integer 生成的补全中的词元数。
prompt_tokens integer 提示中的标记数。
total_tokens integer 请求中使用的令牌总数(提示 + 补全)。

ContentFilterError

当提示按配置触发内容筛选器时,API 调用将失败。 修改提示,然后重试。

名称 Type 说明
code string 错误代码。
error string 错误说明。
message string 错误消息。
param string 触发内容筛选器的参数。
status integer HTTP 状态代码。

CreateChatCompletionRequest

名称 类型​​ 默认值 说明
frequency_penalty 数字 0 通过降低已使用字词的选中几率,帮助防止字词重复。 频率惩罚越高,模型在其输出中重复相同字词的可能性就越小。 如果模型不支持值或参数,则返回 422 错误。
max_tokens integer 可以在聊天补全时生成的最大词元数。

输入词元和生成的词元的总长度受模型上下文长度的限制。 传递 null 会导致模型使用其最大上下文长度。
messages ChatCompletionRequestMessage[] 包含到目前为止的对话的消息列表。 如果模型无法理解部分或全部消息,则返回 422 错误。
presence_penalty 数字 0 如果某个单词已经存在于补全内容中,即使只存在一次,也对该单词应用惩罚,从而避免重复相同的话题。 如果模型不支持值或参数,则返回 422 错误。
response_format ChatCompletionResponseFormat text
seed integer 指定后,我们的系统将尽最大努力进行确定性采样,以便具有相同 seed 和参数的重复请求应返回相同的结果。 无法保证确定性,你应参考 system_fingerprint 响应参数来监视后端的更改。
stop API 停止生成更多词元的序列。
流 (stream) boolean False 如果设置此选项,系统将发送部分消息增量。 词元将在可用时作为服务器发送的事件发送(内容仅包括数据),并且流式传输将由 data: [DONE] 消息终止。
温度 数字 1 非负数。 如果模型不支持值,则返回 422。
tool_choice ChatCompletionToolChoiceOption 控制模型调用的函数(如有)。 none 表示模型不会调用函数,而是会生成消息。 auto 表示模型可以在生成消息和调用函数之间进行选择。 通过 {"type": "function", "function": {"name": "my_function"}} 指定特定函数会强制模型调用该函数。

当不存在任何函数时,默认值为 none。 如果存在函数,则 auto 是默认值。 如果模型不支持该工具,则返回 422 错误。
工具 ChatCompletionTool[] 模型可能调用的工具列表。 目前,仅支持函数作为工具。 使用它可以提供函数列表,模型可能为其生成 JSON 输入。 如果模型不支持该工具,则返回 422 错误。
top_p 数字 1 温度采样的替代方法,称为核采样,其中模型考虑具有 top_p 概率质量的令牌的结果。 所以 0.1 意味着只考虑包含前 10% 概率质量的令牌。

我们通常建议更改此设置或 temperature,但不要同时更改两者。

ChatCompletionRequestMessage

名称 Type 描述
content string 或 ChatCompletionMessageContentPart[] 消息的内容。
role ChatMessageRole 此消息作者的角色。
tool_calls ChatCompletionMessageToolCall[] 模型生成的工具调用,例如函数调用。

ChatCompletionMessageContentPart

名称 Type 描述
内容 string 图像的 URL 或 base64 编码的图像数据。
detail ImageDetail 指定图像的详细信息级别。
type ChatCompletionMessageContentPartType 内容部件的类型。

ChatCompletionMessageContentPartType

名称 Type 说明
text string
图像 string
image_url string

ChatCompletionToolChoiceOption

控制模型调用哪些工具(如有)。

名称 Type 描述
string 此模型不会调用任何工具,而是会生成消息。
auto string 此模型可以在生成消息和调用一个或多个工具之间进行选择。
必答 string 此模型必须调用一个或多个工具。
string 通过 {"type": "function", "function": {"name": "my_function"}} 指定特定工具将强制模型调用该工具。

ImageDetail

指定图像的详细信息级别。

名称 Type 描述
auto string
low string
high string

CreateChatCompletionResponse

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

名称 Type 描述
choices Choices[] 聊天完成选项的列表。 如果 n 大于 1,则可以具备多个角色。
created integer 聊天补全创建时间的 Unix 时间戳(以秒为单位)。
ID string 聊天补全的唯一标识符。
model string 用于聊天补全的模型。
object ChatCompletionObject 始终为 chat.completion 的对象类型。
system_fingerprint string 这个指纹表示模型运行的后端配置。

可以与 seed 请求参数一起使用,以了解何时进行了可能影响确定性的后端更改。
使用情况 CompletionUsage 完成请求的使用情况统计信息。

详细信息

UnprocessableContentError 错误的详细信息。

名称 Type 描述
loc string[] 导致问题的参数
value string 会导致问题的传递给参数的值。

函数

模型调用的函数。

名称 Type 描述
参数 string 用于调用函数的参数,由模型以 JSON 格式生成。 请注意,该模型并非始终生成有效的 JSON,并且可能会生成未由函数架构定义的错误参数。 在调用函数之前验证代码中的参数。
name string 要调用的函数名称。

FunctionObject

模型有权访问的函数的定义。

名称 Type 说明
description string 函数作用的描述,由模型用于选择何时以及如何调用函数。
name string 要调用的函数的名称。 必须是 a-z、A-z、0-9,或包含下划线和短划线,最大长度为 64。
parameters object 函数接受的参数,被描述为 JSON 架构对象。 省略 parameters 会定义具有空参数列表的函数。

NotFoundError

名称 Type 说明
error string 错误说明。
message string 错误消息。
status integer HTTP 状态代码。

ToolType

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

名称 Type 说明
function string

TooManyRequestsError

名称 Type 说明
error string 错误说明。
message string 错误消息。
status integer HTTP 状态代码。

UnauthorizedError

名称 Type 说明
error string 错误说明。
message string 错误消息。
status integer HTTP 状态代码。

UnprocessableContentError

请求包含无法处理的内容。 当指示的有效负载根据此规范判定为有效时,将返回该错误。 但是,有效负载中指示的某些指令在基础模型中不受支持。 参照 details 部分了解违规的参数。

名称 Type 说明
code string 错误代码。
detail 详细信息
error string 错误说明。
message string 错误消息。
status integer HTTP 状态代码。