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.
- BLEU (link em inglês)
- ROUGE (em inglês)
- Fluência
- Segurança
- Sondagem
- Qualidade do resumo
- Utilidade do resumo
- Verbosidade do resumo
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çãovertexAI()
ou definindo o ambienteGCLOUD_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çãovertexAI()
ou definindo o ambienteGCLOUD_LOCATION
variável.Para fornecer credenciais de API, você precisa configurar o Application Default Credentials do Google Cloud.
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
- Para outros ambientes, consulte a documentação do Application Default Credentials.
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
Primeiro, você precisa ativar o serviço da API Llama 3.1 no Model Garden da Vertex AI.
Confira um exemplo de configuração para o Llama 3.1 405b no plug-in 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
.