Vertex AI 插件

Vertex AI 插件通过 Vertex AI API 为多个 Google 生成式 AI 模型提供了接口:

  • Gemini 1.0 Pro 和 Gemini 1.0 Pro Vision 文本生成
  • Imagen2 图像生成
  • Gecko 文本嵌入生成

此外,您还可以通过 Vertex AI Rapid Evaluation API 访问部分评估指标。

安装

npm i --save @genkit-ai/vertexai

如果要在本地运行使用此插件的流,还需要安装 Google Cloud CLI 工具

配置

如需使用此插件,请在调用 configureGenkit() 时指定该插件:

import { vertexAI } from '@genkit-ai/vertexai';

export default configureGenkit({
  plugins: [
    vertexAI({ projectId: 'your-cloud-project', location: 'us-central1' }),
  ],
  // ...
});

该插件要求您指定 Google Cloud 项目 ID、您要向其发出 Vertex API 请求的区域以及 Google Cloud 项目凭据。

  • 您可以通过在 vertexAI() 配置中设置 projectId 或通过设置 GCLOUD_PROJECT 环境变量来指定 Google Cloud 项目 ID。如果您是从 Google Cloud 环境(Cloud Functions、Cloud Run 等)运行流,则 GCLOUD_PROJECT 会自动设置为该环境的项目 ID。

  • 您可以通过在 vertexAI() 配置中设置 location 或通过设置 GCLOUD_LOCATION 环境变量来指定 API 位置。

  • 如需提供 API 凭据,您需要设置 Google Cloud 应用默认凭据。

    1. 如需指定您的凭据,请执行以下操作:

      • 如果您是从 Google Cloud 环境(Cloud Functions、Cloud Run 等)运行流,则系统会自动进行此设置。

      • 在本地开发环境中,运行以下命令来执行此操作:

      gcloud auth application-default login
      
    2. 此外,请确保向该账号授予 Vertex AI User IAM 角色 (roles/aiplatform.user)。请参阅 Vertex AI 访问权限控制文档。

用量

生成式 AI 模型

此插件会以静态方式将引用导出到其支持的生成式 AI 模型:

import { geminiPro, geminiProVision, imagen2 } from '@genkit-ai/vertexai';

您可以使用以下引用来指定 generate() 使用的模型:

const llmResponse = await generate({
  model: geminiPro,
  prompt: 'What should I do when I visit Melbourne?',
});

此插件还会静态导出对 Gecko 文本嵌入模型的引用:

import { textEmbeddingGecko } from '@genkit-ai/vertexai';

您可以使用此引用来指定索引器或检索器使用的嵌入器。例如,如果您使用 Chroma DB:

configureGenkit({
  plugins: [
    chroma([
      {
        embedder: textEmbeddingGecko,
        collectionName: 'my-collection',
      },
    ]),
  ],
});

或者,您可以直接生成嵌入:

// import { embed, EmbedderArgument } from '@genkit-ai/ai/embedder';
const embedding = await embed({
  embedder: textEmbeddingGecko,
  content: 'How many widgets do you have in stock?',
});

Vertex AI Model Garden 上的 Anthropic Claude 3

如果您可以在 Vertex AI Model Garden 中访问 Claude 3 模型(haikusonnetopus),则可以将它们与 Genkit 搭配使用。

以下是启用 Vertex AI Model Garden 模型的配置示例:

import {
  vertexAI,
  claude3Haiku,
  claude3Sonnet,
  claude3Opus,
} from '@genkit-ai/vertexai';

export default configureGenkit({
  plugins: [
    vertexAI({
      location: 'us-central1',
      modelGardenModels: [claude3Haiku, claude3Sonnet, claude3Opus],
    }),
  ],
});

然后,将其用作常规模型:

const llmResponse = await generate({
  model: claude3Sonnet,
  prompt: 'What should I do when I visit Melbourne?',
});

评估程序

如需使用 Vertex AI Rapid Evaluation 中的评估器,请在您的 vertexAI 插件配置中添加 evaluation 代码块。

import { vertexAI, VertexAIEvaluationMetricType } from '@genkit-ai/vertexai';

export default configureGenkit({
  plugins: [
    vertexAI({
      projectId: 'your-cloud-project',
      location: 'us-central1',
      evaluation: {
        metrics: [
          VertexAIEvaluationMetricType.SAFETY,
          {
            type: VertexAIEvaluationMetricType.ROUGE,
            metricSpec: {
              rougeType: 'rougeLsum',
            },
          },
        ],
      },
    }),
  ],
  // ...
});

上面的配置添加了 SafetyROUGE 指标的评估器。该示例展示了两种方法:Safety 指标使用默认规范,而 ROUGE 指标则提供将 rouge 类型设置为 rougeLsum 的自定义规范。

两个评估器都可以使用 genkit eval:run 命令与兼容的数据集(即包含 outputreference 字段的数据集)一起运行。您也可以使用 genkit eval:flow -e vertexai/safety 命令运行 Safety 评估器,因为它只需要 output