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
Utwórz katalog projektu:
export GENKIT_PROJECT_HOME=~/tmp/genkit-express-project
mkdir -p $GENKIT_PROJECT_HOME
cd $GENKIT_PROJECT_HOME
Inicjowanie projektu Node.js:
npm init -y
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
Skonfiguruj przykładowy proces i serwer:
W
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.
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.