O plug-in da Vertex AI fornece interfaces para vários modelos de IA generativa do Google usando a API Vertex AI.
Requisitos
Se você quiser executar localmente fluxos que usam esse plug-in, precisará da ferramenta CLI do Google Cloud instalada.
Configuração
Para usar esse plug-in, importe o pacote vertexai
e chame vertexai.Init()
:
import "github.com/firebase/genkit/go/plugins/vertexai"
if err := vertexai.Init(ctx, nil); err != nil {
return err
}
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.
Por padrão,
vertexai.Init()
busca o ID do projeto do Google Cloud da variável de ambienteGCLOUD_PROJECT
.Você também pode passar esse valor diretamente:
if err := vertexai.Init(ctx, &vertexai.Config{ProjectID: yourProjectID}); err != nil { return err }
Por padrão,
vertexai.Init()
recebe o local da API Vertex AI da variável de ambienteGCLOUD_LOCATION
.Você também pode passar esse valor diretamente:
if err := vertexai.Init(ctx, &vertexai.Config{Location: "asia-south1"}); err != nil { return err }
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 geradores
Para acessar uma referência a um modelo compatível, especifique o identificador dele:
langModel := vertexai.Model("gemini-1.5-flash")
Os seguintes modelos são compatíveis: gemini-1.0-pro
, gemini-1.5-pro
e
gemini-1.5-flash
.
As referências de modelo têm um método Generate()
que chama a API Vertex AI:
genRes, err := ai.GenerateText(ctx, langModel, ai.WithTextPrompt("Tell me a joke."))
if err != nil {
return err
}
Consulte Como gerar conteúdo para mais informações.
Como incorporar modelos
Para acessar uma referência a um modelo de embedding compatível, especifique o identificador dele:
embeddingModel := vertexai.Embedder("text-embedding-004")
Os seguintes modelos são compatíveis: textembedding-gecko@003
,
textembedding-gecko@002
, textembedding-gecko@001
, text-embedding-004
,
textembedding-gecko-multilingual@001
, text-multilingual-embedding-002
e
multimodalembedding
.
As referências do incorporador têm um método Embed()
que chama a API Vertex AI:
embedRes, err := ai.Embed(ctx, embeddingModel, ai.WithEmbedText(userInput))
if err != nil {
return err
}
Você também pode transmitir um incorporador ao método Index()
de um indexador e ao método
Retrieve()
de um recuperador:
if err := ai.Index(ctx, myIndexer, ai.WithIndexerDocs(docsToIndex...)); err != nil {
return err
}
retrieveRes, err := ai.Retrieve(ctx, myRetriever, ai.WithRetrieverText(userInput))
if err != nil {
return err
}
Consulte Geração aumentada de recuperação (RAG) para mais informações.