Vertex AI 插件

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

  • 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、 region [地区] 您的 Google Cloud 项目 凭据。

  • 您可以通过在以下位置设置 projectId 来指定 Google Cloud 项目 ID: vertexAI() 配置,或通过设置 GCLOUD_PROJECT 环境 变量。如果您从 Google Cloud 环境 函数、Cloud Run 等),则 GCLOUD_PROJECT 会自动设置为 环境的项目 ID。

  • 您可以通过在location vertexAI() 配置,或通过设置 GCLOUD_LOCATION 环境 变量。

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

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

      • 如果您要从 Google Cloud 环境(Cloud Functions、Cloud Run 等)运行 flow,系统会自动设置。

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

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

用法

生成式 AI 模型

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

import { gemini15Flash, gemini15Pro, imagen2 } from '@genkit-ai/vertexai';

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

const llmResponse = await generate({
  model: gemini15Flash,
  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 模型(俳句诗sonnetopus),则可以将这些模型与 Genkit 结合使用。

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

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

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

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

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

Vertex AI Model Garden 上的 Llama 3.1 405b

如果您可以在 Vertex AI Model Garden 中访问 Llama 3.1 405b,则可以将其与 Genkit 搭配使用。

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

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

export default configureGenkit({
  plugins: [
    vertexAI({
      location: 'us-central1',
      modelGarden: {
        models: [llama3],
      },
    }),
  ],
});

然后将其用作常规模型:

const llmResponse = await generate({
  model: llama3,
  prompt: 'Write a function that adds two numbers together',
});

评估程序

如需使用 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