在 AlloyDB 中使用模型端点调用模型

借助模型端点管理预览版,您可以注册模型端点,在数据库集群中管理模型端点元数据,然后使用 SQL 查询与模型进行互动。它提供了 google_ml_integration 扩展程序,其中包含相应函数以用于添加和注册与模型相关的模型端点元数据,然后使用模型生成向量嵌入或调用预测。

您可以使用模型端点管理注册的一些示例模型类型如下:

  • Vertex AI 文本嵌入模型
  • 第三方提供商提供的嵌入模型。
  • 自定义托管文本嵌入模型
  • 使用基于 JSON 的 API 的通用模型,例如来自 Vertex AI Model Garden 的 gemini-pro 模型

工作原理

您可以使用模型端点管理功能注册符合以下条件的模型端点:

  • 模型输入和输出支持 JSON 格式。
  • 模型可以使用 REST 协议来调用。

当您使用模型端点管理注册模型端点时,模型端点管理会使用您提供的唯一模型 ID(作为对模型的引用)来注册每个端点。您可以使用此模型 ID 来查询模型:

  • 生成嵌入以将文本提示转换为数值向量。在数据库中启用 pgvector 扩展程序后,您可以将生成的嵌入存储为向量数据。

  • 调用预测以在事务中使用 SQL 调用模型。

您的应用可以使用 google_ml_integration 扩展程序访问模型端点管理。此扩展程序提供以下函数:

  • google_ml.create_model() SQL 函数,用于注册在预测或嵌入函数中使用的模型端点。
  • google_ml.create_sm_secret() SQL 函数,使用 Google CloudSecret Manager 中的 Secret(API 密钥存储在其中)。
  • google_ml.embedding() SQL 函数,一个生成文本嵌入的预测函数。
  • google_ml.predict_row() SQL 函数,用于在您调用支持 JSON 输入和输出格式的通用模型时生成预测。
  • 其他辅助函数,用于为您的通用模型生成自定义网址、生成 HTTP 标头或传递转换函数。
  • 用于管理已注册模型端点和 Secret 的函数。

主要概念

在开始使用模型端点管理之前,请了解连接到模型和使用模型所需的概念。

模型提供商

模型提供商指示支持的模型托管服务提供商。下表显示了您必须根据所使用的模型提供商设置的模型提供商值:

模型提供商 在函数中设置为…
Vertex AI google
其他模型 custom

默认的模型提供商为 custom

支持的身份验证方法因提供商类型而异。Vertex AI 模型使用 Distributed Cloud 服务账号进行身份验证,而其他提供商可以使用 Secret Manager 进行身份验证。

模型类型

模型类型指示 AI 模型的类型。扩展程序支持文本嵌入以及任何通用模型类型。注册模型端点时,您可以设置的受支持模型类型为 text-embeddinggeneric。 注册通用模型端点时,设置模型类型是可选操作,因为 generic 是默认模型类型。

具有内置支持的文本嵌入模型
模型端点管理针对 Vertex AI 的所有版本的 textembedding-gecko 模型提供内置支持。如需注册这些模型端点,请使用 google_ml.create_model() 函数。Distributed Cloud 会自动为这些模型设置默认转换函数。
这些模型的类型为 text-embedding
其他文本嵌入模型
对于其他文本嵌入模型,您需要创建转换函数来处理模型支持的输入和输出格式。(可选)您可以使用 HTTP 标头生成函数,它可以生成模型所需的自定义标头。
这些模型的类型为 text-embedding
通用模型
除了文本嵌入模型之外,模型端点管理还支持注册所有其他类型的模型。如需为通用模型调用预测,请使用 google_ml.predict_row() 函数。您可以设置模型端点元数据,例如模型特有的请求端点和 HTTP 标头。
注册通用模型端点时,您无法传递转换函数。请确保在调用预测时,函数的输入采用 JSON 格式,并确保解析 JSON 输出以获得最终输出。
这些模型的类型为 generic

身份验证

身份验证类型指示您在使用 google_ml_integration 扩展程序连接到模型端点管理时可以使用的身份验证类型。设置身份验证是可选的,只有在您需要通过身份验证才能访问模型时才需要设置身份验证。

对于 Vertex AI 模型,Distributed Cloud 服务账号用于进行身份验证。对于其他模型,在 Secret Manager 中作为 Secret 存储的 API 密钥或不记名令牌可与 google_ml.create_sm_secret() SQL 函数搭配使用。

下表显示了您可以设置的身份验证类型:

身份验证方法 在函数中设置为… 模型提供商
Distributed Cloud 服务代理 alloydb_service_agent_iam Vertex AI 提供商
Secret Manager secret_manager 第三方提供商

预测函数

google_ml_integration 扩展程序包含以下预测函数:

google_ml.embedding()
用于调用已注册的文本嵌入模型端点以生成嵌入。它包含对 Vertex AI 的 textembedding-gecko 模型的内置支持。
对于不提供内置支持的文本嵌入模型,输入和输出参数是模型所特有的,需要进行转换,才能让函数调用模型。创建一个转换输入函数,以将预测函数的输入转换为模型特有的输入,并创建一个转换输出函数,以将模型特有的输出转换为预测函数输出。
google_ml.predict_row()
用于调用已注册的通用模型端点(只要它们支持基于 JSON 的 API)以调用预测。

转换函数

转换函数会将输入内容修改为模型可理解的格式,并将模型响应转换为预测函数所需的格式。在注册没有内置支持的 text-embedding 模型端点时,会使用转换函数。转换函数的签名取决于模型类型的预测函数。

注册 generic 模型端点时,您无法使用转换函数。

以下示例展示了文本嵌入模型的预测函数签名:

// define custom model specific input/output transform functions.
CREATE OR REPLACE FUNCTION input_transform_function(model_id VARCHAR(100), input_text TEXT) RETURNS JSON;

CREATE OR REPLACE FUNCTION output_transform_function(model_id VARCHAR(100), response_json JSON) RETURNS real[];

HTTP 标头生成函数

HTTP 标头生成函数会以 JSON 键值对的形式生成输出,这些键值对会用作 HTTP 标头。预测函数的签名定义了标头生成函数的签名。

以下示例展示了 google_ml.embedding() 预测函数的签名。

CREATE OR REPLACE FUNCTION generate_headers(model_id VARCHAR(100), input TEXT) RETURNS JSON;

对于 google_ml.predict_row() 预测函数,签名如下所示:

CREATE OR REPLACE FUNCTION generate_headers(model_id VARCHAR(100), input JSON) RETURNS JSON;

注册模型

如需使用模型调用预测或生成嵌入,请向模型端点管理注册模型端点。

如需详细了解 google_ml.create_model() 函数,请参阅模型端点管理参考文档

如果您的模型端点需要身份验证,则在向模型端点管理注册模型端点之前,您必须启用 google_ml_integration 扩展程序并根据模型提供商设置身份验证。

请务必使用 postgres 默认用户名来访问您的数据库。

设置身份验证

以下部分介绍了如何在添加 Vertex AI 模型端点或其他提供商提供的模型端点之前设置身份验证。

设置 Vertex AI 身份验证

如需使用 Google Vertex AI 模型端点,您必须向在安装 AlloyDB Omni 时使用的服务账号添加 Vertex AI 权限。

为其他模型提供商设置身份验证

对于除 Vertex AI 模型以外的所有模型,您都可以将 API 密钥或不记名令牌存储在 Secret Manager 中。如果您的模型端点不通过 Secret Manager 处理身份验证,则此步骤是可选的(例如,如果您的模型端点使用 HTTP 标头来传递身份验证信息,或者根本不使用身份验证)。

本部分介绍了如何在使用 Secret Manager 时设置身份验证。

如需创建和使用 API 密钥或不记名令牌,请完成以下步骤:

  1. 在 Secret Manager 中创建 Secret。

    Secret 名称和 Secret 路径会在 google_ml.create_sm_secret() SQL 函数中使用。

  2. 向 Distributed Cloud 集群授予访问 Secret 的权限。

      gcloud secrets add-iam-policy-binding 'SECRET_ID' \
          --member="serviceAccount:SERVICE_ACCOUNT_ID" \
          --role="roles/secretmanager.secretAccessor"
    

    替换以下内容:

    • SECRET_ID:Secret Manager 中的 Secret ID。
    • SERVICE_ACCOUNT_ID:您在上一步中创建的服务账号的 ID。确保此账号与您在安装 AlloyDB Omni 期间使用的账号相同。其中包括完整的 PROJECT_ID.iam.gserviceaccount.com 后缀。例如:my-service@my-project.iam.gserviceaccount.com

      您还可以在项目级层向服务账号授予此角色。

生成嵌入

本部分介绍了一个预览版,您可以使用该预览版试验注册 AI 模型端点并使用模型端点管理调用预测。

在模型端点管理中添加并注册模型端点后,您可以使用模型 ID 引用它们以生成嵌入。

准备工作

确保您已使用模型端点管理注册模型端点。

生成嵌入

使用 google_ml.embedding() SQL 函数调用已注册的模型端点,并使用文本嵌入模型类型生成嵌入。

如需调用模型并生成嵌入,请使用以下 SQL 查询:

SELECT
  google_ml.embedding(
    model_id => 'MODEL_ID',
    content => 'CONTENT');

替换以下内容:

  • MODEL_ID:您在注册模型端点时定义的模型 ID。
  • CONTENT:要转换为向量嵌入的文本。

示例

本部分列出了一些使用已注册模型端点生成嵌入的示例。

具有内置支持的文本嵌入模型

如需为已注册的 textembedding-gecko@002 模型端点生成预测,请运行以下语句:

    SELECT
      google_ml.embedding(
        model_id => 'textembedding-gecko@002',
        content => 'AlloyDB is a managed, cloud-hosted SQL database service');

调用预测

本部分介绍了一个预览版,您可以使用该预览版试验注册 AI 模型端点并使用模型端点管理调用预测。

在模型端点管理中添加并注册模型端点后,您可以使用模型 ID 引用它们以调用预测。

准备工作

确保您已使用模型端点管理注册模型端点。

调用通用模型的预测

使用 google_ml.predict_row() SQL 函数调用已注册的通用模型端点,以调用预测。您可以将 google_ml.predict_row() 函数与任何模型类型搭配使用。

SELECT
  google_ml.predict_row(
    model_id => 'MODEL_ID',
    request_body => 'REQUEST_BODY');

替换以下内容:

  • MODEL_ID:您在注册模型端点时定义的模型 ID。
  • REQUEST_BODY:预测函数的参数,采用 JSON 格式。

示例

本部分列出了一些使用已注册模型端点调用预测的示例。

如需为已注册的 gemini-pro 模型端点生成预测,请运行以下语句:

    SELECT
        json_array_elements(
        google_ml.predict_row(
            model_id => 'gemini-pro',
            request_body => '{
        "contents": [
            {
                "role": "user",
                "parts": [
                    {
                        "text": "For TPCH database schema as mentioned here https://www.tpc.org/TPC_Documents_Current_Versions/pdf/TPC-H_v3.0.1.pdf , generate a SQL query to find all supplier names which are located in the India nation."
                    }
                ]
            }
        ]
        }'))-> 'candidates' -> 0 -> 'content' -> 'parts' -> 0 -> 'text';

模型端点管理 API 参考文档

本部分列出了 google_ml_integration 扩展程序提供的用于注册和管理模型端点的不同函数的参数,以及用于模型端点管理的 Secret。

您必须先将 google_ml_integration.enable_model_support 数据库标志设置为 on,然后才能开始使用该扩展程序。

模型

请参阅此参考文档,了解可让您管理模型端点的函数的参数。

google_ml.create_model() 函数

以下示例展示了如何调用用于注册模型端点元数据的 google_ml.create_model() SQL 函数:

  CALL
    google_ml.create_model(
      model_id => 'MODEL_ID',
      model_request_url => 'REQUEST_URL',
      model_provider => 'PROVIDER_ID',
      model_type => 'MODEL_TYPE',
      model_qualified_name => 'MODEL_QUALIFIED_NAME',
      model_auth_type => 'AUTH_TYPE',
      model_auth_id => 'AUTH_ID',
      generate_headers_fn => 'GENERATE_HEADER_FUNCTION',
      model_in_transform_fn => 'INPUT_TRANSFORM_FUNCTION',
      model_out_transform_fn => 'OUTPUT_TRANSFORM_FUNCTION');
参数 必需 说明
MODEL_ID 所有模型端点都必须包含此字段 您定义的模型端点的唯一 ID。
REQUEST_URL 对于具有内置支持的其他文本嵌入模型端点是可选的 添加其他文本嵌入和通用模型端点时,相应模型的端点。 对于 AlloyDB for PostgreSQL,请提供 https 网址。

函数为内置模型端点生成的请求网址会引用集群的项目和区域或位置。如果您要引用其他项目,请确保明确指定 model_request_url

对于自定义托管的模型端点,请确保可从 Distributed Cloud 所在的网络访问模型端点。
PROVIDER_ID 内置支持的文本嵌入模型端点需要使用此值 模型端点的提供方。默认值为 custom

设置为以下值之一:
  • google(适用于 Vertex AI 模型端点)
  • custom(适用于其他提供方)
MODEL_TYPE 对于通用模型端点,此字段是可选的 模型类型。

设置为以下值之一:
  • text_embedding(适用于文本嵌入模型端点)
  • generic(适用于所有其他模型端点)
MODEL_QUALIFIED_NAME 对于具有内置支持的文本嵌入模型是必需的;对于其他模型端点是可选的 具有内置支持的文本嵌入模型的完全限定名称。
AUTH_TYPE 可选,除非模型端点有特定的身份验证要求 模型端点使用的身份验证类型。

对于 Vertex AI 模型,您可以将其设置为 alloydb_service_agent_iam;对于其他提供方(如果它们使用 Secret Manager 进行身份验证),您可以将其设置为 secret_manager

如果您使用身份验证标头,则无需设置此值。
AUTH_ID 对于 Vertex AI 模型端点,请勿设置此属性;但对于所有将 Secret 存储在 Secret Manager 中的其他模型端点,必须设置此属性。 您设置的秘密 ID,随后在注册模型端点时会使用该 ID。
GENERATE_HEADER_FUNCTION 可选 生成自定义标头的函数的名称。

此函数的签名取决于您使用的预测函数。
INPUT_TRANSFORM_FUNCTION 对于具有内置支持的文本嵌入模型端点是可选的;但对于通用模型端点,请勿设置 用于将相应预测函数的输入转换为特定于模型的输入的函数。
OUTPUT_TRANSFORM_FUNCTION 对于具有内置支持的文本嵌入模型端点是可选的;但对于通用模型端点,请勿设置 用于将模型专用输出转换为预测函数输出的函数。

google_ml.alter_model()

以下示例展示了如何调用用于更新模型端点元数据的 google_ml.alter_model() SQL 函数:

    CALL
    google_ml.alter_model(
      model_id => 'MODEL_ID',
      model_request_url => 'REQUEST_URL',
      model_provider => 'PROVIDER_ID',
      model_type => 'MODEL_TYPE',
      model_qualified_name => 'MODEL_QUALIFIED_NAME',
      model_auth_type => 'AUTH_TYPE',
      model_auth_id => 'AUTH_ID',
      generate_headers_fn => 'GENERATE_HEADER_FUNCTION',
      model_in_transform_fn => 'INPUT_TRANSFORM_FUNCTION',
      model_out_transform_fn => 'OUTPUT_TRANSFORM_FUNCTION');

如需了解您必须为每个参数设置的值,请参阅创建模型

google_ml.drop_model() 函数

以下示例展示了如何调用用于删除模型端点的 google_ml.drop_model() SQL 函数:

  CALL google_ml.drop_model('MODEL_ID');
参数 说明
MODEL_ID 您定义的模型端点的唯一 ID。

google_ml.list_model() 函数

以下代码展示了如何调用用于列出模型端点信息的 google_ml.list_model() SQL 函数:

  SELECT google_ml.list_model('MODEL_ID');
参数 说明
MODEL_ID 您定义的模型端点的唯一 ID。

google_ml.model_info_view 视图

以下示例展示了如何调用 google_ml.model_info_view 视图,该视图用于列出所有模型端点的模型端点信息:

  SELECT * FROM google_ml.model_info_view;

Secret

请参阅此参考文档,了解可让您管理 Secret 的函数的参数。

google_ml.create_sm_secret() 函数

以下示例展示了如何调用 google_ml.create_sm_secret() SQL 函数,该函数用于添加在 Secret Manager 中创建的 Secret:

    CALL
    google_ml.create_sm_secret(
      secret_id => 'SECRET_ID',
      secret_path => 'projects/project-id/secrets/SECRET_MANAGER_SECRET_ID/versions/VERSION_NUMBER');
参数 说明
SECRET_ID 您设置的秘密 ID,随后在注册模型端点时会使用该 ID。
PROJECT_ID 包含 Secret 的 Google Cloud 项目的 ID。此项目可以与包含 AlloyDB for PostgreSQL 集群的项目不同。

对于 AlloyDB Omni,包含 Secret 的 Google Cloud 项目的 ID。
SECRET_MANAGER_SECRET_ID 您创建 Secret 时在 Secret Manager 中设置的 Secret ID。
VERSION_NUMBER Secret ID 的版本号。

google_ml.alter_sm_secret() 函数

以下示例展示了如何调用用于更新 Secret 信息的 google_ml.alter_sm_secret() SQL 函数:

  CALL
    google_ml.alter_sm_secret(
      secret_id => 'SECRET_ID',
      secret_path => 'projects/project-id/secrets/SECRET_MANAGER_SECRET_ID/versions/VERSION_NUMBER');

如需了解您必须为每个参数设置的值,请参阅创建 Secret

google_ml.drop_sm_secret() 函数

以下示例展示了如何调用用于删除 Secret 的 google_ml.drop_sm_secret() SQL 函数:

  CALL google_ml.drop_sm_secret('SECRET_ID');
参数 说明
SECRET_ID 您设置的 Secret ID,随后在注册模型端点时使用该 ID。

预测函数

使用此参考文档了解可让您生成嵌入或调用预测的函数的参数。

google_ml.embedding() 函数

以下示例展示了如何生成嵌入:

SELECT
  google_ml.embedding(
    model_id => 'MODEL_ID',
    contents => 'CONTENT');
参数 说明
MODEL_ID 您定义的模型端点的唯一 ID。
CONTENT 要转换为向量嵌入的文本。

google_ml.predict_row() 函数

以下示例展示了如何调用预测:

SELECT
  google_ml.predict_row(
    model_id => 'MODEL_ID',
    request_body => 'REQUEST_BODY');
参数 说明
MODEL_ID 您定义的模型端点的唯一 ID。
REQUEST_BODY 预测函数的参数,采用 JSON 格式。

转换函数

请参阅此参考文档,了解输入和输出转换函数的参数。

输入转换函数

下方显示了文本嵌入模型端点的预测函数签名:

  CREATE OR REPLACE FUNCTION INPUT_TRANSFORM_FUNCTION(model_id VARCHAR(100), input_text TEXT) RETURNS JSON;
参数 说明
INPUT_TRANSFORM_FUNCTION 用于将相应预测函数的输入转换为模型端点专用输入的函数。

输出转换函数

下方显示了文本嵌入模型端点的预测函数签名:

  CREATE OR REPLACE FUNCTION OUTPUT_TRANSFORM_FUNCTION(model_id VARCHAR(100), response_json JSON) RETURNS real[];
参数 说明
OUTPUT_TRANSFORM_FUNCTION 用于将模型端点专用输出转换为预测函数输出的函数。

转换函数示例

如需更好地了解如何为模型端点创建转换函数,请考虑需要 JSON 输入和输出的自定义托管文本嵌入模型端点。

以下示例 cURL 请求会根据提示和模型端点创建嵌入:

  curl -m 100 -X POST https://cymbal.com/models/text/embeddings/v1 \
    -H "Content-Type: application/json"
    -d '{"prompt": ["AlloyDB Embeddings"]}'

系统会返回以下示例响应:

[[ 0.3522231  -0.35932037  0.10156056  0.17734447 -0.11606089 -0.17266059
   0.02509351  0.20305622 -0.09787305 -0.12154685 -0.17313677 -0.08075467
   0.06821183 -0.06896557  0.1171584  -0.00931572  0.11875633 -0.00077482
   0.25604948  0.0519384   0.2034983  -0.09952664  0.10347155 -0.11935943
  -0.17872004 -0.08706985 -0.07056875 -0.05929353  0.4177883  -0.14381726
   0.07934926  0.31368294  0.12543282  0.10758053 -0.30210832 -0.02951015
   0.3908268  -0.03091059  0.05302926 -0.00114946 -0.16233777  0.1117468
  -0.1315904   0.13947351 -0.29569918 -0.12330773 -0.04354299 -0.18068913
   0.14445548  0.19481727]]

根据此输入和响应,我们可以推断出以下内容:

  • 该模型需要通过 prompt 字段输入 JSON。此字段接受输入数组。由于 google_ml.embedding() 函数是行级函数,因此它需要一次输入一个文本。因此,您需要创建一个输入转换函数,以构建包含单个元素的数组。

  • 模型的响应是嵌入数组,每个提示输入到模型中都有一个嵌入。由于 google_ml.embedding() 函数是行级函数,因此它一次只返回一个输入。因此,您需要创建一个输出转换函数,该函数可用于从数组中提取嵌入。

以下示例展示了在模型端点注册到模型端点管理时,此模型端点使用的输入和输出转换函数:

输入转换函数

CREATE OR REPLACE FUNCTION cymbal_text_input_transform(model_id VARCHAR(100), input_text TEXT)
RETURNS JSON
LANGUAGE plpgsql
AS $$
DECLARE
  transformed_input JSON;
  model_qualified_name TEXT;
BEGIN
  SELECT json_build_object('prompt', json_build_array(input_text))::JSON INTO transformed_input;
  RETURN transformed_input;
END;
$$;

输出转换函数

CREATE OR REPLACE FUNCTION cymbal_text_output_transform(model_id VARCHAR(100), response_json JSON)
RETURNS REAL[]
LANGUAGE plpgsql
AS $$
DECLARE
  transformed_output REAL[];
BEGIN
SELECT ARRAY(SELECT json_array_elements_text(response_json->0)) INTO transformed_output;
RETURN transformed_output;
END;
$$;

HTTP 标头生成函数

以下代码显示了标头生成函数的签名,该函数可在注册其他文本嵌入模型端点时与 google_ml.embedding() 预测函数搭配使用。

  CREATE OR REPLACE FUNCTION GENERATE_HEADERS(model_id VARCHAR(100), input_text TEXT) RETURNS JSON;

对于 google_ml.predict_row() 预测函数,签名如下所示:

CREATE OR REPLACE FUNCTION GENERATE_HEADERS(model_id TEXT, input JSON) RETURNS JSON;
参数 说明
GENERATE_HEADERS 用于生成自定义标头的函数。您还可以在注册模型端点时传递由标头生成函数生成的授权标头。

标头生成函数示例

如需更好地了解如何创建用于生成 JSON 键值对输出(用作 HTTP 标头)的函数,请考虑使用自定义托管的文本嵌入模型端点。

以下示例 cURL 请求会传递 version HTTP 标头,该标头由模型端点使用:

  curl -m 100 -X POST https://cymbal.com/models/text/embeddings/v1 \
      -H "Content-Type: application/json" \
      -H "version: 2024-01-01" \
      -d '{"prompt": ["AlloyDB Embeddings"]}'

该模型需要通过 version 字段输入文本,并以 JSON 格式返回版本值。以下示例展示了在向模型端点管理注册此文本嵌入模型端点时,为此文本嵌入模型端点使用的标头生成函数:

CREATE OR REPLACE FUNCTION header_gen_fn(model_id VARCHAR(100), input_text TEXT)
RETURNS JSON
LANGUAGE plpgsql
AS $$
BEGIN
  RETURN json_build_object('version', '2024-01-01')::JSON;
END;
$$;

使用 API 密钥的标头生成函数

以下示例展示了如何使用 API 密钥设置身份验证。

嵌入模型

CREATE OR REPLACE FUNCTION header_gen_func(
  model_id VARCHAR(100),
  input_text TEXT
)
RETURNS JSON
LANGUAGE plpgsql
AS $$
#variable_conflict use_variable
BEGIN
  RETURN json_build_object('Authorization', 'API_KEY')::JSON;
END;
$$;

API_KEY 替换为模型提供方的 API 密钥。

通用模型

CREATE OR REPLACE FUNCTION header_gen_func(
  model_id VARCHAR(100),
  response_json JSON
)
RETURNS JSON
LANGUAGE plpgsql
AS $$
#variable_conflict use_variable
DECLARE
transformed_output REAL[];
BEGIN
  -- code to add Auth token to API request
RETURN json_build_object('x-api-key', 'API_KEY', 'model-version', '2023-06-01')::JSON;
END;
$$;

API_KEY 替换为模型提供方的 API 密钥。

请求网址生成

使用请求网址生成函数推断内置支持的模型端点的请求网址。以下代码显示了此函数的签名:

CREATE OR REPLACE FUNCTION GENERATE_REQUEST_URL(provider google_ml.model_provider, model_type google_ml.MODEL_TYPE, model_qualified_name VARCHAR(100), model_region VARCHAR(100) DEFAULT NULL)
参数 说明
GENERATE_REQUEST_URL 用于生成扩展程序为内置支持的模型端点生成的请求网址的函数。

支持的模型

您可以使用模型端点管理功能注册任何文本嵌入或通用模型端点。模型端点管理还包括预注册的 Vertex AI 模型和具有内置支持的模型。

预注册的 Vertex AI 模型

模型类型 模型 ID 扩展程序版本
generic
  • gemini-1.5-pro:streamGenerateContent
  • gemini-1.5-pro:generateContent
  • gemini-1.0-pro:generateContent
1.4.2 版及更高版本
text_embedding
  • textembedding-gecko
  • text-embedding-gecko@001
1.3 版及更高版本

具有内置支持的模型

Vertex AI

限定模型名称 模型类型
text-embedding-gecko@001 text-embedding
text-embedding-gecko@003 text-embedding
text-embedding-004 text-embedding
text-embedding-preview-0815 text-embedding
text-multilingual-embedding-002 text-embedding