Azure OpenAI 推理服务

编辑

创建推理端点以使用 azureopenai 服务执行推理任务。

请求

编辑

PUT /_inference/<task_type>/<inference_id>

路径参数

编辑
<inference_id>
(必填,字符串) 推理端点的唯一标识符。
<task_type>

(必填,字符串) 模型将执行的推理任务类型。

可用任务类型

  • completion,
  • text_embedding.

请求体

编辑
chunking_settings

(可选,对象) 分块配置对象。请参阅 配置分块 以了解有关分块的更多信息。

max_chunking_size
(可选,整数) 指定分块的最大大小(以字为单位)。默认为 250。此值不能高于 300 或低于 20(对于 sentence 策略)或 10(对于 word 策略)。
overlap
(可选,整数) 仅适用于 word 分块策略。指定分块的重叠字数。默认为 100。此值不能高于 max_chunking_size 的一半。
sentence_overlap
(可选,整数) 仅适用于 sentence 分块策略。指定分块的重叠句子数。可以是 10。默认为 1
strategy
(可选,字符串) 指定分块策略。可以是 sentenceword
service
(必填,字符串) 指定任务类型支持的服务类型。在本例中为 azureopenai
service_settings

(必填,对象) 用于安装推理模型的设置。

这些设置特定于 azureopenai 服务。

api_keyentra_id

(必填,字符串) 您必须提供 API 密钥或 Entra ID 之一。如果您两者都没有提供或都提供了,则在尝试创建模型时会收到错误。有关这些身份验证类型的更多详细信息,请参阅 Azure OpenAI 身份验证文档

您只需要在推理模型创建期间提供一次 API 密钥。 获取推理 API 不会检索您的 API 密钥。创建推理模型后,您无法更改关联的 API 密钥。如果您想使用其他 API 密钥,请删除推理模型并使用相同名称和更新的 API 密钥重新创建它。

resource_name
(必填,字符串) 您 Azure OpenAI 资源的名称。您可以在 Azure 门户中您订阅的 资源列表 中找到它。
deployment_id
(必填,字符串) 已部署模型的部署名称。您可以通过链接到您订阅的 Azure OpenAI Studio 门户找到您的 Azure OpenAI 部署。
api_version
(必填,字符串) 要使用的 Azure API 版本 ID。我们建议使用 最新支持的非预览版本
rate_limit

(可选,对象) azureopenai 服务根据任务类型设置允许的每分钟请求默认数量。对于 text_embedding,它设置为 1440。对于 completion,它设置为 120。这有助于最大程度地减少 Azure 返回的速率限制错误数量。要修改此设置,请在您的服务设置中设置此对象的 requests_per_minute 设置。

"rate_limit": {
    "requests_per_minute": <<number_of_requests>>
}

有关 Azure 速率限制的更多信息,请参阅 配额限制文档如何更改配额

task_settings

(可选,对象) 配置推理任务的设置。这些设置特定于您指定的 <task_type>

task_settings 适用于 completion 任务类型
user
(可选,字符串) 指定发出请求的用户,可用于滥用检测。
task_settings 适用于 text_embedding 任务类型
user
(可选,字符串) 指定发出请求的用户,可用于滥用检测。

Azure OpenAI 服务示例

编辑

以下示例显示了如何创建名为 azure_openai_embeddings 的推理端点以执行 text_embedding 任务类型。请注意,我们在此处未指定模型,因为它已通过我们的 Azure OpenAI 部署定义。

您可以在部署中选择的嵌入模型列表可以在 Azure 模型文档 中找到。

resp = client.inference.put(
    task_type="text_embedding",
    inference_id="azure_openai_embeddings",
    inference_config={
        "service": "azureopenai",
        "service_settings": {
            "api_key": "<api_key>",
            "resource_name": "<resource_name>",
            "deployment_id": "<deployment_id>",
            "api_version": "2024-02-01"
        }
    },
)
print(resp)
const response = await client.inference.put({
  task_type: "text_embedding",
  inference_id: "azure_openai_embeddings",
  inference_config: {
    service: "azureopenai",
    service_settings: {
      api_key: "<api_key>",
      resource_name: "<resource_name>",
      deployment_id: "<deployment_id>",
      api_version: "2024-02-01",
    },
  },
});
console.log(response);
PUT _inference/text_embedding/azure_openai_embeddings
{
    "service": "azureopenai",
    "service_settings": {
        "api_key": "<api_key>",
        "resource_name": "<resource_name>",
        "deployment_id": "<deployment_id>",
        "api_version": "2024-02-01"
    }
}

下一个示例显示了如何创建名为 azure_openai_completion 的推理端点以执行 completion 任务类型。

resp = client.inference.put(
    task_type="completion",
    inference_id="azure_openai_completion",
    inference_config={
        "service": "azureopenai",
        "service_settings": {
            "api_key": "<api_key>",
            "resource_name": "<resource_name>",
            "deployment_id": "<deployment_id>",
            "api_version": "2024-02-01"
        }
    },
)
print(resp)
const response = await client.inference.put({
  task_type: "completion",
  inference_id: "azure_openai_completion",
  inference_config: {
    service: "azureopenai",
    service_settings: {
      api_key: "<api_key>",
      resource_name: "<resource_name>",
      deployment_id: "<deployment_id>",
      api_version: "2024-02-01",
    },
  },
});
console.log(response);
PUT _inference/completion/azure_openai_completion
{
    "service": "azureopenai",
    "service_settings": {
        "api_key": "<api_key>",
        "resource_name": "<resource_name>",
        "deployment_id": "<deployment_id>",
        "api_version": "2024-02-01"
    }
}

您可以在 Azure OpenAI 部署中选择的聊天完成模型列表可以在以下位置找到