Das Google-Plug-in für generative KI bietet Schnittstellen zu den Gemini-Modellen von Google, entweder über die Gemini API oder die Gemini API in Vertex AI.
Konfiguration
Die Konfiguration hängt vom ausgewählten Anbieter ab:
Google AI
Wenn Sie dieses Plug-in verwenden möchten, importieren Sie das googlegenai
-Paket und übergeben Sie googlegenai.GoogleAI
in der Genkit-Initialisierung an WithPlugins()
:
import "github.com/firebase/genkit/go/plugins/googlegenai"
g, err := genkit.Init(context.Background(), ai.WithPlugins(&googlegenai.GoogleAI{}))
Das Plug-in benötigt einen API-Schlüssel für die Gemini API, den Sie in Google AI Studio abrufen können.
Konfigurieren Sie das Plug-in so, dass es Ihren API-Schlüssel verwendet. Gehen Sie dazu so vor:
Legen Sie die Umgebungsvariable
GEMINI_API_KEY
auf Ihren API-Schlüssel fest.Geben Sie den API-Schlüssel an, wenn Sie das Plug-in initialisieren:
ai.WithPlugins(&googlegenai.GoogleAI{APIKey: "YOUR_API_KEY"})
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.
Vertex AI
Wenn Sie dieses Plug-in verwenden möchten, importieren Sie das googlegenai
-Paket und übergeben Sie googlegenai.VertexAI
in der Genkit-Initialisiererfunktion an WithPlugins()
:
import "github.com/firebase/genkit/go/plugins/googlegenai"
g, err := genkit.Init(context.Background(), genkit.WithPlugins(&googlegenai.VertexAI{}))
Sie müssen die Google Cloud-Projekt-ID, die Region, an die Vertex API-Anfragen gesendet werden sollen, und die Anmeldedaten für Ihr Google Cloud-Projekt angeben.
Standardmäßig wird die Google Cloud-Projekt-ID von
googlegenai.VertexAI
aus der UmgebungsvariablenGOOGLE_CLOUD_PROJECT
abgerufen.Du kannst diesen Wert auch direkt übergeben:
genkit.WithPlugins(&googlegenai.VertexAI{ProjectID: "my-project-id"})
Standardmäßig ruft
googlegenai.VertexAI
den Speicherort der Vertex AI API aus der UmgebungsvariablenGOOGLE_CLOUD_LOCATION
ab.Du kannst diesen Wert auch direkt übergeben:
genkit.WithPlugins(&googlegenai.VertexAI{Location: "us-central1"})
Wenn Sie API-Anmeldedaten angeben möchten, müssen Sie Standardanmeldedaten für Google Cloud-Anwendungen einrichten.
So geben Sie Ihre Anmeldedaten an:
Wenn Sie Ihren Ablauf in einer Google Cloud-Umgebung (z. B. Cloud Functions oder Cloud Run) ausführen, wird dies automatisch festgelegt.
Führen Sie dazu in Ihrer lokalen Entwicklungsumgebung Folgendes aus:
gcloud auth application-default login
- Informationen zu anderen Umgebungen finden Sie in der Dokumentation zu Standardanmeldedaten für Anwendungen.
Außerdem muss dem Konto die IAM-Rolle „Vertex AI-Nutzer“ (
roles/aiplatform.user
) zugewiesen sein. Weitere Informationen finden Sie in der Vertex AI-Dokumentation zur Zugriffssteuerung.
Nutzung
Generative Modelle
Wenn Sie einen Verweis auf ein unterstütztes Modell erhalten möchten, geben Sie die Kennzeichnung entweder für googlegenai.GoogleAIModel
oder googlgenai.VertexAIModel
an:
model := googlegenai.GoogleAIModel(g, "gemini-2.0-flash")
Alternativ können Sie eine ModelRef
erstellen, die den Modellnamen mit der Konfiguration verknüpft:
modelRef := googlegenai.GoogleAIModelRef("gemini-2.0-flash", &googlegenai.GeminiConfig{
Temperature: 0.5,
MaxOutputTokens: 500,
// Other configuration...
})
Die folgenden Modelle werden unterstützt: gemini-1.5-pro
, gemini-1.5-flash
, gemini-2.0-pro
, gemini-2.0-flash
und andere experimentelle Modelle.
Modellreferenzen haben eine Generate()
-Methode, die die Google API aufruft:
resp, err := genkit.Generate(ctx, g, ai.WithModel(modelRef), ai.WithPrompt("Tell me a joke."))
if err != nil {
return err
}
log.Println(resp.Text())
Weitere Informationen finden Sie unter Inhalte mit KI-Modellen generieren.
Einbettungsmodelle
Wenn Sie einen Verweis auf ein unterstütztes Einbettungsmodell abrufen möchten, geben Sie als Kennung entweder googlegenai.GoogleAIEmbedder
oder googlgenai.VertexAIEmbedder
an:
embeddingModel := googlegenai.GoogleAIEmbedder(g, "text-embedding-004")
Die folgenden Modelle werden unterstützt:
Google AI
text-embedding-004
undembedding-001
Vertex AI
textembedding-gecko@003
,textembedding-gecko@002
,textembedding-gecko@001
,text-embedding-004
,textembedding-gecko-multilingual@001
,text-multilingual-embedding-002
undmultimodalembedding
Einbettungsreferenzen haben eine Embed()
-Methode, die die Google AI API aufruft:
resp, err := ai.Embed(ctx, embeddingModel, ai.WithDocs(userInput))
if err != nil {
return err
}
Sie können einen Embedder auch an die Index()
-Methode eines Indexers und die Retrieve()
-Methode eines Retrievers übergeben:
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
}
Weitere Informationen finden Sie unter Retrieval Augmented Generation (RAG).