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 專案憑證。

  • 您可以指定 Google Cloud 專案 ID,方法是在 vertexAI() 設定中設定 projectId,或是設定 GCLOUD_PROJECT 環境變數。如果您是透過 Google Cloud 環境 (Cloud Functions、Cloud Run 等) 執行流程,GCLOUD_PROJECT 會自動設為環境的專案 ID。

  • 您可以指定 API 位置,方法是在 vertexAI() 設定中設定 location,或是設定 GCLOUD_LOCATION 環境變數。

  • 如要提供 API 憑證,您必須設定 Google Cloud 應用程式預設憑證。

    1. 如何指定憑證:

      • 如果您是在 Google Cloud 環境 (Cloud Functions、Cloud Run 等) 執行流程,系統會自動設定此設定。

      • 在本機開發環境中執行下列指令:

      gcloud auth application-default login
      
    2. 此外,請確認帳戶已獲得 Vertex AI 使用者 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 模型園地中的 Anthropic Claude 3

如果可以在 Vertex AI Model Garden 中存取 Claude 3 模型 (haikusonnetopus),就能搭配 Genkit 使用。

以下設定範例說明如何啟用 Vertex AI 模型園地模型:

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 欄位的資料集。由於 Safety 評估工具只需要 output,您也可以使用 genkit eval:flow -e vertexai/safety 指令執行評估工具。