Abläufe auf jeder Node.js-Plattform bereitstellen

Firebase Genkit bietet integrierte Integrationen, mit denen Sie Ihre Workflows in Cloud Functions for Firebase und Google Cloud Run bereitstellen können. Sie können Ihre Workflows aber auch auf jeder Plattform bereitstellen, die eine Express.js-Anwendung ausliefern kann, unabhängig davon, ob es sich um einen Cloud-Dienst oder einen selbst gehosteten Dienst handelt.

Auf dieser Seite wird beispielsweise beschrieben, wie Sie den Standard-Beispielfluss bereitstellen.

Hinweis

  • Node.js 20 oder höher: Prüfen Sie, ob in Ihrer Umgebung Node.js 20 oder höher verwendet wird (node --version).
  • Sie sollten mit dem Genkit-Konzept Abläufe vertraut sein.

1. Projekt einrichten

  1. Erstellen Sie ein Verzeichnis für das Projekt:

    export GENKIT_PROJECT_HOME=~/tmp/genkit-express-project
    mkdir -p $GENKIT_PROJECT_HOME
    cd $GENKIT_PROJECT_HOME
  2. So initialisieren Sie ein Node.js-Projekt:

    npm init -y
  3. Genkit und die erforderlichen Abhängigkeiten installieren:

    npm install --save genkit @genkit-ai/googleai
    npm install -D genkit-cli typescript tsx

2. Genkit-App konfigurieren

  1. Richten Sie einen Beispielablauf und einen Server ein:

    Definieren Sie in src/index.ts einen Beispielablauf und konfigurieren Sie den Ablaufserver:

    import { genkit } from 'genkit';
    import { googleAI, gemini15Flash } from '@genkit-ai/googleai';
    
    const ai = genkit({
      plugins: [googleAI()],
      model: gemini15Flash,
    });
    
    const helloFlow = ai.defineFlow(
      {
        name: 'helloFlow',
        inputSchema: z.object({ name: z.string() }),
        outputSchema: z.string(),
      },
      async (input) => {
        const { text } = ai.generate('Say hello to ${input.name}');
        return text;
      }
    );
    
    ai.startFlowServer({
      flows: [menuSuggestionFlow],
    });
    

    Es gibt auch einige optionale Parameter für startFlowServer, die Sie angeben können:

    • port: Der Netzwerkport, auf dem gelauscht werden soll. Wenn nicht angegeben, überwacht der Server den in der Umgebungsvariablen „PORT“ definierten Port. Wenn „PORT“ nicht festgelegt ist, wird standardmäßig 3400 verwendet.
    • cors: die CORS-Richtlinie des Workflow-Servers. Wenn Sie von einer Webanwendung aus auf diese Endpunkte zugreifen, müssen Sie dies wahrscheinlich angeben.
    • pathPrefix: Ein optionales Pfadpräfix, das vor den Ablaufendpunkten hinzugefügt werden soll.
    • jsonParserOptions: Optionen, die an den JSON-Body-Parser von Express übergeben werden
  2. Anmeldedaten für den Modellanbieter einrichten:

    Konfigurieren Sie die erforderlichen Umgebungsvariablen für Ihren Modellanbieter. In dieser Anleitung verwenden wir die Gemini API aus Google AI Studio als Beispiel.

    API-Schlüssel in Google AI Studio abrufen

    Nachdem Sie einen API-Schlüssel erstellt haben, legen Sie die Umgebungsvariable GOOGLE_GENAI_API_KEY mit dem folgenden Befehl auf Ihren Schlüssel fest:

    export GOOGLE_GENAI_API_KEY=<your API key>

    Unterschiedliche Anbieter für die Bereitstellung haben unterschiedliche Möglichkeiten, Ihren API-Schlüssel in ihrer Umgebung zu schützen. Aus Sicherheitsgründen sollte Ihr API-Schlüssel nicht öffentlich zugänglich sein.

3. Node.js-Projekt für die Bereitstellung vorbereiten

Start- und Build-Scripts zu package.json hinzufügen

Wenn Sie ein Node.js-Projekt bereitstellen möchten, definieren Sie start- und build-Scripts in package.json. Bei einem TypeScript-Projekt sehen diese Scripts so aus:

"scripts": {
  "start": "node --watch lib/index.js",
  "build": "tsc"
},

Build lokal erstellen und testen

Führen Sie den Befehl zum Erstellen aus, starten Sie den Server und testen Sie ihn lokal, um sicherzustellen, dass er wie erwartet funktioniert.

npm run build
npm start

Testen Sie den Endpunkt in einem anderen Terminalfenster:

curl -X POST "http://127.0.0.1:3400/menuSuggestionFlow" \
  -H "Content-Type: application/json" \
  -d '{"data": "banana"}'

Optional: Entwickleroberfläche starten

Mit der Entwickleroberfläche können Sie während der Entwicklung Abläufe interaktiv testen:

npx genkit start -- npm run start

Rufen Sie http://localhost:4000/flows auf, um Ihre Workflows in der Benutzeroberfläche zu testen.

4. Projekt bereitstellen

Sobald Ihr Projekt lokal konfiguriert und getestet wurde, können Sie es auf einer beliebigen Node.js-kompatiblen Plattform bereitstellen. Die Schritte zur Bereitstellung variieren je nach Anbieter. Im Allgemeinen konfigurieren Sie jedoch die folgenden Einstellungen:

Einstellung Wert
Laufzeit Node.js 20 oder höher
Build-Befehl npm run build
Startbefehl npm start
Umgebungsvariablen GOOGLE_GENAI_API_KEY=<your-api-key> und andere erforderliche Secrets festlegen

Der Befehl start (npm start) sollte auf den kompilierten Einstiegspunkt verweisen, in der Regel lib/index.js. Achten Sie darauf, alle erforderlichen Umgebungsvariablen für Ihre Bereitstellungsplattform hinzuzufügen.

Nach der Bereitstellung können Sie den Flow mit der angegebenen Dienst-URL als HTTPS-Endpunkt aufrufen.