Plug-in da Vertex AI

O plug-in da Vertex AI fornece interfaces para vários modelos de IA generativa do Google usando a API Vertex AI:

  • Geração de texto Gemini 1.0 Pro e Gemini 1.0 Pro Vision
  • Geração de imagens da Imagen2
  • Geração de embedding de texto Gecko

Ela também fornece acesso ao subconjunto de métricas de avaliação pela API Rapid Evaluation da Vertex AI.

Instalação

npm i --save @genkit-ai/vertexai

Se você quiser executar localmente fluxos que usam esse plug-in, também precisará instalar a ferramenta Google Cloud CLI.

Configuração

Para usar esse plug-in, especifique-o ao chamar configureGenkit():

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

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

O plug-in exige que você especifique o ID do projeto do Google Cloud, a região em que quer fazer solicitações da API Vertex e as credenciais do projeto do Google Cloud.

  • É possível especificar o ID do projeto do Google Cloud definindo projectId na configuração vertexAI() ou definindo a variável de ambiente GCLOUD_PROJECT. Se você estiver executando seu fluxo de um ambiente do Google Cloud (Cloud Functions, Cloud Run e assim por diante), GCLOUD_PROJECT será definido automaticamente como o ID do projeto do ambiente.

  • É possível especificar o local da API definindo location na configuração de vertexAI() ou definindo a variável de ambiente GCLOUD_LOCATION.

  • Para fornecer credenciais de API, você precisa configurar o Application Default Credentials do Google Cloud.

    1. Para especificar suas credenciais:

      • Se você estiver executando seu fluxo em um ambiente do Google Cloud (Cloud Functions, Cloud Run etc.), ele será definido automaticamente.

      • No seu ambiente de desenvolvimento local, execute o seguinte comando:

      gcloud auth application-default login
      
    2. Além disso, verifique se a conta recebeu o papel do IAM de usuário da Vertex AI (roles/aiplatform.user). Consulte os documentos de controle de acesso da Vertex AI.

Uso

Modelos de IA generativa

Este plug-in exporta estaticamente referências aos modelos de IA generativa compatíveis:

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

Use essas referências para especificar qual modelo generate() usa:

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

Esse plug-in também exporta estaticamente uma referência ao modelo de embedding de texto Gecko:

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

Use essa referência para especificar qual incorporador é usado por um indexador ou recuperador. Por exemplo, se você usar o Chroma DB:

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

Também é possível gerar um embedding diretamente:

// 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 no Vertex AI Model Garden

Se você tiver acesso aos modelos Claude 3 (haiku, sonnet ou opus) no Vertex AI Model Garden, é possível usá-los com o Genkit.

Confira um exemplo de configuração para ativar modelos do Grupo de modelos da Vertex AI:

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

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

Em seguida, use-os como modelos regulares:

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

Avaliadores

Para usar os avaliadores da avaliação rápida da Vertex AI, adicione um bloco evaluation à configuração do plug-in 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',
            },
          },
        ],
      },
    }),
  ],
  // ...
});

A configuração acima adiciona avaliadores para as métricas Safety e ROUGE. O exemplo mostra duas abordagens: a métrica Safety usa a especificação padrão, enquanto a métrica ROUGE fornece uma especificação personalizada que define o tipo de medidor como rougeLsum.

Ambos os avaliadores podem ser executados usando o comando genkit eval:run com um conjunto de dados compatível, ou seja, um conjunto de dados com os campos output e reference. O avaliador Safety também pode ser executado usando o comando genkit eval:flow -e vertexai/safety, já que ele requer apenas um output.