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密钥重新创建它。

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>

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

OpenAI 服务示例

编辑

以下示例显示如何创建名为openai-embeddings的推理端点以执行text_embedding任务类型。

resp = 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-ada-002"
        }
    },
)
print(resp)
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-ada-002",
    },
  },
});
console.log(response);
PUT _inference/text_embedding/openai-embeddings
{
    "service": "openai",
    "service_settings": {
        "api_key": "<api_key>",
        "model_id": "text-embedding-ada-002"
    }
}

下一个示例显示如何创建名为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"
    }
}