Firebase Genkit mit Cloud Run

Mit Cloud Run können Sie Firebase Genkit-Abläufe als Webdienste bereitstellen. Auf dieser Seite wird die Bereitstellung des Standardbeispiels Ablauf.

  1. Installieren Sie die Google Cloud CLI, wenn die Sie noch nicht getan haben.

  2. Erstellen Sie ein neues Google Cloud-Projekt mithilfe der Cloud Console oder wählen Sie eine vorhandene aus. Das Projekt muss mit einem Rechnungskonto verknüpft sein.

    Nachdem Sie ein Projekt erstellt oder ausgewählt haben, konfigurieren Sie die Google Cloud CLI, die verwendet werden soll es:

    gcloud auth login
    gcloud init
    
  3. Erstellen Sie ein Verzeichnis für das Genkit-Beispielprojekt:

    mkdir -p ~/tmp/genkit-cloud-project
    cd ~/tmp/genkit-cloud-project
    

    Wenn Sie eine IDE verwenden, öffnen Sie sie in diesem Verzeichnis.

  4. Initialisieren Sie ein Go-Modul in Ihrem Projektverzeichnis:

    go mod init example/cloudrun
    
  5. Initialisieren Sie Genkit in Ihrem Projekt:

    genkit init
    

    Wählen Sie den gewünschten Modellanbieter aus.

    Akzeptieren Sie für die restlichen Prompts die Standardeinstellungen. Das genkit-Tool erstellt eine Beispieldatei, um Ihnen den Einstieg in die Entwicklung eigener KI-Abläufe zu erleichtern. Im Rest dieser Anleitung stellen Sie jedoch nur den Beispielablauf bereit.

  6. Bearbeiten Sie die Beispieldatei (main.go oder genkit.go), um den Port anzugeben, auf dem der Flow-Server lauschen soll:

    if err := genkit.Init(ctx,
    	&genkit.Options{FlowAddr: ":3400"}, // Add this parameter.
    ); err != nil {
    	log.Fatal(err)
    }
    
  7. Stellen Sie API-Anmeldedaten für Ihre bereitgestellte Funktion bereit. Führen Sie je nach ausgewähltem Modellanbieter einen der folgenden Schritte aus:

    Gemini (Google AI)

    1. Google AI muss in Ihrer Region verfügbar.

    2. Erstellen Sie einen API-Schlüssel für die Gemini API mit Google AI Studio.

    3. Machen Sie den API-Schlüssel in der Cloud Run-Umgebung verfügbar:

      1. Aktivieren Sie in der Cloud Console die Secret Manager API.
      2. Erstellen Sie auf der Seite Secret Manager ein neues Secret mit Ihrem API-Schlüssel.
      3. Gewähren Sie nach dem Erstellen des Secrets auf derselben Seite die Standardeinstellung Zugriff des Compute-Dienstkontos auf das Secret mit der Accessor für Secret Manager-Secret. (Sie können den Namen des Compute-Standarddienstkontos auf der IAM-Seite.)

      Wenn Sie Ihren Dienst später bereitstellen, müssen Sie den Namen dieses Secrets angeben.

    Gemini (Vertex AI)

    1. In der Cloud Console Vertex AI API aktivieren für Ihr Projekt.

    2. In IAM prüfen Sie, ob das Compute-Standarddienstkonto die Rolle Vertex AI User

    Das einzige Secret, das Sie für diese Anleitung einrichten müssen, ist für das Modell aber im Allgemeinen müssen Sie für jeden Dienst etwas Ähnliches machen. die Ihren Ablauf nutzen.

  8. Optional: Testen Sie den Ablauf in der Entwickler-UI:

    1. Richten Sie Ihre lokale Umgebung für den ausgewählten Modellanbieter ein:

      Gemini (Google AI)

      export GOOGLE_GENAI_API_KEY=<your API key>
      

      Gemini (Vertex AI)

      export GCLOUD_PROJECT=<your project ID>
      export GCLOUD_LOCATION=us-central1
      gcloud auth application-default login
      
    2. Benutzeroberfläche starten:

      genkit start
      
    3. Führen Sie den Ablauf in der Entwickler-Benutzeroberfläche (http://localhost:4000/) aus:

      1. Klicken Sie auf menuSuggestionFlow.

      2. Geben Sie auf dem Tab JSON-Eingabe ein Thema für das Modell an:

        "banana"
        
      3. Klicken Sie auf Ausführen.

  9. Wenn bis jetzt alles wie erwartet funktioniert, können Sie den Ablauf:

    Gemini (Google AI)

    gcloud run deploy --port 3400 \
      --update-secrets=GOOGLE_GENAI_API_KEY=<your-secret-name>:latest
    

    Gemini (Vertex AI)

    gcloud run deploy --port 3400 \
      --set-env-vars GCLOUD_PROJECT=<your-gcloud-project> \
      --set-env-vars GCLOUD_LOCATION=us-central1
    

    (GCLOUD_LOCATION konfiguriert die Vertex API-Region, die Sie verwenden möchten.)

    Wählen Sie N aus, wenn Sie gefragt werden, ob Sie nicht authentifizierte Aufrufe zulassen möchten. Durch die Antwort mit N wird Ihr Dienst so konfiguriert, dass IAM-Anmeldedaten erforderlich sind. Informationen zum Angeben dieser Anmeldedaten finden Sie in der Cloud Run-Dokumentation unter Authentifizierung.

Nach Abschluss der Bereitstellung gibt das Tool die Dienst-URL aus. Sie können das mit curl testen:

curl -X POST https://<service-url>/menuSuggestionFlow \
  -H "Authorization: Bearer $(gcloud auth print-identity-token)" \
  -H "Content-Type: application/json" -d '"banana"'