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

Azure AI 模型推理 REST API 参考

Azure AI 模型推理是一个 API,它为基础模型公开了一组常见的功能,开发人员可以使用该 API 以统一且一致的方式使用来自各种模型集的预测。 开发人员可以与 Azure AI Foundry 门户中部署的不同模型交谈,而无需更改它们正在使用的基础代码。

好处

近年来,基础模型,如语言模型,确实取得了显著的进步。 这些进步改变了各个领域,包括自然语言处理和计算机视觉,并启用了聊天机器人、虚拟助理和语言翻译服务等应用程序。

虽然基础模型在特定域中表现突出,但它们缺乏一组统一的功能。 某些模型更适合特定任务,甚至跨同一任务,有些模型可能采用一种方式处理问题,而另一些模型则采用另一种方法。 开发人员可以通过 为适当的工作使用适当的模型 允许他们:

  • 提高特定下游任务的性能。
  • 为更简单的任务使用更高效的模型。
  • 使用可在特定任务上运行速度更快的较小模型。
  • 编写多个模型以开发智能体验。

使用基础模型有一种统一的方法,开发人员可以在不牺牲可移植性或更改基础代码的情况下实现所有这些优势。

推理 SDK 支持

借助 Azure AI 推理包,可以使用支持 Azure AI 模型推理 API 的所有模型,并在其中轻松更改。 Azure AI 推理包是 Azure AI Foundry SDK 的一部分。

语言 文档 例子
C# 参考 azure-ai-inference (NuGet) C# 示例
爪哇岛 参考 azure-ai-inference (Maven) Java 示例
JavaScript 参考 @azure/ai-inference (npm) JavaScript 示例
参考 azure-ai-inference (PyPi) Python 示例

能力

以下部分介绍 API 公开的一些功能:

方式

API 指示开发人员如何对以下形式使用预测:

  • 获取信息:返回有关在终结点下部署的模型的信息。
  • 文本嵌入:创建表示输入文本的嵌入向量。
  • 聊天完成:为给定聊天对话创建模型响应。
  • 图像嵌入:创建表示输入文本和图像的嵌入矢量。

扩展

Azure AI 模型推理 API 指定模型可以订阅的一组形式和参数。 但是,某些模型可能具有 API 指示的进一步功能。 在这些情况下,API 允许开发人员将它们作为额外参数传递到有效负载中。

通过设置标头 extra-parameters: pass-through,API 将尝试将任何未知参数直接传递给基础模型。 如果模型可以处理该参数,则请求完成。

以下示例演示了传递 Mistral-Large 支持的参数 safe_prompt 的请求,该参数未在 Azure AI 模型推理 API 中指定。

请求

POST /chat/completions?api-version=2024-05-01-preview
Authorization: Bearer <bearer-token>
Content-Type: application/json
extra-parameters: pass-through
{
    "messages": [
    {
        "role": "system",
        "content": "You are a helpful assistant"
    },
    {
        "role": "user",
        "content": "Explain Riemann's conjecture in 1 paragraph"
    }
    ],
    "temperature": 0,
    "top_p": 1,
    "response_format": { "type": "text" },
    "safe_prompt": true
}

注意

如果有效负载中指示了额外的参数,则 extra-parameters 的默认值 error 返回错误。 或者,可以将 extra-parameters: drop 设置为删除请求中的任何未知参数。 如果碰巧使用额外的参数发送请求,你知道模型不支持,但希望请求无论如何完成,请使用此功能。 一个典型的示例是指示 seed 参数。

具有不同功能集的模型

Azure AI 模型推理 API 指示一组常规功能,但每个模型都可以决定实现它们。 对于模型不支持特定参数的情况,将返回特定的错误。

以下示例显示了聊天完成请求的响应,该请求指示参数 reponse_format,并请求采用 JSON 格式的答复。 在此示例中,由于模型不支持此类功能,因此将错误 422 返回到用户。

请求

POST /chat/completions?api-version=2024-05-01-preview
Authorization: Bearer <bearer-token>
Content-Type: application/json
{
    "messages": [
    {
        "role": "system",
        "content": "You are a helpful assistant"
    },
    {
        "role": "user",
        "content": "Explain Riemann's conjecture in 1 paragraph"
    }
    ],
    "temperature": 0,
    "top_p": 1,
    "response_format": { "type": "json_object" },
}

响应

{
    "status": 422,
    "code": "parameter_not_supported",
    "detail": {
        "loc": [ "body", "response_format" ],
        "input": "json_object"
    },
    "message": "One of the parameters contain invalid values."
}

提示

可以检查属性 details.loc 以了解有问题的参数的位置,并 details.input 查看请求中传递的值。

内容安全

Azure AI 模型推理 API 支持 Azure AI 内容安全。 将部署与 Azure AI 内容安全配合使用时,输入和输出通过一组分类模型,旨在检测和防止有害内容的输出。 内容筛选(预览版)系统在输入提示和输出完成中检测并针对特定类别的潜在有害内容采取措施。

以下示例显示了触发内容安全的聊天完成请求的响应。

请求

POST /chat/completions?api-version=2024-05-01-preview
Authorization: Bearer <bearer-token>
Content-Type: application/json
{
    "messages": [
    {
        "role": "system",
        "content": "You are a helpful assistant"
    },
    {
        "role": "user",
        "content": "Chopping tomatoes and cutting them into cubes or wedges are great ways to practice your knife skills."
    }
    ],
    "temperature": 0,
    "top_p": 1,
}

响应

{
    "status": 400,
    "code": "content_filter",
    "message": "The response was filtered",
    "param": "messages",
    "type": null
}

开始

Azure AI 模型推理 API 在 Azure AI 服务资源上可用。 可以像 在 Azure 订阅中为 Azure AI 模型推理或服务实例创建和配置资源的任何其他 Azure 产品一样开始使用它。 可以根据需要创建任意数量的资源,并独立配置资源,以防有多个团队具有不同的要求。

创建 Azure AI Services 资源后,必须先部署模型,然后才能开始进行 API 调用。 默认情况下,它上没有可用的模型,因此你可以控制从哪个模型开始。 请参阅本教程 在 Azure AI 模型推理中创建第一个模型部署。