Das Google Generative AI-Plug-in bietet über die Gemini API Schnittstellen zu den Gemini-Modellen von Google.
Konfiguration
Importieren Sie das Paket googleai
und rufen Sie googleai.Init()
auf, um dieses Plug-in zu verwenden:
import "github.com/firebase/genkit/go/plugins/googleai"
if err := googleai.Init(ctx, g, nil); err != nil {
return err
}
Das Plug-in benötigt einen API-Schlüssel für die Gemini API, den Sie hier abrufen können: Google AI Studio
Konfigurieren Sie das Plug-in so, dass Ihr API-Schlüssel verwendet wird. Führen Sie dazu einen der folgenden Schritte aus:
Legen Sie die Umgebungsvariable
GOOGLE_GENAI_API_KEY
auf Ihren API-Schlüssel fest.Geben Sie den API-Schlüssel an, wenn Sie das Plug-in initialisieren:
if err := googleai.Init(ctx, g, &googleai.Config{APIKey: yourKey}); err != nil { return err }
Betten Sie Ihren API-Schlüssel jedoch nicht direkt in den Code ein. Verwenden Sie diese Funktion nur in Verbindung mit einem Dienst wie Cloud Secret Manager oder einem ähnlichen Dienst.
Nutzung
Generative Modelle
Geben Sie die ID des unterstützten Modells an, um einen Verweis auf ein unterstütztes Modell zu erhalten:
model := googleai.Model(g, "gemini-1.5-flash")
Die folgenden Modelle werden unterstützt: gemini-1.0-pro
, gemini-1.5-pro
und
gemini-1.5-flash
Modellverweise haben eine Generate()
-Methode, die die Google AI API aufruft:
text, err := genkit.GenerateText(ctx, g, ai.WithModel(model), ai.WithPromptText("Tell me a joke."))
if err != nil {
return err
}
Weitere Informationen finden Sie unter Inhalte erstellen.
Einbettungsmodelle
Geben Sie die Kennung eines unterstützten Einbettungsmodells an, um einen Verweis darauf zu erhalten:
embeddingModel := googleai.Embedder(g, "text-embedding-004")
Die folgenden Modelle werden unterstützt: text-embedding-004
und embedding-001
.
Einbettungsreferenzen haben eine Embed()
-Methode, die die Google AI API aufruft:
embedRes, err := ai.Embed(ctx, embeddingModel, ai.WithEmbedText(userInput))
if err != nil {
return err
}
Du kannst einen Embedder auch an die Methode Index()
eines Indexierungs-Tools und an die Methode eines Retrievers übergeben.
Retrieve()
-Methode:
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
}
Weitere Informationen finden Sie unter Retrieval-augmented Generation (RAG).