Wtyczka Vertex AI

Wtyczka Vertex AI udostępnia interfejsy Vertex AI API do kilku modeli generatywnej AI od Google:

  • Generowanie tekstu w Gemini 1.0 Pro i Gemini 1.0 Pro Vision
  • Generowanie obrazu Imagen2
  • Generowanie wektora dystrybucyjnego Gekon

Zapewnia też dostęp do podzbioru wskaźników oceny za pomocą interfejsu Vertex AI Rapid Evaluation API.

Instalacja

npm i --save @genkit-ai/vertexai

Jeśli chcesz lokalnie uruchamiać przepływy korzystające z tej wtyczki, musisz też zainstalować narzędzie Google Cloud CLI.

Konfiguracja

Aby używać tej wtyczki, określ ją, gdy wywołujesz configureGenkit():

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

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

Wtyczka wymaga podania identyfikatora projektu Google Cloud, regionu, do którego mają być wysyłane żądania do interfejsu Vertex API, oraz danych logowania do projektu Google Cloud.

  • Możesz określić identyfikator projektu Google Cloud przez ustawienie atrybutu projectId w konfiguracji vertexAI() lub przez ustawienie zmiennej środowiskowej GCLOUD_PROJECT. Jeśli uruchamiasz przepływ ze środowiska Google Cloud (funkcji w Cloud Functions, Cloud Run itp.), parametr GCLOUD_PROJECT jest automatycznie ustawiany na identyfikator projektu tego środowiska.

  • Lokalizacja interfejsu API możesz określić za pomocą ustawienia location w konfiguracji vertexAI() lub zmiennej środowiskowej GCLOUD_LOCATION.

  • Aby podać dane logowania do interfejsu API, musisz skonfigurować domyślne dane logowania do aplikacji Google Cloud.

    1. Aby podać dane logowania:

      • Jeśli uruchamiasz przepływ ze środowiska Google Cloud (funkcji w Cloud Functions, Cloud Run itp.), to ustawienie jest ustawione automatycznie.

      • W lokalnym środowisku programistycznym uruchom to polecenie:

      gcloud auth application-default login
      
    2. Sprawdź też, czy do konta została przypisana rola użytkownika Vertex AI (roles/aiplatform.user). Zapoznaj się z dokumentacją dotyczącą kontroli dostępu Vertex AI.

Wykorzystanie

Modele generatywnej AI

Ta wtyczka statycznie eksportuje odwołania do obsługiwanych przez nią modeli generatywnej AI:

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

Korzystając z tych odwołań, możesz określić, którego modelu używa generate():

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

Ta wtyczka statycznie eksportuje też odwołanie do modelu osadzania tekstu Gekon:

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

Możesz użyć tego odwołania, aby określić, z którego mechanizmu umieszczenia będzie korzystać indekser lub retriever. Jeśli na przykład używasz bazy danych Chroma:

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

Wektor dystrybucyjny możesz też wygenerować bezpośrednio:

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

Antropikalny Claude 3 w bazie modeli Vertex AI

Jeśli masz dostęp do modeli Claude 3 (haiku, sonnet lub opus) w bazie modeli Vertex AI, możesz ich używać w połączeniu z Genkit.

Przykładowa konfiguracja umożliwiająca włączanie modeli bazy modeli Vertex AI:

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

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

Następnie użyj ich jako zwykłych modeli:

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

Weryfikatorzy

Aby korzystać z weryfikatorów z Vertex AI Rapid Evaluation, dodaj blok evaluation do konfiguracji wtyczki vertexAI.

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

Powyższa konfiguracja dodaje weryfikatora wskaźników Safety i ROUGE. Przykład pokazuje 2 podejścia – dane Safety korzystają ze specyfikacji domyślnej, a dane ROUGE zawierają specyfikację niestandardową, która ustawia typ wskaźnika na rougeLsum.

Oba weryfikatory można uruchomić za pomocą polecenia genkit eval:run ze zgodnym zbiorem danych, czyli ze zbiorem danych z polami output i reference. Weryfikator Safety można też uruchomić za pomocą polecenia genkit eval:flow -e vertexai/safety, ponieważ wymaga ono tylko output.