Google-Plug-in für generative KI

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 Umgebungsvariablen GOOGLE_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 Umgebungsvariablen GOOGLE_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.

    1. 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
    2. 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 und embedding-001

  • Vertex AI

    textembedding-gecko@003, textembedding-gecko@002, textembedding-gecko@001, text-embedding-004, textembedding-gecko-multilingual@001, text-multilingual-embedding-002 und multimodalembedding

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).