Erste Schritte mit Genkit und Go (Alpha)

Die 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, sie nur für Prototyping und explorative Datenanalysen zu verwenden.

Wenn Sie Probleme mit den Bibliotheken oder dieser Dokumentation feststellen, melden Sie sie bitte in unserem GitHub-Repository.

Wenn Sie mit Genkit beginnen möchten, installieren Sie die Genkit-Befehlszeile und führen Sie genkit init in einem Go-Projekt aus. Im Rest dieser Seite erfahren Sie, wie das geht.

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 praktische Möglichkeit, bestimmte Node-Versionen zu installieren, wenn sie noch nicht auf Ihrem System installiert sind. Mit diesen Tools wird Node pro Nutzer installiert, sodass Sie keine systemweiten Änderungen vornehmen müssen.

    So installieren Sie nvm:

    Führen Sie dazu diesen Befehl aus:

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

    Laden Sie das Installationsprogramm wie in der nvm-windows-Dokumentation beschrieben herunter und führen Sie es 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. Genkit-Projekt initialisieren:

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

    2. Wählen Sie Ihr Modell aus:

      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>

      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 Google Cloud-Projekt mit aktivierter Abrechnung, 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

      Weitere Informationen finden Sie unter Vertex AI-Preise.

    3. Geben Sie einen beliebigen Namen für das Modul an. Beispiel: example/genkit-intro

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

    Mit dem Befehl genkit init wird ein Beispiel-Go-Modul erstellt und die erforderlichen Abhängigkeiten installiert. 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 Schritte zur Plug-in-Konfiguration können sich unterscheiden, 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/googlegenai"
    )
    
    func main() {
    	ctx := context.Background()
    
    	// Initialize Genkit with 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.
    	g, err := genkit.Init(ctx, genkit.WithPlugins(&googlegenai.GoogleAI{}))
    	if err != nil {
    		log.Fatal(err)
    	}
    
    	// Define a simple flow that prompts an LLM to generate menu suggestions.
    	genkit.DefineFlow(g, "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 := googlegenai.GoogleAIModel(g, "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 := genkit.Generate(ctx, g,
    			ai.WithModel(m),
    			ai.WithConfig(&ai.GenerationCommonConfig{Temperature: 1}),
    			ai.WithPromptText(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
    	})
    
    	<-ctx.Done()
    }
    
    

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

  3. Sie können 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 Ablaufstatus in lokalen Dateien.

  4. Die Genkit-Benutzeroberfläche für Entwickler wird automatisch heruntergeladen und geöffnet, wenn Sie den Befehl genkit start ausführen.

    Auf der Entwickleroberfläche können Sie sehen, welche Abläufe Sie definiert und welche Modelle Sie konfiguriert haben, sie ausführen und die Spuren früherer Ausführungen untersuchen. Probieren Sie einige dieser Funktionen aus:

    • Auf dem Tab Ausführen sehen Sie eine Liste aller von Ihnen definierten Abläufe 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.