El complemento de Vertex AI proporciona interfaces para varios modelos de IA generativa de Google a través de la API de Vertex AI.
Requisitos
Si quieres ejecutar localmente flujos que usan este complemento, necesitas la Tener instalada la herramienta Google Cloud CLI
Configuración
Para usar este complemento, importa el paquete vertexai
y llama a vertexai.Init()
:
import "github.com/firebase/genkit/go/plugins/vertexai"
if err := vertexai.Init(ctx, nil); err != nil {
return err
}
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 tu proyecto de Google Cloud credenciales.
De forma predeterminada,
vertexai.Init()
obtiene tu ID del proyecto de Google Cloud de la Variable de entornoGCLOUD_PROJECT
.También puedes pasar este valor directamente:
if err := vertexai.Init(ctx, &vertexai.Config{ProjectID: yourProjectID}); err != nil { return err }
De forma predeterminada,
vertexai.Init()
obtiene la ubicación de la API de Vertex AI de la Variable de entornoGCLOUD_LOCATION
.También puedes pasar este valor directamente:
if err := vertexai.Init(ctx, &vertexai.Config{Location: "asia-south1"}); err != nil { return err }
Para proporcionar las credenciales de la API, debes configurar las aplicaciones Credenciales predeterminadas.
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 Credenciales predeterminadas de la aplicación documentos.
Además, asegúrate de que la cuenta tenga el rol de IAM Usuario de Vertex AI (
roles/aiplatform.user
). Consulta el control de acceso de Vertex AI. documentos.
Uso
Modelos generativos
Para obtener una referencia a un modelo compatible, especifica su identificador:
langModel := vertexai.Model("gemini-1.5-pro")
Se admiten los siguientes modelos: gemini-1.0-pro
, gemini-1.5-pro
y
gemini-1.5-flash
.
Las referencias de modelos tienen un método Generate()
que llama a la API de Vertex AI:
genRes, err := langModel.Generate(ctx, ai.NewGenerateRequest(
nil, ai.NewUserTextMessage("Tell me a joke.")), nil)
if err != nil {
return err
}
Consulta Generación de contenido para obtener más información.
Modelos de incorporación
Para obtener una referencia a un modelo de incorporación compatible, especifica su identificador:
embeddingModel := vertexai.Embedder("text-embedding-004")
Se admiten los siguientes modelos: textembedding-gecko@003
,
textembedding-gecko@002
, textembedding-gecko@001
y text-embedding-004
textembedding-gecko-multilingual@001
, text-multilingual-embedding-002
y
multimodalembedding
.
Las referencias de incorporaciones tienen un método Embed()
que llama a la API de Vertex AI:
embedRes, err := embeddingModel.Embed(ctx, &ai.EmbedRequest{
Documents: []*ai.Document{ai.DocumentFromText(userInput, nil)},
})
if err != nil {
return err
}
También puedes pasar un Embedder al método Index()
de un indexador y al método
Método Retrieve()
:
if err := myIndexer.Index(ctx, &ai.IndexerRequest{Documents: docsToIndex}); err != nil {
return err
}
retrieveRes, err := myRetriever.Retrieve(ctx, &ai.RetrieverRequest{
Document: ai.DocumentFromText(userInput, nil),
})
if err != nil {
return err
}
Consulta Generación aumentada de recuperación (RAG) para obtener más información.