Google-Plug-in für generative KI

Das generative KI-Plug-in von Google bietet Schnittstellen zu Gemini-Modellen von Google über die Gemini API.

Konfiguration

Wenn Sie dieses Plug-in verwenden möchten, importieren Sie das googleai-Paket und rufen Sie googleai.Init() auf:

import "github.com/firebase/genkit/go/plugins/googleai"
if err := googleai.Init(ctx, nil); err != nil {
	return err
}

Für das Plug-in ist ein API-Schlüssel für die Gemini API erforderlich, 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 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, &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 Kennzeichnung eines unterstützten Modells an, um einen Verweis darauf zu erhalten:

model := googleai.Model("gemini-1.5-flash")

Die folgenden Modelle werden unterstützt: gemini-1.0-pro, gemini-1.5-pro und gemini-1.5-flash.

Modellreferenzen haben eine Generate()-Methode, die die Google AI API aufruft:

text, err := ai.GenerateText(ctx, model, ai.WithTextPrompt("Tell me a joke."))
if err != nil {
	return err
}

Weitere Informationen finden Sie unter Inhalte generieren.

Einbettungsmodelle

Geben Sie die Kennung eines unterstützten Einbettungsmodells an, um einen Verweis darauf zu erhalten:

embeddingModel := googleai.Embedder("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
}

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