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.
- BLEU
- VOZ
- Fluidez
- Seguridad
- Nivel de fundamentos
- Calidad de los resúmenes
- Utilidad para crear resúmenes
- Verbosidad del resumen
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 devertexAI()
o mediante el entorno deGCLOUD_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 devertexAI()
o del entornoGCLOUD_LOCATION
de salida.Para proporcionar las credenciales de la API, debes configurar las credenciales predeterminadas de la aplicación de Google Cloud.
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
- Para otros entornos, consulta los documentos Credenciales predeterminadas de la aplicación.
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
Primero, deberás habilitar el servicio de la API de Llama 3.1 en Model Garden de Vertex AI.
A continuación, se muestra una configuración de muestra para Llama 3.1 405b en el complemento 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
.