Le plug-in Google Generative AI fournit des interfaces avec les modèles Gemini de Google via l'API Gemini.
Configuration
Pour utiliser ce plug-in, importez le package googleai
et appelez googleai.Init()
:
import "github.com/firebase/genkit/go/plugins/googleai"
if err := googleai.Init(ctx, nil); err != nil {
return err
}
Le plug-in nécessite une clé API pour l'API Gemini, que vous pouvez obtenir auprès de 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
GOOGLE_GENAI_API_KEY
sur votre clé API.Spécifiez la clé API lorsque vous initialisez le plug-in :
if err := googleai.Init(ctx, &googleai.Config{APIKey: yourKey}); err != nil { return err }
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.
Utilisation
Modèles génératifs
Pour obtenir une référence à un modèle compatible, spécifiez son identifiant :
model := googleai.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 Google AI :
text, err := ai.GenerateText(ctx, model, 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 de représentation vectorielle continue compatible, spécifiez son identifiant:
embeddingModel := googleai.Embedder("text-embedding-004")
Les modèles suivants sont compatibles: text-embedding-004
et embedding-001
.
Les références d'intégration comportent une méthode Embed()
qui appelle l'API Google 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).