Le plug-in Vertex AI fournit des interfaces avec plusieurs modèles d'IA générative de Google via l'API Vertex AI.
Conditions requises
Si vous souhaitez exécuter localement des flux qui utilisent ce plug-in, vous devez installer l'outil Google Cloud CLI.
Configuration
Pour utiliser ce plug-in, importez le package vertexai
et appelez vertexai.Init()
:
import "github.com/firebase/genkit/go/plugins/vertexai"
if err := vertexai.Init(ctx, nil); err != nil {
return err
}
Le plug-in vous demande de spécifier l'ID de votre projet Google Cloud, la région à laquelle vous souhaitez envoyer des requêtes d'API Vertex et les identifiants de votre projet Google Cloud.
Par défaut,
vertexai.Init()
récupère votre ID de projet Google Cloud à partir de la variable d'environnementGCLOUD_PROJECT
.Vous pouvez également transmettre cette valeur directement:
if err := vertexai.Init(ctx, &vertexai.Config{ProjectID: yourProjectID}); err != nil { return err }
Par défaut,
vertexai.Init()
obtient l'emplacement de l'API Vertex AI à partir de la variable d'environnementGCLOUD_LOCATION
.Vous pouvez également transmettre cette valeur directement :
if err := vertexai.Init(ctx, &vertexai.Config{Location: "asia-south1"}); err != nil { return err }
Pour fournir des identifiants d'API, vous devez configurer les identifiants par défaut de l'application Google Cloud.
Pour spécifier vos identifiants :
Si vous exécutez votre flux à partir d'un environnement Google Cloud (Cloud Functions, Cloud Run, etc.), cette valeur est définie automatiquement.
Dans votre environnement de développement local, exécutez la commande suivante:
gcloud auth application-default login
- Pour les autres environnements, consultez la documentation sur les identifiants par défaut de l'application.
En outre, assurez-vous que le compte dispose du rôle IAM Utilisateur Vertex AI (
roles/aiplatform.user
). Consultez la documentation sur le contrôle des accès dans Vertex AI.
Utilisation
Modèles génératifs
Pour obtenir une référence à un modèle compatible, spécifiez son identifiant :
langModel := vertexai.Model("gemini-1.5-flash")
Les modèles suivants sont acceptés : gemini-1.0-pro
, gemini-1.5-pro
et gemini-1.5-flash
.
Les références de modèle comportent une méthode Generate()
qui appelle l'API Vertex AI :
genRes, err := ai.GenerateText(ctx, langModel, ai.WithTextPrompt("Tell me a joke."))
if err != nil {
return err
}
Pour en savoir plus, consultez Générer du contenu.
Modèles d'embeddings
Pour obtenir une référence à un modèle d'embedding compatible, spécifiez son identifiant :
embeddingModel := vertexai.Embedder("text-embedding-004")
Les modèles suivants sont acceptés: textembedding-gecko@003
, textembedding-gecko@002
, textembedding-gecko@001
, text-embedding-004
, textembedding-gecko-multilingual@001
, text-multilingual-embedding-002
et multimodalembedding
.
Les références d'intégrateur comportent une méthode Embed()
qui appelle l'API Vertex AI :
embedRes, err := ai.Embed(ctx, embeddingModel, ai.WithEmbedText(userInput))
if err != nil {
return err
}
Vous pouvez également transmettre un Embedder à la méthode Index()
d'un indexeur et à la méthode Retrieve()
d'un récupérateur :
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
}
Pour en savoir plus, consultez la section Génération augmentée de récupération (RAG).