OpenAI 推理服务

编辑

创建一个推理端点,以使用 openai 服务执行推理任务。

请求

编辑

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
(必需,字符串)指定任务类型支持的服务类型。在本例中,为 openai
service_settings

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

这些设置特定于 openai 服务。

api_key

(必需,字符串)您的 OpenAI 帐户的有效 API 密钥。您可以在 OpenAI 帐户的 API 密钥部分中找到您的 OpenAI API 密钥。

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

dimensions
(可选,整数)结果输出嵌入应具有的维度数。仅在 text-embedding-3 及更高版本模型中支持。如果未设置,则使用 OpenAI 为该模型定义的默认值。
model_id
(必需,字符串)用于推理任务的模型的名称。有关可用文本嵌入模型的列表,请参阅OpenAI 文档
organization_id
(可选,字符串)您的组织的唯一标识符。您可以在 OpenAI 帐户的设置 > 组织下找到组织 ID。
url
(可选,字符串)用于请求的 URL 端点。可以更改以用于测试目的。默认为 https://api.openai.com/v1/embeddings
rate_limit

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

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

有关 OpenAI 速率限制的更多信息,请参阅您的帐户限制

task_settings

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

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

OpenAI 服务示例

编辑

以下示例演示如何创建名为 openai-embeddings 的推理端点以执行 text_embedding 任务类型。对此端点请求创建的嵌入将具有 128 个维度。

const response = await client.inference.put({
  task_type: "text_embedding",
  inference_id: "openai-embeddings",
  inference_config: {
    service: "openai",
    service_settings: {
      api_key: "<api_key>",
      model_id: "text-embedding-3-small",
      dimensions: 128,
    },
  },
});
console.log(response);
PUT _inference/text_embedding/openai-embeddings
{
    "service": "openai",
    "service_settings": {
        "api_key": "<api_key>",
        "model_id": "text-embedding-3-small",
        "dimensions": 128
    }
}

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

resp = client.inference.put(
    task_type="completion",
    inference_id="openai-completion",
    inference_config={
        "service": "openai",
        "service_settings": {
            "api_key": "<api_key>",
            "model_id": "gpt-3.5-turbo"
        }
    },
)
print(resp)
const response = await client.inference.put({
  task_type: "completion",
  inference_id: "openai-completion",
  inference_config: {
    service: "openai",
    service_settings: {
      api_key: "<api_key>",
      model_id: "gpt-3.5-turbo",
    },
  },
});
console.log(response);
PUT _inference/completion/openai-completion
{
    "service": "openai",
    "service_settings": {
        "api_key": "<api_key>",
        "model_id": "gpt-3.5-turbo"
    }
}