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 penyematan teks Gecko

Vertex AI juga memberikan akses ke subkumpulan 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 perlu menginstal alat Google Cloud CLI.

Konfigurasi

Untuk menggunakan plugin ini, tentukan plugin ini 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 untuk menentukan project ID Google Cloud, region tempat Anda ingin membuat permintaan Vertex API, dan kredensial project Google Cloud Anda.

  • Anda dapat menentukan project ID Google Cloud dengan menetapkan projectId dalam konfigurasi vertexAI() atau dengan menetapkan variabel lingkungan GCLOUD_PROJECT. Jika Anda menjalankan flow dari lingkungan Google Cloud (Cloud Functions, Cloud Run, dan sebagainya), GCLOUD_PROJECT akan otomatis ditetapkan ke project ID lingkungan tersebut.

  • Anda dapat menentukan lokasi API dengan menetapkan location dalam konfigurasi vertexAI() atau dengan menetapkan variabel lingkungan GCLOUD_LOCATION.

  • 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), flow ini akan diatur secara otomatis.

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

      gcloud auth application-default login
      
    2. Selain itu, pastikan akun tersebut diberi peran IAM Pengguna Vertex AI (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 { geminiPro, geminiProVision, imagen2 } from '@genkit-ai/vertexai';

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

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

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

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

Anda dapat menggunakan referensi ini untuk menentukan penyemat mana yang digunakan oleh pengindeks atau pengambilanr. 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?',
});

Claude 3 Anthropic di Model Garden Vertex AI

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

Berikut contoh konfigurasi untuk mengaktifkan model Garden Model Vertex AI:

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

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

Kemudian gunakan sebagai model reguler:

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

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 tersebut menunjukkan dua pendekatan, yaitu 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.