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 部署可以通过链接到您订阅的Azure OpenAI Studio门户找到。
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>

completion 任务类型的 task_settings
user
(可选,字符串) 指定发出请求的用户,可用于滥用检测。
text_embedding 任务类型的 task_settings
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 部署中可以选择的聊天完成模型列表