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 de Gemini 1.0 Pro y Gemini 1.0 Pro Vision
  • Generación de imágenes de Imagen2
  • Generación de incorporaciones de texto de gecos

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

Instalación

npm i --save @genkit-ai/vertexai

Si deseas ejecutar flujos de forma local que usan este complemento, también debes 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 en la que deseas realizar las solicitudes a la API de Vertex y las credenciales de tu proyecto de Google Cloud.

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

  • Para especificar la ubicación de la API, configura location en la configuración vertexAI() o configura la variable de entorno GCLOUD_LOCATION.

  • Para proporcionar credenciales de 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 para hacer lo siguiente:

      gcloud auth application-default login
      
    2. Además, asegúrate de que la cuenta tenga el rol de IAM de 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 { geminiPro, geminiProVision, imagen2 } from '@genkit-ai/vertexai';

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

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

Este complemento también exporta de forma estática una referencia al modelo de incorporación de texto de Gecko:

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

Puedes usar esta referencia para especificar qué incorporado usa un indexador o un retriever. 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 Vertex AI Model Garden

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

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

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

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

Luego, úsalos como modelos normales:

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

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 color rojo en rougeLsum.

Ambos evaluadores se pueden ejecutar mediante 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.