Le plug-in Google Generative AI fournit des interfaces aux modèles Gemini de Google via l'API Gemini ou Gemini API in Vertex AI.
Configuration
La configuration dépend du fournisseur que vous choisissez:
IA de Google
Pour utiliser ce plug-in, importez le package googlegenai
et transmettez googlegenai.GoogleAI
à WithPlugins()
dans l'initialiseur Genkit:
import "github.com/firebase/genkit/go/plugins/googlegenai"
g, err := genkit.Init(context.Background(), ai.WithPlugins(&googlegenai.GoogleAI{}))
Le plug-in nécessite une clé API pour l'API Gemini, que vous pouvez obtenir dans Google AI Studio.
Configurez le plug-in pour qu'il utilise votre clé API en procédant comme suit:
Définissez la variable d'environnement
GEMINI_API_KEY
sur votre clé API.Spécifiez la clé API lorsque vous initialisez le plug-in:
ai.WithPlugins(&googlegenai.GoogleAI{APIKey: "YOUR_API_KEY"})
Toutefois, n'intégrez pas votre clé API directement dans le code. N'utilisez cette fonctionnalité qu'avec un service tel que Cloud Secret Manager ou un service similaire.
Vertex AI
Pour utiliser ce plug-in, importez le package googlegenai
et transmettez googlegenai.VertexAI
à WithPlugins()
dans l'initialiseur Genkit:
import "github.com/firebase/genkit/go/plugins/googlegenai"
g, err := genkit.Init(context.Background(), genkit.WithPlugins(&googlegenai.VertexAI{}))
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,
googlegenai.VertexAI
récupère votre ID de projet Google Cloud à partir de la variable d'environnementGOOGLE_CLOUD_PROJECT
.Vous pouvez également transmettre cette valeur directement:
genkit.WithPlugins(&googlegenai.VertexAI{ProjectID: "my-project-id"})
Par défaut,
googlegenai.VertexAI
obtient l'emplacement de l'API Vertex AI à partir de la variable d'environnementGOOGLE_CLOUD_LOCATION
.Vous pouvez également transmettre cette valeur directement:
genkit.WithPlugins(&googlegenai.VertexAI{Location: "us-central1"})
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 sur googlegenai.GoogleAIModel
ou googlgenai.VertexAIModel
:
model := googlegenai.GoogleAIModel(g, "gemini-2.0-flash")
Vous pouvez également créer un ModelRef
qui associe le nom du modèle à sa configuration:
modelRef := googlegenai.GoogleAIModelRef("gemini-2.0-flash", &googlegenai.GeminiConfig{
Temperature: 0.5,
MaxOutputTokens: 500,
// Other configuration...
})
Les modèles suivants sont acceptés: gemini-1.5-pro
, gemini-1.5-flash
, gemini-2.0-pro
, gemini-2.0-flash
et d'autres modèles expérimentaux.
Les références de modèle comportent une méthode Generate()
qui appelle l'API Google:
resp, err := genkit.Generate(ctx, g, ai.WithModel(modelRef), ai.WithPrompt("Tell me a joke."))
if err != nil {
return err
}
log.Println(resp.Text())
Pour en savoir plus, consultez Générer du contenu avec des modèles d'IA.
Modèles d'embeddings
Pour obtenir une référence à un modèle d'embedding compatible, spécifiez son identifiant sur googlegenai.GoogleAIEmbedder
ou googlgenai.VertexAIEmbedder
:
embeddingModel := googlegenai.GoogleAIEmbedder(g, "text-embedding-004")
Les modèles suivants sont compatibles :
IA de Google
text-embedding-004
etembedding-001
Vertex AI
textembedding-gecko@003
,textembedding-gecko@002
,textembedding-gecko@001
,text-embedding-004
,textembedding-gecko-multilingual@001
,text-multilingual-embedding-002
etmultimodalembedding
Les références d'intégration comportent une méthode Embed()
qui appelle l'API Google AI:
resp, err := ai.Embed(ctx, embeddingModel, ai.WithDocs(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.WithDocs(docsToIndex...)); err != nil {
return err
}
resp, err := ai.Retrieve(ctx, myRetriever, ai.WithDocs(userInput))
if err != nil {
return err
}
Pour en savoir plus, consultez la section Génération augmentée de récupération (RAG).