Wdrażanie przepływów na dowolnej platformie Node.js

Firebase Genkit zawiera wbudowane integracje, które ułatwiają wdrażanie przepływów do Cloud Functions dla Firebase i Google Cloud Run, ale możesz też wdrażać przepływy na dowolnej platformie, która może obsługiwać aplikację Express.js, niezależnie od tego, czy jest to usługa w chmurze, czy hostowana lokalnie.

Na tej stronie znajdziesz przykładowy proces wdrażania domyślnego przykładowego procesu.

Zanim zaczniesz

  • Node.js 20 lub nowszy: sprawdź, czy Twoje środowisko używa Node.js w wersji 20 lub nowszej (node --version).
  • Musisz znać koncepcję przepływów w Genkit.

1. Konfigurowanie projektu

  1. Utwórz katalog projektu:

    export GENKIT_PROJECT_HOME=~/tmp/genkit-express-project
    mkdir -p $GENKIT_PROJECT_HOME
    cd $GENKIT_PROJECT_HOME
  2. Inicjowanie projektu Node.js:

    npm init -y
  3. Zainstaluj Genkit i niezbędne zależności:

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

2. Konfigurowanie aplikacji Genkit

  1. Skonfiguruj przykładowy proces i serwer:

    src/index.ts zdefiniuj przykładowy proces i skonfiguruj serwer procesów:

    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],
    });
    

    Dostępne są też niektóre opcjonalne parametry startFlowServer, które możesz określić:

    • port: port sieciowy, na którym ma nasłuchiwać. Jeśli nie określono inaczej, serwer nasłuchuje na porcie określonym w zmiennej środowiskowej PORT. Jeśli zmienna PORT nie jest ustawiona, domyślnie jest to port 3400.
    • cors: zasady CORS serwera przepływu. Jeśli będziesz uzyskiwać dostęp do tych punktów końcowych z aplikacji internetowej, prawdopodobnie musisz to określić.
    • pathPrefix: opcjonalny prefiks ścieżki do dodania przed punktami końcowymi przepływu.
    • jsonParserOptions: opcje przekazywane do parsera treści w formacie JSON Expressa.
  2. Konfigurowanie danych logowania dostawcy modelu:

    Skonfiguruj wymagane zmienne środowiskowe dla dostawcy modelu. W tym przewodniku posłużymy się jako przykładem interfejsem Gemini API z Google AI Studio.

    Uzyskiwanie klucza interfejsu API z Google AI Studio

    Po utworzeniu klucza interfejsu API ustaw zmienną środowiskową GOOGLE_GENAI_API_KEY na klucz za pomocą tego polecenia:

    export GOOGLE_GENAI_API_KEY=<your API key>

    Różni dostawcy mają różne sposoby zabezpieczania klucza interfejsu API w swoim środowisku. Ze względów bezpieczeństwa upewnij się, że Twój klucz interfejsu API nie jest publicznie dostępny.

3. Przygotowanie projektu Node.js do wdrożenia

Dodaj skrypty startowe i skrypty budowania do package.json

Aby wdrożyć projekt Node.js, zdefiniuj skrypty start i build w pliku package.json. W przypadku projektu TypeScript te skrypty będą wyglądać tak:

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

Kompilowanie i testowanie lokalnie

Uruchom polecenie kompilacji, a następnie uruchom serwer i przetestuj go lokalnie, aby sprawdzić, czy działa zgodnie z oczekiwaniami.

npm run build
npm start

W innym oknie terminala przetestuj punkt końcowy:

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

Opcjonalnie: uruchom interfejs dla deweloperów

W interfejsie dla programistów możesz interaktywnie testować przepływy podczas tworzenia aplikacji:

npx genkit start -- npm run start

Aby przetestować przepływy w interfejsie, otwórz adres http://localhost:4000/flows.

4. Wdrażanie projektu

Gdy projekt zostanie skonfigurowany i przetestowany lokalnie, możesz go wdrożyć na dowolnej platformie zgodnej z Node.js. Kroki wdrożenia różnią się w zależności od dostawcy, ale na ogół należy skonfigurować te ustawienia:

Ustawienie Wartość
Czas działania Node.js 20 lub nowszy
Komenda kompilacji npm run build
Polecenie start npm start
Zmienne środowiskowe Ustaw GOOGLE_GENAI_API_KEY=<your-api-key> i inne niezbędne obiekty tajne

Polecenie start (npm start) powinno wskazywać na skompilowany punkt wejścia, zwykle lib/index.js. Pamiętaj, aby dodać wszystkie niezbędne zmienne środowiskowe dla platformy wdrożeniowej.

Po wdrożeniu możesz użyć podanego adresu URL usługi, aby wywołać przepływ jako punkt końcowy HTTPS.