Plugin Vertex AI

Plugin Vertex AI menyediakan antarmuka ke beberapa model AI generatif Google melalui Vertex AI API:

  • Pembuatan teks Gemini 1.0 Pro dan Gemini 1.0 Pro Vision
  • Pembuatan gambar Imagen2
  • Pembuatan embedding teks tokek

Program ini juga memberikan akses ke sebagian metrik evaluasi melalui Rapid Evaluation API Vertex AI.

Penginstalan

npm i --save @genkit-ai/vertexai

Jika ingin menjalankan alur yang menggunakan plugin ini secara lokal, Anda juga memerlukan Google Cloud CLI tool.

Konfigurasi

Untuk menggunakan plugin ini, tentukan saat Anda memanggil configureGenkit():

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

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

Plugin ini mengharuskan Anda menentukan project ID Google Cloud, region tempat Anda ingin membuat permintaan Vertex API, dan kredensial project Google Cloud Anda.

  • Anda dapat menentukan ID project Google Cloud dengan menyetel projectId di konfigurasi vertexAI() atau dengan menetapkan lingkungan GCLOUD_PROJECT variabel. Jika Anda menjalankan alur dari lingkungan Google Cloud (Cloud Functions, Cloud Run, dan sebagainya), GCLOUD_PROJECT secara otomatis disetel ke project ID lingkungan.

  • Anda dapat menentukan lokasi API dengan menyetel location di Konfigurasi vertexAI() atau dengan menetapkan lingkungan GCLOUD_LOCATION variabel.

  • Untuk memberikan kredensial API, Anda perlu menyiapkan Kredensial Default Aplikasi Google Cloud.

    1. Untuk menentukan kredensial Anda:

      • Jika Anda menjalankan flow dari lingkungan Google Cloud (Cloud Functions, Cloud Run, dan sebagainya), kredensial tersebut ditetapkan secara otomatis.

      • Di lingkungan pengembangan lokal Anda, lakukan hal ini dengan menjalankan:

      gcloud auth application-default login
      
    2. Selain itu, pastikan akun diberi peran IAM Vertex AI User (roles/aiplatform.user). Lihat dokumen kontrol akses Vertex AI.

Penggunaan

Model AI Generatif

Plugin ini secara statis mengekspor referensi ke model AI generatif yang didukungnya:

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

Anda dapat menggunakan referensi ini untuk menentukan model mana yang digunakan generate():

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

Plugin ini juga mengekspor referensi ke penyematan teks Gecko secara statis model:

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

Anda dapat menggunakan referensi ini untuk menentukan sematan mana dari pengindeks atau retriever pengguna. Misalnya, jika Anda menggunakan Chroma DB:

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

Atau Anda dapat membuat embedding secara langsung:

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

Anthropic Claude 3 di Vertex AI Model Garden

Jika Anda memiliki akses ke model Claude 3 (haiku, sonnet, atau opus) di Vertex AI Model Garden, Anda dapat menggunakannya dengan Genkit.

Berikut adalah contoh konfigurasi untuk mengaktifkan model 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],
      },
    }),
  ],
});

Kemudian gunakan sebagai model reguler:

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

Llama 3.1 405b di Vertex AI Model Garden

Pertama, Anda harus mengaktifkan Llama 3.1 API Service di Vertex AI Model Garden.

Berikut adalah contoh konfigurasi untuk Llama 3.1 405b di plugin Vertex AI:

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

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

Kemudian gunakan sebagai model reguler:

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

Evaluator

Untuk menggunakan evaluator dari Vertex AI Rapid Evaluation, tambahkan blok evaluation ke konfigurasi plugin vertexAI Anda.

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',
            },
          },
        ],
      },
    }),
  ],
  // ...
});

Konfigurasi di atas menambahkan evaluator untuk metrik Safety dan ROUGE. Contoh ini menunjukkan dua pendekatan - metrik Safety menggunakan spesifikasi default, sedangkan metrik ROUGE memberikan spesifikasi yang disesuaikan yang menetapkan jenis rouge ke rougeLsum.

Kedua evaluator dapat dijalankan menggunakan perintah genkit eval:run dengan set data yang kompatibel: yaitu set data dengan kolom output dan reference. Evaluator Safety juga dapat dijalankan menggunakan perintah genkit eval:flow -e vertexai/safety karena hanya memerlukan output.