Complemento de Vertex AI

El complemento de Vertex AI proporciona interfaces para varios modelos de IA generativa de Google a través de la API de Vertex AI:

  • Generación de texto con Gemini 1.0 Pro y Gemini 1.0 Pro Vision
  • Generación de imágenes de Imagen2
  • Generación de incorporaciones de texto de Gecko

También proporciona acceso a un subconjunto de métricas de evaluación a través de la API de Rapid Evaluation de Vertex AI.

Instalación

npm i --save @genkit-ai/vertexai

Si quieres ejecutar localmente flujos que usan este complemento, también necesitas el Tener instalada la herramienta Google Cloud CLI

Configuración

Para usar este complemento, especifícalo cuando llames a configureGenkit():

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

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

El complemento requiere que especifiques el ID del proyecto de Google Cloud, la región a la que deseas realizar solicitudes a la API de Vertex y las credenciales de tu proyecto de Google Cloud.

  • Puedes especificar el ID del proyecto de Google Cloud configurando projectId en la configuración de vertexAI() o mediante el entorno de GCLOUD_PROJECT de salida. Si ejecutas tu flujo desde un entorno de Google Cloud (Cloud Cloud Functions, Cloud Run, etc.), GCLOUD_PROJECT se establece automáticamente en el ID de proyecto del entorno.

  • Puedes especificar la ubicación de la API configurando location en Configuración de vertexAI() o del entorno GCLOUD_LOCATION de salida.

  • Para proporcionar las credenciales de la API, debes configurar las credenciales predeterminadas de la aplicación de Google Cloud.

    1. Para especificar tus credenciales, haz lo siguiente:

      • Si ejecutas tu flujo desde un entorno de Google Cloud (Cloud Functions, Cloud Run, etc.), esto se configura automáticamente.

      • En tu entorno de desarrollo local, ejecuta el siguiente comando:

      gcloud auth application-default login
      
    2. Además, asegúrate de que la cuenta tenga el rol de IAM Usuario de Vertex AI (roles/aiplatform.user). Consulta los documentos de control de acceso de Vertex AI.

Uso

Modelos de IA generativa

Este complemento exporta de forma estática referencias a sus modelos de IA generativa compatibles:

import { gemini15Flash, gemini15Pro, imagen2 } from '@genkit-ai/vertexai';

Puedes usar estas referencias para especificar qué modelo usa generate():

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

Este complemento también exporta estáticamente una referencia a la incorporación de texto de Gecko. modelo:

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

Puedes usar esta referencia para especificar qué embedder, un indexador o un retriever que la API usa. Por ejemplo, si usas Chroma DB:

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

También puedes generar una incorporación directamente:

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

Si tienes acceso a modelos de Claude 3 (haiku, sonnet u opus) en Model Garden de Vertex AI, puedes usarlos con Genkit.

Esta es una configuración de muestra para habilitar los modelos de Model Garden de Vertex AI:

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

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

Luego, úsalos como modelos normales:

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

Llama 3.1 405b en Model Garden de Vertex AI

Si tienes acceso a Llama 3.1 405b en Model Garden de Vertex AI, puedes usarlo con Genkit.

Esta es una configuración de muestra para habilitar los modelos de Model Garden de Vertex AI:

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

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

Luego, úsalo como modelos normales:

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

Evaluadores

Para usar los evaluadores de la evaluación rápida de Vertex AI, agrega un bloque evaluation a la configuración del complemento 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',
            },
          },
        ],
      },
    }),
  ],
  // ...
});

La configuración anterior agrega evaluadores para las métricas Safety y ROUGE. En el ejemplo, se muestran dos enfoques: la métrica Safety usa la especificación predeterminada, mientras que la métrica ROUGE proporciona una especificación personalizada que establece el tipo de marcador en rougeLsum.

Ambos evaluadores se pueden ejecutar con el comando genkit eval:run con un conjunto de datos compatible, es decir, un conjunto de datos con los campos output y reference. El evaluador Safety también se puede ejecutar con el comando genkit eval:flow -e vertexai/safety, ya que solo requiere un output.