Erste Schritte mit Genkit und Go (Alpha)

Die Firebase Genkit-Bibliotheken für Go sind jetzt als Vorabversion verfügbar. Da sich die Go-Bibliotheken derzeit in der Alphaphase befinden, kann es im Laufe der Entwicklung zu API- und Funktionsänderungen kommen. Wir empfehlen, es nur für Prototyping und explorative Datenanalysen zu verwenden.

Falls Sie Probleme mit den Bibliotheken oder dieser Dokumentation entdecken, melden Sie diese bitte in unserem GitHub-Repository.

Installieren Sie die Genkit-Befehlszeile und führen Sie genkit init in einem Go-Projekt aus, um mit Genkit zu beginnen. Im Folgenden erfahren Sie, wie Sie dabei vorgehen.

Voraussetzungen

  • Go 1.22 oder höher Weitere Informationen finden Sie in der offiziellen Go-Dokumentation unter Herunterladen und installieren.

  • Node.js 20 oder höher (für die Genkit-Befehlszeile und ‑Benutzeroberfläche) Im nächsten Abschnitt finden Sie eine kurze Anleitung zur Installation von Node.

Genkit installieren

  1. Wenn Node 20 oder höher noch nicht auf Ihrem System installiert ist, installieren Sie es jetzt.

    Empfehlung: Die Tools nvm und nvm-windows sind eine bequeme Möglichkeit, bestimmte Versionen von Knoten zu installieren, wenn diese nicht bereits auf Ihrem System installiert sind. Mit diesen Tools wird Node pro Nutzer installiert, sodass keine systemweiten Änderungen erforderlich sind.

    So installieren Sie nvm:

    Linux, macOS usw.

    Führen Sie dazu diesen Befehl aus:

    curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.7/install.sh | bash

    Windows

    Laden Sie das Installationsprogramm herunter und führen Sie es wie in der nvm-windows-Dokumentation beschrieben aus.

    Öffnen Sie dann eine neue Shell und führen Sie den folgenden Befehl aus, um Node und npm zu installieren:

    nvm install 20
  2. Installieren Sie die Genkit-Befehlszeile mit dem folgenden Befehl:

    npm i -g genkit

    Mit diesem Befehl wird die Genkit-Befehlszeile in Ihrem Node-Installationsverzeichnis installiert, damit sie außerhalb eines Node-Projekts verwendet werden kann.

Beispielprojekt erstellen und untersuchen

  1. Erstellen Sie ein neues Projektverzeichnis:

    mkdir genkit-intro && cd genkit-intro
  2. Initialisieren Sie ein Genkit-Projekt:

    genkit init
    1. Wählen Sie Go als Laufzeitumgebung aus.

    2. Wählen Sie Ihr Modell aus:

      Gemini (Google AI)

      Am einfachsten ist der Einstieg mit der Google AI Gemini API. Prüfen Sie, ob es in Ihrer Region verfügbar ist.

      Erstellen Sie einen API-Schlüssel für die Gemini API mit Google AI Studio. Legen Sie dann die Umgebungsvariable GOOGLE_GENAI_API_KEY auf Ihren Schlüssel fest:

      export GOOGLE_GENAI_API_KEY=<your API key>

      Gemini (Vertex AI)

      Wenn die Google AI Gemini API in Ihrer Region nicht verfügbar ist, können Sie die Vertex AI API verwenden, die auch Gemini- und andere Modelle bietet. Sie benötigen ein abrechnungsfähiges Google Cloud-Projekt, müssen die AI Platform API aktivieren und einige zusätzliche Umgebungsvariablen festlegen:

      gcloud services enable aiplatform.googleapis.com
      export GCLOUD_PROJECT=<your project ID>
      export GCLOUD_LOCATION=us-central1

      Siehe Vertex AI – Preise.

    3. Geben Sie einen beliebigen Namen als Modulnamen an. Beispiel: example/genkit-intro

    4. Wählen Sie für die restlichen Fragen die Standardantworten aus. Dadurch wird Ihr Projektordner mit Beispielcode initialisiert.

    Der Befehl genkit init erstellt ein Go-Beispielmodul und installiert die erforderlichen Abhängigkeiten. Die Datei main.go enthält einen einzelnen Ablauf, menuSuggestionFlow, der ein LLM auffordert, ein Gericht für ein Restaurant mit einem bestimmten Thema vorzuschlagen.

    Diese Datei sieht in etwa so aus (die Plug-in-Konfigurationsschritte können anders aussehen, wenn Sie Vertex AI ausgewählt haben):

    package main
    
    import (
    	"context"
    	"errors"
    	"fmt"
    	"log"
    
    	// Import Genkit and the Google AI plugin
    	"github.com/firebase/genkit/go/ai"
    	"github.com/firebase/genkit/go/genkit"
    	"github.com/firebase/genkit/go/plugins/googleai"
    )
    
    func main() {
    	ctx := context.Background()
    
    	// Initialize the Google AI plugin. When you pass nil for the
    	// Config parameter, the Google AI plugin will get the API key from the
    	// GOOGLE_GENAI_API_KEY environment variable, which is the recommended
    	// practice.
    	if err := googleai.Init(ctx, nil); err != nil {
    		log.Fatal(err)
    	}
    
    	// Define a simple flow that prompts an LLM to generate menu suggestions.
    	genkit.DefineFlow("menuSuggestionFlow", func(ctx context.Context, input string) (string, error) {
    		// The Google AI API provides access to several generative models. Here,
    		// we specify gemini-1.5-flash.
    		m := googleai.Model("gemini-1.5-flash")
    		if m == nil {
    			return "", errors.New("menuSuggestionFlow: failed to find model")
    		}
    
    		// Construct a request and send it to the model API (Google AI).
    		resp, err := ai.Generate(ctx, m,
    			ai.WithConfig(&ai.GenerationCommonConfig{Temperature: 1}),
    			ai.WithTextPrompt(fmt.Sprintf(`Suggest an item for the menu of a %s themed restaurant`, input)))
    		if err != nil {
    			return "", err
    		}
    
    		// Handle the response from the model API. In this sample, we just
    		// convert it to a string. but more complicated flows might coerce the
    		// response into structured output or chain the response into another
    		// LLM call.
    		text := resp.Text()
    		return text, nil
    	})
    
    	// Initialize Genkit and start a flow server. This call must come last,
    	// after all of your plug-in configuration and flow definitions. When you
    	// pass a nil configuration to Init, Genkit starts a local flow server,
    	// which you can interact with using the developer UI.
    	if err := genkit.Init(ctx, nil); err != nil {
    		log.Fatal(err)
    	}
    }
    
    

    Wenn Sie die KI-Funktionen Ihrer App mit Genkit entwickeln, erstellen Sie wahrscheinlich Abläufe mit mehreren Schritten, z. B. die Eingabevorverarbeitung, die Erstellung komplexerer Prompts und die Einbindung externer Informationsquellen für die Retrieval-Augmented Generation (RAG).

  3. Sie können die Genkit-Funktionen und das Beispielprojekt jetzt lokal auf Ihrem Computer ausführen und testen. Laden Sie die Genkit-Entwickler-UI herunter und starten Sie sie:

    genkit start

    Willkommen bei der Genkit-Benutzeroberfläche für Entwickler

    Die Genkit-Entwickler-UI wird jetzt auf Ihrem Computer ausgeführt. Wenn Sie im nächsten Schritt Modelle oder Abläufe ausführen, führt Ihr Computer die Orchestrierungsaufgaben aus, die erforderlich sind, damit die Schritte Ihres Ablaufs zusammenarbeiten. Aufrufe externer Dienste wie der Gemini API werden weiterhin an Liveserver gesendet.

    Da Sie sich in einer Entwicklungsumgebung befinden, speichert Genkit außerdem Traces und den Flussstatus in lokalen Dateien.

  4. Die Genkit-Entwickler-UI wird automatisch heruntergeladen und geöffnet, wenn Sie den Befehl genkit start ausführen.

    Auf der Entwickler-UI können Sie die von Ihnen definierten Abläufe und die konfigurierten Modelle sehen, diese ausführen und Traces vorheriger Ausführungen untersuchen. Probieren Sie einige dieser Funktionen aus:

    • Auf dem Tab Ausführen sehen Sie eine Liste aller von Ihnen definierten Workflows und aller Modelle, die über Plug-ins konfiguriert wurden.

      Klicken Sie auf menuSuggestionFlow und führen Sie den Code mit Eingabetext aus (z. B. "cat"). Wenn alles richtig funktioniert, erhalten Sie eine Menüvorschlag für ein Katzen-Restaurant.

    • Auf dem Tab Prüfen sehen Sie einen Verlauf der Ablaufausführungen. Für jeden Ablauf sehen Sie die Parameter, die an den Ablauf übergeben wurden, und eine Aufzeichnung der einzelnen Schritte während der Ausführung.