Firebase Genkit dispose d'intégrations intégrées qui vous aident à déployer vos flux dans Cloud Functions pour Firebase et Google Cloud Run. Vous pouvez également les déployer sur n'importe quelle plate-forme pouvant diffuser une application Express.js, qu'il s'agisse d'un service cloud ou d'un service auto-hébergé.
À titre d'exemple, cette page vous explique comment déployer l'exemple de flux par défaut.
Avant de commencer
- Node.js 20 ou version ultérieure: vérifiez que votre environnement utilise la version 20 ou ultérieure de Node.js (node --version).
- Vous devez connaître le concept de flux de Genkit.
1. Configurer votre projet
Créez un répertoire pour le projet:
export GENKIT_PROJECT_HOME=~/tmp/genkit-express-project
mkdir -p $GENKIT_PROJECT_HOME
cd $GENKIT_PROJECT_HOME
Initialisez un projet Node.js:
npm init -y
Installez Genkit et les dépendances nécessaires:
npm install --save genkit @genkit-ai/googleai
npm install -D genkit-cli typescript tsx
2. Configurer votre application Genkit
Configurez un exemple de flux et de serveur:
Dans
src/index.ts
, définissez un exemple de flux et configurez le serveur de flux: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], });
Vous pouvez également spécifier des paramètres facultatifs pour
startFlowServer
:port
: port réseau à écouter. Si elle n'est pas spécifiée, le serveur écoute sur le port défini dans la variable d'environnement PORT. Si PORT n'est pas défini, la valeur par défaut est 3400.cors
: règle CORS du serveur de flux. Si vous accédez à ces points de terminaison à partir d'une application Web, vous devrez probablement le spécifier.pathPrefix
: préfixe de chemin d'accès facultatif à ajouter avant vos points de terminaison de flux.jsonParserOptions
: options à transmettre à l'analyseur de corps JSON d'Express.
Configurez les identifiants du fournisseur de modèles:
Configurez les variables d'environnement requises pour votre fournisseur de modèles. Dans ce guide, nous utiliserons l'API Gemini de Google AI Studio comme exemple.
Obtenir une clé API depuis Google AI Studio
Après avoir créé une clé API, définissez la variable d'environnement
GOOGLE_GENAI_API_KEY
sur votre clé à l'aide de la commande suivante:export GOOGLE_GENAI_API_KEY=<your API key>
Les différents fournisseurs de déploiement ont des méthodes différentes pour sécuriser votre clé API dans leur environnement. Pour des raisons de sécurité, assurez-vous que votre clé API n'est pas exposée publiquement.
3. Préparer votre projet Node.js au déploiement
Ajouter des scripts de démarrage et de compilation à package.json
Pour déployer un projet Node.js, définissez des scripts start
et build
dans package.json
. Pour un projet TypeScript, ces scripts se présentent comme suit:
"scripts": {
"start": "node --watch lib/index.js",
"build": "tsc"
},
Compiler et tester en local
Exécutez la commande de compilation, puis démarrez le serveur et testez-le localement pour vérifier qu'il fonctionne comme prévu.
npm run build
npm start
Dans une autre fenêtre de terminal, testez le point de terminaison:
curl -X POST "http://127.0.0.1:3400/menuSuggestionFlow" \
-H "Content-Type: application/json" \
-d '{"data": "banana"}'
Facultatif: Démarrer l'UI du développeur
Vous pouvez utiliser l'UI du développeur pour tester les flux de manière interactive pendant le développement:
npx genkit start -- npm run start
Accédez à http://localhost:4000/flows pour tester vos flux dans l'interface utilisateur.
4. Déployer le projet
Une fois votre projet configuré et testé en local, vous pouvez le déployer sur n'importe quelle plate-forme compatible avec Node.js. Les étapes de déploiement varient selon le fournisseur, mais vous devez généralement configurer les paramètres suivants:
Paramètre | Valeur |
---|---|
Exécution | Node.js 20 ou version ultérieure |
Commande de compilation | npm run build |
Commande de démarrage | npm start |
Variables d'environnement | Définir GOOGLE_GENAI_API_KEY=<your-api-key> et d'autres secrets nécessaires |
La commande start
(npm start
) doit pointer vers votre point d'entrée compilé, généralement lib/index.js
. Veillez à ajouter toutes les variables d'environnement nécessaires pour votre plate-forme de déploiement.
Après le déploiement, vous pouvez utiliser l'URL de service fournie pour appeler votre flux en tant que point de terminaison HTTPS.