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 do Gemini 1.0 Pro e do Gemini 1.0 Pro Vision
  • Geração de imagens do Imagen2
  • Geração de embedding de texto do Gecko

Ele também fornece acesso ao subconjunto de métricas de avaliação por meio da API Rápida avaliação 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á do ferramenta CLI do Google Cloud instalada.

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 para a qual você quer fazer solicitações da API Vertex, e as credenciais do seu projeto do Google Cloud.

  • Para especificar o ID do projeto do Google Cloud, defina projectId no a configuração vertexAI() ou definindo o ambiente GCLOUD_PROJECT variável. Se você estiver executando seu fluxo em um ambiente do Google Cloud (Cloud Functions, Cloud Run e assim por diante), GCLOUD_PROJECT é definido automaticamente como ID do projeto do ambiente.

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

  • 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 e outros), isso é definido automaticamente.

      • No ambiente de desenvolvimento local, faça isso executando o seguinte:

      gcloud auth application-default login
      
    2. Além disso, confirme se a conta recebeu o papel do IAM de usuário da Vertex AI (roles/aiplatform.user). Consulte a documentação do 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 { gemini15Flash, gemini15Pro, imagen2 } from '@genkit-ai/vertexai';

É possível usar essas referências para especificar qual modelo o generate() usa:

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

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

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

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

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

Ou você pode 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 Model Garden da Vertex AI

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

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

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

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

Em seguida, use-os como modelos normais:

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

Llama 3.1 405b no Model Garden da Vertex AI

Se você tiver acesso ao Llama 3.1 405b no Vertex AI Model Garden, poderá usá-lo com o Genkit.

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

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

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

Em seguida, use-o como modelos normais:

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

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 rouge como rougeLsum.

Os dois avaliadores podem ser executados usando o comando genkit eval:run com um conjunto de dados compatível, ou seja, um conjunto 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.