Wtyczka Vertex AI

Wtyczka Vertex AI udostępnia interfejsy kilku modeli generatywnej AI Google za pomocą interfejsu Vertex AI API:

  • Generowanie tekstu Gemini 1.0 Pro i Gemini 1.0 Pro Vision
  • Generowanie obrazów Imagen2
  • Generacja osadzonego tekstu gekon

Zapewnia też dostęp do podzbioru wskaźników oceny przez interfejs Rapid Evaluation API w Vertex AI.

Instalacja

npm i --save @genkit-ai/vertexai

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

Konfiguracja

Aby użyć tej wtyczki, podaj ją podczas wywoływania funkcji 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 chcesz wysyłać żądania do interfejsu Vertex API, oraz danych logowania do projektu Google Cloud.

  • Identyfikator projektu Google Cloud możesz określić, ustawiając projectId w konfiguracji vertexAI() lub ustawiając zmienną środowiskową GCLOUD_PROJECT. Jeśli uruchamiasz przepływ ze środowiska Google Cloud (Cloud Functions, Cloud Run itd.), GCLOUD_PROJECT jest automatycznie ustawiany na identyfikator projektu środowiska.

  • Lokalizację interfejsu API możesz określić, ustawiając location w konfiguracji vertexAI() lub ustawiając zmienną środowiskową GCLOUD_LOCATION.

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

    1. Aby podać dane logowania:

      • Jeśli przepływ uruchamiasz ze środowiska Google Cloud (Cloud Functions, Cloud Run itd.), jest ustawiany automatycznie.

      • W lokalnym środowisku programistycznym uruchom polecenie:

      gcloud auth application-default login
      
    2. Sprawdź też, czy konto ma przypisaną rolę uprawnień użytkownika Vertex AI (roles/aiplatform.user). Zapoznaj się z dokumentacją kontroli dostępu Vertex AI.

Wykorzystanie

Modele generatywnej AI

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

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

Możesz użyć tych odwołań, aby określić, którego modelu generate() używa:

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

Ta wtyczka statycznie eksportuje też odwołanie do modelu umieszczania tekstu gekon:

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

Możesz użyć tego odwołania, aby określić, który mechanizm umieszczania ma być używany przez indekser lub moduł pobierania. Jeśli na przykład używasz bazy danych Chroma:

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

Możesz też wygenerować umieszczenie 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?',
});

Anthropic Claude 3 w bazie modeli Vertex AI

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

Oto przykładowa konfiguracja włączania 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żywaj ich jako zwykłych modeli:

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

Weryfikatorzy

Aby używać oceniających 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 weryfikatorów wskaźników Safety i ROUGE. W przykładzie użyto 2 metod: dane Safety wykorzystują domyślną specyfikację, a dane ROUGE – niestandardową specyfikację ustawiającą typ rouge na rougeLsum.

Oba wskaźniki można uruchamiać za pomocą polecenia genkit eval:run ze zgodnym zbiorem danych, czyli zbiorem danych z polami output i reference. Oceniający Safety możesz też uruchomić za pomocą polecenia genkit eval:flow -e vertexai/safety, ponieważ wymaga on tylko wartości output.