Firebase Genkit ha integrazioni integrate che ti aiutano a eseguire il deployment dei flussi su Cloud Functions per Firebase e Google Cloud Run, ma puoi anche eseguire il deployment dei flussi su qualsiasi piattaforma in grado di pubblicare un'app Express.js, che si tratti di un servizio cloud o self-hosted.
Questa pagina, ad esempio, illustra la procedura di deployment del flusso di esempio predefinito.
Prima di iniziare
- Node.js 20 e versioni successive: verifica che il tuo ambiente utilizzi Node.js 20 o versioni successive (node --version).
- Devi conoscere il concetto di flussi di Genkit.
1. Configura il progetto
Crea una directory per il progetto:
export GENKIT_PROJECT_HOME=~/tmp/genkit-express-project
mkdir -p $GENKIT_PROJECT_HOME
cd $GENKIT_PROJECT_HOME
Inizializza un progetto Node.js:
npm init -y
Installa Genkit e le dipendenze necessarie:
npm install --save genkit @genkit-ai/googleai
npm install -D genkit-cli typescript tsx
2. Configurare l'app Genkit
Configura un flusso e un server di esempio:
In
src/index.ts
, definisci un flusso di esempio e configura il server di flusso: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], });
Esistono anche alcuni parametri facoltativi per
startFlowServer
che puoi specificare:port
: la porta di rete su cui ascoltare. Se non specificato, il server rimane in ascolto sulla porta definita nella variabile di ambiente PORT e, se PORT non è impostata, il valore predefinito è 3400.cors
: il criterio CORS del server di flusso. Se accederai a questi endpoint da un'applicazione web, probabilmente dovresti specificarlo.pathPrefix
: un prefisso del percorso facoltativo da aggiungere prima degli endpoint del flusso.jsonParserOptions
: opzioni da passare al parser del corpo JSON di Express
Configura le credenziali del fornitore del modello:
Configura le variabili di ambiente richieste per il provider del modello. In questa guida utilizzeremo l'API Gemini di Google AI Studio come esempio.
Ottenere una chiave API da Google AI Studio
Dopo aver creato una chiave API, imposta la variabile di ambiente
GOOGLE_GENAI_API_KEY
sulla chiave con il seguente comando:export GOOGLE_GENAI_API_KEY=<your API key>
I diversi provider per il deployment avranno modi diversi per proteggere la chiave API nel proprio ambiente. Per motivi di sicurezza, assicurati che la chiave API non sia esposta pubblicamente.
3. Preparare il progetto Node.js per il deployment
Aggiungi script di avvio e compilazione a package.json
Per eseguire il deployment di un progetto Node.js, definisci gli script start
e build
in package.json
. Per un progetto TypeScript, questi script avranno il seguente aspetto:
"scripts": {
"start": "node --watch lib/index.js",
"build": "tsc"
},
Esegui la compilazione e i test in locale
Esegui il comando di compilazione, quindi avvia il server e testalo localmente per verificare che funzioni come previsto.
npm run build
npm start
In un'altra finestra del terminale, testa l'endpoint:
curl -X POST "http://127.0.0.1:3400/menuSuggestionFlow" \
-H "Content-Type: application/json" \
-d '{"data": "banana"}'
(Facoltativo) Avvia l'interfaccia utente per gli sviluppatori
Puoi utilizzare l'interfaccia utente per sviluppatori per testare i flussi in modo interattivo durante lo sviluppo:
npx genkit start -- npm run start
Vai alla pagina http://localhost:4000/flows per testare i flussi nell'interfaccia utente.
4. Esegui il deployment del progetto
Una volta configurato e testato localmente, il progetto è pronto per il deployment su qualsiasi piattaforma compatibile con Node.js. I passaggi di implementazione variano in base al provider, ma in genere dovrai configurare le seguenti impostazioni:
Impostazione | Valore |
---|---|
Tempo di esecuzione | Node.js 20 o versioni successive |
Comando di compilazione | npm run build |
Comando start | npm start |
Variabili di ambiente | Imposta GOOGLE_GENAI_API_KEY=<your-api-key> e gli altri secret necessari |
Il comando start
(npm start
) deve puntare al punto di ingresso compilato, in genere lib/index.js
. Assicurati di aggiungere tutte le variabili di ambiente necessarie per la tua piattaforma di deployment.
Dopo il deployment, puoi utilizzare l'URL del servizio fornito per richiamare il flusso come endpoint HTTPS.