Google Vertex AI 推理服务

编辑

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

请求

编辑

PUT /_inference/<task_type>/<inference_id>

路径参数

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

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

可用的任务类型

  • rerank (重新排序)
  • 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
(必填,字符串) 指定任务类型支持的服务类型。在本例中为 googlevertexai
service_settings

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

这些设置特定于 googlevertexai 服务。

service_account_json
(必填,字符串) Google Vertex AI API 的有效 JSON 格式的服务帐户。
model_id
(必填,字符串) 用于推理任务的模型名称。您可以在 文本嵌入 API 中找到支持的模型。
location
(必填,字符串) 用于推理任务的区域名称。您可以在 Vertex AI 上的生成式 AI 区域 中找到支持的区域。
project_id
(必填,字符串) 用于推理任务的项目名称。
rate_limit

(可选,对象) 默认情况下,googlevertexai 服务将每分钟允许的请求数设置为 30000。这有助于最大限度地减少 Google Vertex AI 返回的速率限制错误。要修改此设置,请在您的服务设置中设置此对象的 requests_per_minute 设置。

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

有关 Google Vertex AI 速率限制的更多信息,请参阅 Google Vertex AI 配额文档

task_settings

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

task_settings 用于 rerank 任务类型
top_n
(可选,布尔值) 指定应返回的 top n 个文档的数量。
task_settings 用于 text_embedding 任务类型
auto_truncate
(可选,布尔值) 指定 API 是否自动截断长于最大标记长度的输入。

Google Vertex AI 服务示例

编辑

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

resp = client.inference.put(
    task_type="text_embedding",
    inference_id="google_vertex_ai_embeddings",
    inference_config={
        "service": "googlevertexai",
        "service_settings": {
            "service_account_json": "<service_account_json>",
            "model_id": "<model_id>",
            "location": "<location>",
            "project_id": "<project_id>"
        }
    },
)
print(resp)
const response = await client.inference.put({
  task_type: "text_embedding",
  inference_id: "google_vertex_ai_embeddings",
  inference_config: {
    service: "googlevertexai",
    service_settings: {
      service_account_json: "<service_account_json>",
      model_id: "<model_id>",
      location: "<location>",
      project_id: "<project_id>",
    },
  },
});
console.log(response);
PUT _inference/text_embedding/google_vertex_ai_embeddings
{
    "service": "googlevertexai",
    "service_settings": {
        "service_account_json": "<service_account_json>",
        "model_id": "<model_id>",
        "location": "<location>",
        "project_id": "<project_id>"
    }
}

下一个示例显示如何创建名为 google_vertex_ai_rerank 的推理端点来执行 rerank 任务类型。

resp = client.inference.put(
    task_type="rerank",
    inference_id="google_vertex_ai_rerank",
    inference_config={
        "service": "googlevertexai",
        "service_settings": {
            "service_account_json": "<service_account_json>",
            "project_id": "<project_id>"
        }
    },
)
print(resp)
const response = await client.inference.put({
  task_type: "rerank",
  inference_id: "google_vertex_ai_rerank",
  inference_config: {
    service: "googlevertexai",
    service_settings: {
      service_account_json: "<service_account_json>",
      project_id: "<project_id>",
    },
  },
});
console.log(response);
PUT _inference/rerank/google_vertex_ai_rerank
{
    "service": "googlevertexai",
    "service_settings": {
        "service_account_json": "<service_account_json>",
        "project_id": "<project_id>"
    }
}