Skip to main content
LibreChat is joining ClickHouse to power the open-source Agentic Data Stack 🎉 Learn more
LibreChat

Azure OpenAI

如何通过 `librechat.yaml` 文件在 LibreChat 中配置 Azure OpenAI,涵盖部署、模型组、多区域及相关设置。

LibreChat 的 Azure OpenAI 集成

LibreChat 将 Azure OpenAI API 服务作为一等 endpoint 提供支持。要在 LibreChat 中使用 Azure OpenAI,请针对您的设置配置 librechat.yaml 文件。本文档涵盖了使用多个部署和模型的设置过程。

示例

一个包含下述许多选项和功能的配置示例:

endpoints:
  azureOpenAI:
    # Endpoint-level configuration
    titleModel: "llama-70b-chat"
    plugins: true
    assistants: true
    groups:
    # Group-level configuration
    - group: "my-resource-westus"
      apiKey: "${WESTUS_API_KEY}"
      instanceName: "my-resource-westus"
      version: "2024-03-01-preview"
      # Model-level configuration
      models:
        gpt-4-vision-preview:
          deploymentName: gpt-4-vision-preview
          version: "2024-03-01-preview"
        gpt-3.5-turbo:
          deploymentName: gpt-35-turbo
        gpt-4-1106-preview:
          deploymentName: gpt-4-1106-preview
    # Group-level configuration
    - group: "mistral-inference"
      apiKey: "${AZURE_MISTRAL_API_KEY}"
      baseURL: "https://Mistral-large-vnpet-serverless.region.inference.ai.azure.com/v1/chat/completions"
      serverless: true
      # Model-level configuration
      models:
        mistral-large: true
    # Group-level configuration
    - group: "my-resource-sweden"
      apiKey: "${SWEDEN_API_KEY}"
      instanceName: "my-resource-sweden"
      deploymentName: gpt-4-1106-preview
      version: "2024-03-01-preview"
      assistants: true
      # Model-level configuration
      models:
        gpt-4-turbo: true

此示例遵循 Azure OpenAI Endpoint Configuration Docs

每一级配置的详细信息请参阅其各自的章节:

  1. 端点级配置

  2. 组级配置

  3. 模型级配置

设置

  1. 编辑 librechat.yaml:使用您偏好的文本编辑器或 IDE 打开并编辑 librechat.yaml 文件。

    • 可选:使用以下环境变量来指定远程或自定义文件路径:
    CONFIG_PATH="/alternative/path/to/librechat.yaml"
  2. 配置 Azure OpenAI 设置:请遵循下述结构来填充您的 Azure OpenAI 设置,包括 API 密钥、实例名称、模型组以及其他配置。

  3. 移除旧版设置:如果您正在使用任何旧版配置,请将其移除。LibreChat 服务器也会检测到这些配置并提醒您。

  4. 保存更改:保存 librechat.yaml 文件。

  5. 重启 LibreChat:重启您的 LibreChat 应用程序,以便加载更新后的配置。

必需字段

要将 Azure OpenAI 集成到 LibreChat 中,必须在您的 librechat.yaml 文件中配置特定字段。这些字段通过自定义变量和环境变量的组合进行验证。详细要求如下。

Endpoint-Level Configuration

全局 Azure 设置:

标题和对话设置:

KeyTypeDescriptionExample
titleModelstring指定用于生成对话标题的模型。如果未提供,默认模型将设置为 `gpt-3.5-turbo`,若缺少此模型则不会生成标题。您也可以将其设置为 `current_model` 以动态使用当前模型。titleModel:
pluginsboolean启用通过 Azure 使用插件的功能。设置为 `true` 以通过您的 Azure 配置激活 Plugins endpoint 支持。默认值:`false`。plugins:false
assistantsboolean启用通过 Azure 使用 Assistants。设置为 `true` 以通过您的 Azure 配置激活 Assistants endpoint。默认值:`false`。注意:这需要一个兼容 Assistants 的区域。assistants:false
summarizeboolean为所有 Azure 模型启用对话摘要功能。设置为 `true` 以激活摘要功能。默认值:`false`。summarize:false
summaryModelstring指定用于生成对话摘要的模型。如果未提供,默认行为是使用第一个组中 `default` 数组里的第一个模型。summaryModel:
titleConvoboolean为所有 Azure 模型启用对话标题生成功能。设置为 `true` 以激活标题生成。默认值:`false`。titleConvo:false
titleMethodstring控制用于生成对话标题的方法。有效值:"completion"(默认)、"structured"、"functions"("structured" 的旧版别名)。titleMethod:completion
titlePromptstring用于生成标题的自定义提示词。必须包含用于表示对话内容的 {convo} 占位符。See documentation for default prompt
titlePromptTemplatestring用于格式化对话内容的模板。必须包含 {input} 和 {output} 占位符。默认值:"User: {input} AI: {output}"titlePromptTemplate:
titleEndpointstring用于标题生成的替代 endpoint。接受的值:openAI, azureOpenAI, google, anthropic, bedrock,或自定义 endpoint 名称。titleEndpoint:

群组配置:

KeyTypeDescriptionExample
groupsarray指定 Azure OpenAI 模型组列表。每个组代表一组具有共享配置的模型。groups 字段是一个对象数组,其中每个对象定义了特定组的设置。这是 endpoint 级别的必填字段,且必须至少定义一个组。组级配置详见“组级配置”部分。# groups:[]

自定义排序(可选):

KeyTypeDescriptionExample
customOrdernumber允许您在用户界面中为 Azure endpoint 指定自定义排序。数字越大,在列表中的位置越靠下。如果未提供,默认排序将由 `librechat.yaml` 文件中定义 endpoint 的顺序决定。customOrder:

customOrder 选项已被注释掉,因为它是可选的。

在您的 librechat.yaml 文件中,这些 endpoint 级别设置的示例如下:

endpoints:
  azureOpenAI:
    titleModel: "gpt-3.5-turbo-1106"
    plugins: true
    assistants: true
    summarize: true
    summaryModel: "gpt-3.5-turbo-1106"
    titleConvo: true
    titleMethod: "functions"
    groups:
      # ... (group-level and model-level configurations)

组级别配置

可在自定义配置 (librechat.yaml) 文件中配置的字段。有关每个字段的更多信息,请参阅 自定义配置文档中的 Azure OpenAI 部分

组级配置: 组标识:

KeyTypeDescriptionExample
groupstring模型组的唯一标识名称。不允许重复的组名,否则会导致验证错误。group: default

身份验证:

KeyTypeDescriptionExample
apiKeystring必须是 Azure OpenAI 服务的有效 API 密钥。它可以是直接的密钥字符串,也可以是环境变量引用(例如 ${WESTUS_API_KEY})。apiKey: ${AZURE_API_KEY}

Azure OpenAI 实例:

KeyTypeDescriptionExample
instanceNamestringAzure OpenAI 实例的名称。此字段也支持引用环境变量。**支持两种域名格式**:`.openai.azure.com`(旧版)和 `.cognitiveservices.azure.com`(新版)。您可以指定完整域名(例如 `my-instance.cognitiveservices.azure.com`),也可以仅指定实例名称(例如 `my-instance`),以保持与旧版 `.openai.azure.com` 格式的向后兼容性。instanceName: ${AZURE_OPENAI_INSTANCE}

部署配置:

KeyTypeDescriptionExample
deploymentNamestring组级别的部署名称是可选的,但如果组内的任何模型被设置为 true,则该名称为必填项。deploymentName: my-deployment
versionstring组级别的 Azure OpenAI API 版本是可选的,但如果组内的任何模型被设置为 true,则该版本为必填项。version: 2023-03-15-preview

高级设置:

KeyTypeDescriptionExample
baseURLstring用于 Azure OpenAI API 请求的自定义基础 URL。支持环境变量引用。此项为可选,可用于高级路由场景。baseURL: https://my-custom-base-url.com
additionalHeadersobject指定 Azure OpenAI API 请求的任何额外标头,以键值对形式表示。值中可以包含环境变量引用。additionalHeaders: {Authorization: ${AUTH_HEADER}}
serverlessboolean指定该组是否为来自 Azure Model Catalog 的无服务器推理聊天补全 endpoint,对于此类 endpoint,仅需提供模型标识符、baseURL 和 apiKey。更多信息,请参阅 serverless inference endpoints。serverless: true
addParamsobject为 Azure OpenAI API 请求添加或覆盖额外的参数。适用于以键值对形式指定 API 特定的选项。addParams: {temperature: 0.7}
dropParamsarray允许从 Azure OpenAI API 请求中排除某些默认参数。对于不接受或无法识别特定参数的 API 非常有用。应将其指定为字符串列表。dropParams: [top_p, stop]

模型配置:

KeyTypeDescriptionExample
modelsobject指定组内模型标识符与其配置的映射。键代表模型标识符,必须与相应的 OpenAI 模型名称匹配。值可以是布尔值(true)或包含模型特定设置的对象。如果模型设置为 true,它将继承组级别的 deploymentName 和 version。如果模型配置为对象,则可以拥有自己的 deploymentName 和 version。此字段为必填项,且每个组内必须至少定义一个模型。更多信息请见此处models: {gpt-3.5-turbo: true, text-davinci-003: {}}

librechat.yaml 文件中进行组级配置的示例:

endpoints:
  azureOpenAI:
    # ... (endpoint-level configurations)
    groups:
      - group: "my-resource-group"
        apiKey: "${AZURE_API_KEY}"
        instanceName: "my-instance"
        deploymentName: "gpt-35-turbo"
        version: "2023-03-15-preview"
        baseURL: "https://my-instance.openai.azure.com/"
        additionalHeaders:
          CustomHeader: "HeaderValue"
        addParams:
          max_tokens: 2048
          temperature: 0.7
        dropParams:
          - "frequency_penalty"
          - "presence_penalty"
        models:
        # ... (model-level configurations)

模型级配置

在每个组内,models 字段包含模型标识符与其配置之间的映射:

模型标识:

KeyTypeDescriptionExample
Model Identifierstring必须与对应的 OpenAI 模型名称匹配。可以是部分匹配。gpt-3.5-turbo: true

模型配置:

KeyTypeDescriptionExample
Model Configurationboolean/object布尔值 true:使用组级别的 deploymentName 和 version。对象:指定模型特定的 deploymentName 和 version。如果未提供,则继承自该组。text-davinci-003: {deploymentName: my-model-deployment, version: 2023-03-15-preview}
deploymentNamestring此特定模型的部署名称。deploymentName: my-model-deployment
versionstring此特定模型的 Azure OpenAI API 版本。version: 2023-03-15-preview

无服务器推理端点 (Serverless Inference Endpoints):

KeyTypeDescriptionExample
Serverless Inference Endpointsnote对于无服务器模型,将 model 设置为 true。gpt-4: true
  • 模型标识符必须与其对应的 OpenAI 模型名称匹配,以便它能够正确反映其已知的上下文限制和/或在视觉功能方面正常工作。例如,如果您打算使用 gpt-4-vision,则必须按如下方式进行配置:
endpoints:
  azureOpenAI:
    # ... (endpoint-level configurations)
    groups:
    # ... (group-level configurations)
    - group: "example_group"
    models:
     # Model identifiers must match OpenAI Model name (can be a partial match)
      gpt-4-vision-preview:
      # Object setting: must include at least "deploymentName" and/or "version"
        deploymentName: "arbitrary-deployment-name"
        version: "2024-02-15-preview" # version can be any that supports vision
      # Boolean setting, must be "true"
      gpt-4-turbo: true
  • 请参阅 Model Deployments 以获取更多示例。

  • 如果一个模型被设置为 true,则意味着该模型将使用组级别的 deploymentNameversion。在这种情况下,两者都必须在组级别进行定义。

  • 如果模型被配置为一个对象,它可以指定自己的 deploymentNameversion。如果未提供这些信息,模型将继承该组的 deploymentNameversion

  • 如果该组代表一个 serverless inference endpoint,则应将 singular model 设置为 true 以将其添加到模型列表中。

特别注意事项

  1. 唯一名称:模型名称和组名称在整个配置中都必须是唯一的。重复的名称会导致验证失败。

  2. 缺少必填字段:如果在组级别(针对布尔标志模型)或模型配置内(如果未继承或未明确指定)缺少必填的 deploymentNameversion,将会导致验证错误,除非该组代表一个 serverless inference endpoint

  3. 环境变量引用:该配置支持环境变量引用(例如 ${VARIABLE_NAME})。请确保所有引用的变量都存在于您的环境中,以避免运行时错误。配置中引用的环境变量如果未定义,将会导致错误。${INSTANCE_NAME}${DEPLOYMENT_NAME} 是特殊的占位符,它们不对应环境变量,而是对应当前所选模型的实例名称和部署名称。不建议将 INSTANCE_NAMEDEPLOYMENT_NAME 用作环境变量名称,以避免任何潜在的冲突。

  4. 错误处理: 配置中的任何问题,例如名称重复、未定义的环境变量或缺少必填字段,都将导致设置失效,并生成旨在快速解决问题的描述性错误消息。如果配置无效,您将无法运行服务器。

  5. 模型标识符 (Model identifiers):一个(对本项目而言)未知的模型可以用作模型标识符,但它必须匹配一个已知模型,以便反映其已知的上下文长度,这对于消息/令牌处理至关重要;例如,gpt-7000 将是有效的,但会默认使用 4k 令牌限制,而 gpt-4-turbo 将被识别为具有 128k 上下文限制。

根据最新的模式定义和指南验证您的配置,以保持兼容性。

模型部署

用户可用的模型列表由您在 azureOpenAI endpoint 配置 中指定的模型分组决定。

例如:

# Example Azure OpenAI Object Structure
endpoints:
  azureOpenAI:
    groups:
      - group: "my-westus" # arbitrary name
        apiKey: "${WESTUS_API_KEY}"
        instanceName: "actual-instance-name" # name of the resource group or instance
        version: "2023-12-01-preview"
        models:
          gpt-4-vision-preview:
            deploymentName: gpt-4-vision-preview
            version: "2024-02-15-preview"
          gpt-3.5-turbo: true
      - group: "my-eastus"
        apiKey: "${EASTUS_API_KEY}"
        instanceName: "actual-eastus-instance-name"
        deploymentName: gpt-4-turbo
        version: "2024-02-15-preview"
        models:
          gpt-4-turbo: true

上述配置将按照定义的顺序为您的用户启用 gpt-4-vision-previewgpt-3.5-turbogpt-4-turbo

在 Azure 中使用 Assistants

要启用 Azure OpenAI 的 Assistants 功能,主要有两个步骤。

  1. azureOpenAI endpoint 下方(即 Endpoint-level)将 assistants 字段设置为 true,如下所示:
endpoints:
  azureOpenAI:
  # Enable use of Assistants with Azure
    assistants: true
  1. assistants 字段添加到与 Azure 的 Assistants API 集成兼容的组中。
endpoints:
  azureOpenAI:
    assistants: true
    groups:
      - group: "my-sweden-group"
        apiKey: "${SWEDEN_API_KEY}"
        instanceName: "actual-instance-name"
      # Mark this group as assistants compatible
        assistants: true
      # version must be "2024-02-15-preview" or later
        version: "2024-03-01-preview"
        models:
          # ... (model-level configuration)

注意:

  • 对于凭据,请依赖在每个兼容 assistants 的组配置中指定的自定义环境变量。

  • 如果您将多个区域标记为 assistants-compatible,您创建的助手将跨区域聚合到主助手选择列表中。

  • 您上传到 Azure OpenAI 的文件(无论是消息级别还是助手级别)将仅在当前助手模型所属的区域内可用。

    • 出于这个原因,建议您仅为 Azure OpenAI Assistants 使用一个区域或资源组,否则将会遇到错误。
    • 对于官方的 code_interpreterretrieval 功能,上传到 "OpenAI" 是默认行为。
  • 即将支持下载助手生成的文件。

  • 截至 2024 年 5 月 19 日,Azure OpenAI 尚不支持检索(retrieval)和流式传输(streaming)。

    • 为避免在不支持检索功能时出现任何错误,建议通过 azureAssistants endpoint 配置完全禁用该功能:
    endpoints:
      azureOpenAI:
        # ...rest
     
      azureAssistants:
      # "retrieval" omitted.
        capabilities: ["code_interpreter", "actions", "tools"]
    • 默认情况下,除 retrieval 外的所有功能均已启用。

在 Azure 中使用插件

若要将 Plugins endpoint 与 Azure OpenAI 配合使用,你需要一个支持 function calling 的部署。否则,请在 Agent 设置中关闭“Functions”。当你未使用“functions”模式时,建议同时关闭“skip completion”,这是一个对 Agent 生成内容进行审查的步骤。

若要将 Azure 与 Plugins endpoint 配合使用,请确保在您的 Azure OpenAI endpoint 配置中将 plugins 字段设置为 true

# Example Azure OpenAI Object Structure
endpoints:
  azureOpenAI:
    plugins: true # <------- Set this
    groups:
    # omitted for brevity

配置 plugins 字段将配置 Plugins 以使用 Azure 模型。

注意:目前通过 librechat.yaml 进行的配置使用您从前端选择的主模型来使用插件,这通常不是在没有 Azure 的情况下的工作方式,在没有 Azure 时,会改用“Agent”模型。当通过 Azure 使用插件时,可以忽略 Agent 模型设置。

在 Azure 中使用指定的 Base URL

Azure OpenAI API 请求的 base URL 可以进行动态配置。这对于代理服务(例如 Cloudflare AI Gateway)非常有用,或者如果您希望显式覆盖应用程序的 baseURL 处理方式,也可以使用此功能。

LibreChat 将使用 baseURL 字段进行 Azure 模型分组,其中可以包含 Azure OpenAI API 实例和部署名称的占位符。

Azure Endpoint 域名格式支持

Azure OpenAI 现在支持以下两种 endpoint 域名格式:

  • 新格式.cognitiveservices.azure.com
  • 旧版格式.openai.azure.com

当在不使用完整域名的情况下使用 instanceName 时,默认会应用旧版的 .openai.azure.com 格式。如果您提供了完整域名(例如 my-instance.cognitiveservices.azure.com),它将按原样使用。这适用于 instanceName 字段和 baseURL 配置。

在配置中,可以按如下方式自定义 base URL:

# librechat.yaml file, under an Azure group:
endpoints:
  azureOpenAI:
    groups:
      - group: "group-with-custom-base-url"
      baseURL: "https://example.azure-api.net/${INSTANCE_NAME}/${DEPLOYMENT_NAME}"
 
# Legacy format (.openai.azure.com)
      baseURL: "https://${INSTANCE_NAME}.openai.azure.com/openai/deployments/${DEPLOYMENT_NAME}"
 
# New format (.cognitiveservices.azure.com)
      baseURL: "https://${INSTANCE_NAME}.cognitiveservices.azure.com/openai/deployments/${DEPLOYMENT_NAME}"
 
# Cloudflare example
      baseURL: "https://gateway.ai.cloudflare.com/v1/ACCOUNT_TAG/GATEWAY/azure-openai/${INSTANCE_NAME}/${DEPLOYMENT_NAME}"

注意${INSTANCE_NAME}${DEPLOYMENT_NAME} 是唯一的占位符,它们不对应环境变量,而是对应当前所选模型的实例名称和部署名称。不建议将 INSTANCE_NAME 和 DEPLOYMENT_NAME 用作环境变量名称,以避免任何潜在的冲突。

您也可以完全省略占位符,直接使用您的凭据构建 baseURL:

      baseURL: "https://gateway.ai.cloudflare.com/v1/ACCOUNT_TAG/GATEWAY/azure-openai/my-secret-instance/my-deployment"

最后,你可以通过自定义环境变量来指定整个 baseURL

      baseURL: "${MY_CUSTOM_BASEURL}"

使用 Azure 启用自动生成标题

要为 Azure 启用标题生成功能,请将 titleConvo 设置为 true

# Example Azure OpenAI Object Structure
endpoints:
  azureOpenAI:
    titleConvo: true # <------- Set this
    groups:
    # omitted for brevity

你也可以通过 titleModel 指定用于生成标题的模型,前提是你已经在你的组(group(s))中进行了配置。

    titleModel: "gpt-3.5-turbo"

注意:“gpt-3.5-turbo” 是默认值,因此如果您想使用此确切模型并已对其进行配置,则可以省略它。如果未配置且 titleConvo 设置为 true,则标题生成过程将导致错误,且不会生成标题。您也可以将其设置为 current_model,以动态使用当前模型。

    titleModel: "current_model"

在 Azure 上使用 GPT-4 Vision

若要将 Vision(图像分析)与 Azure OpenAI 配合使用,请确保 gpt-4-vision-preview您的分组之一中指定的模型。

这与 OpenAI endpoint 的工作方式相同:无需手动选择视觉模型,系统会在后台自动切换。

使用 Azure OpenAI Service 生成图像 (DALL-E)

模型 ID功能可用性最大请求(字符)
dalle2East US1000
dalle3Sweden Central4000
  • 首先,你需要创建一个托管 DALL-E 的 Azure 资源。
    • 在撰写本文时,dall-e-3 可在 SwedenCentral 区域使用,dall-e-2 可在 EastUS 区域使用。
  • 然后,你需要在上述区域之一中部署图像生成模型。
  • 根据 Azure 凭据配置您的环境变量:

DALL-E 配置选项:

DALL-E:

API Keys:

KeyTypeDescriptionExample
DALLE_API_KEYstring用于 DALL-E 2 和 DALL-E 3 服务的 OpenAI API 密钥。# DALLE_API_KEY=

API Keys (Version Specific):

KeyTypeDescriptionExample
DALLE3_API_KEYstring用于 DALL-E 3 的 OpenAI API 密钥。# DALLE3_API_KEY=
DALLE2_API_KEYstring用于 DALL-E 2 的 OpenAI API 密钥。# DALLE2_API_KEY=

系统提示词 (System Prompts):

KeyTypeDescriptionExample
DALLE3_SYSTEM_PROMPTstringDALL-E 3 的系统提示词# DALLE3_SYSTEM_PROMPT="Your DALL-E-3 System Prompt here"
DALLE2_SYSTEM_PROMPTstringDALL-E 2 的系统提示词。# DALLE2_SYSTEM_PROMPT="Your DALL-E-2 System Prompt here"

反向代理设置:

KeyTypeDescriptionExample
DALLE_REVERSE_PROXYstring用于 DALL-E API 请求的反向代理 URL。# DALLE_REVERSE_PROXY=

Base URLs:

KeyTypeDescriptionExample
DALLE3_BASEURLstringDALL-E 3 API endpoint 的基础 URL。支持 `.openai.azure.com`(旧版)和 `.cognitiveservices.azure.com`(新版)两种域名格式。# DALLE3_BASEURL=https://<AZURE_OPENAI_API_INSTANCE_NAME>.openai.azure.com/openai/deployments/<DALLE3_DEPLOYMENT_NAME>/ # OR # DALLE3_BASEURL=https://<AZURE_OPENAI_API_INSTANCE_NAME>.cognitiveservices.azure.com/openai/deployments/<DALLE3_DEPLOYMENT_NAME>/
DALLE2_BASEURLstringDALL-E 2 API endpoint 的基础 URL。支持 `.openai.azure.com`(旧版)和 `.cognitiveservices.azure.com`(新版)两种域名格式。# DALLE2_BASEURL=https://<AZURE_OPENAI_API_INSTANCE_NAME>.openai.azure.com/openai/deployments/<DALLE2_DEPLOYMENT_NAME>/ # OR # DALLE2_BASEURL=https://<AZURE_OPENAI_API_INSTANCE_NAME>.cognitiveservices.azure.com/openai/deployments/<DALLE2_DEPLOYMENT_NAME>/

Azure OpenAI 集成(可选):

KeyTypeDescriptionExample
DALLE3_AZURE_API_VERSIONstringAzure OpenAI 服务中 DALL-E 3 的 API 版本。# DALLE3_AZURE_API_VERSION=the-api-version # e.g.: 2023-12-01-preview
DALLE2_AZURE_API_VERSIONstringAzure OpenAI 服务中 DALL-E 2 的 API 版本。# DALLE2_AZURE_API_VERSION=the-api-version # e.g.: 2023-12-01-preview

将占位符文本替换为实际的提示词或指令,如果您选择直接在文件中包含 API 密钥,请提供它们(建议在代码库之外管理敏感密钥)。在软件中嵌入 API 密钥时,请查阅并遵守 OpenAI 的使用政策。

注意:如果您设置了 PROXY,它也将用于 DALL-E 调用,这适用于整个应用程序。

Serverless Inference Endpoints

通过 librechat.yaml 文件,您可以配置 Azure AI Studio 无服务器推理端点,以访问来自 Azure AI Foundry 的模型。除了需要 serverless 字段来指示这些端点所需的特殊处理外,仅需提供模型标识符、baseURLapiKey

endpoints:
  azureOpenAI:
    groups:
    - group: "serverless-example"
      apiKey: "${LLAMA318B_API_KEY}"  # arbitrary env var name
      baseURL: "https://example.services.ai.azure.com/models/"
      version: "2024-05-01-preview" # Optional: specify API version
      serverless: true
      models:
        # Must match the deployment name of the model
        Meta-Llama-3.1-8B-Instruct: true

注意:

  • Azure AI Foundry 模型现在为无服务器推理在 /models/chat/completions?api-version=version 下配置 endpoint。
    • baseURL 字段应设置为 endpoint 的根路径,不应包含 /models/ 之后的任何内容,即不应包含 /chat/completions 路径。
    • 示例:https://example.services.ai.azure.com/models/ 对应 https://example.services.ai.azure.com/models/chat/completions?api-version=2024-05-01-preview
    • version 查询参数是可选的,可以在 baseURL 字段中指定。
  • models 字段中使用的模型名称必须与 Azure AI Foundry 中模型的部署名称一致。
  • 与 LibreChat 的兼容性依赖于与 OpenAI API 规范的一致性,在撰写本文时,这些规范通常是 Azure AI Studio 上的 “即用即付” (Pay-as-you-go) 或 “模型即服务” (MaaS) 部署,它们是与 OpenAI-SDK 兼容的,并处理 v1/completionsmodels/chat/completions endpoint。
  • 所有提供无服务器部署("Serverless APIs")的模型均与 Azure 模型目录兼容。您可以在“部署选项”(Deployment options)下筛选“Serverless API”,并在“推理任务”(inference tasks)下筛选“Chat completion”以查看完整列表;但实时 endpoint 模型尚未经过测试。
  • 根据 OpenAI API 规范,这些无服务器推理 endpoint/模型可能支持也可能不支持函数调用,而函数调用是其与 Agents 配合使用的前提。

这篇指南怎么样?