Firebase Genkit tiene integraciones integradas que te ayudan a implementar tus flujos en Cloud Functions para Firebase y Google Cloud Run, pero también puedes implementar tus flujos en cualquier plataforma que pueda entregar una app de Express.js, ya sea un servicio en la nube o autoalojado.
Esta página, como ejemplo, te guía a través del proceso de implementación del flujo de la muestra predeterminado.
Antes de comenzar
- Node.js 20 y versiones posteriores: Confirma que tu entorno use la versión 20 de Node.js o una posterior (node --version).
- Debes estar familiarizado con el concepto de flujos de Genkit.
1. Configura tu proyecto
Crea un directorio para el proyecto:
export GENKIT_PROJECT_HOME=~/tmp/genkit-express-project
mkdir -p $GENKIT_PROJECT_HOME
cd $GENKIT_PROJECT_HOME
Cómo inicializar un proyecto de Node.js:
npm init -y
Instala Genkit y las dependencias necesarias:
npm install --save genkit @genkit-ai/googleai
npm install -D genkit-cli typescript tsx
2. Configura tu app de Genkit
Configura un flujo y un servidor de muestra:
En
src/index.ts
, define un flujo de muestra y configura el servidor de flujo: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], });
También hay algunos parámetros opcionales para
startFlowServer
que puedes especificar:port
: Es el puerto de red en el que se escuchará. Si no se especifica, el servidor escucha en el puerto definido en la variable de entorno PORT y, si no se establece PORT, se establece de forma predeterminada en 3400.cors
: La política de CORS del servidor de flujo. Si accederás a estos extremos desde una aplicación web, es probable que necesites especificar esto.pathPrefix
: Es un prefijo de ruta opcional que se agrega antes de los extremos de tu flujo.jsonParserOptions
: Son opciones para pasar al analizador de cuerpo de JSON de Express.
Configura las credenciales del proveedor del modelo:
Configura las variables de entorno necesarias para tu proveedor de modelos. En esta guía, usaremos la API de Gemini de Google AI Studio como ejemplo.
Obtén una clave de API de Google AI Studio
Después de crear una clave de API, configura la variable de entorno
GOOGLE_GENAI_API_KEY
en tu clave con el siguiente comando:export GOOGLE_GENAI_API_KEY=<your API key>
Los diferentes proveedores de implementación tendrán diferentes formas de proteger tu clave de API en su entorno. Por motivos de seguridad, asegúrate de que tu clave de API no esté expuesta públicamente.
3. Prepara tu proyecto de Node.js para la implementación
Agrega secuencias de comandos de inicio y compilación a package.json
Para implementar un proyecto de Node.js, define las secuencias de comandos start
y build
en package.json
. Para un proyecto de TypeScript, estas secuencias de comandos se verán de la siguiente manera:
"scripts": {
"start": "node --watch lib/index.js",
"build": "tsc"
},
Compila y prueba de manera local
Ejecuta el comando de compilación, luego inicia el servidor y pruébalo de forma local para confirmar que funcione como se espera.
npm run build
npm start
En otra ventana de terminal, prueba el extremo:
curl -X POST "http://127.0.0.1:3400/menuSuggestionFlow" \
-H "Content-Type: application/json" \
-d '{"data": "banana"}'
Opcional: Inicia la IU para desarrolladores
Puedes usar la IU para desarrolladores para probar flujos de forma interactiva durante el desarrollo:
npx genkit start -- npm run start
Navega a http://localhost:4000/flows para probar tus flujos en la IU.
4. Implementa el proyecto
Una vez que tu proyecto esté configurado y probado de forma local, estará todo listo para implementarlo en cualquier plataforma compatible con Node.js. Los pasos de implementación varían según el proveedor, pero, por lo general, configurarás los siguientes parámetros:
Configuración | Valor |
---|---|
Entorno de ejecución | Node.js 20 o una versión posterior |
Comando de compilación | npm run build |
Comando start | npm start |
Variables de entorno | Establece GOOGLE_GENAI_API_KEY=<your-api-key> y otros secretos necesarios |
El comando start
(npm start
) debe apuntar a tu punto de entrada compilado, por lo general, lib/index.js
. Asegúrate de agregar todas las variables de entorno necesarias para tu plataforma de implementación.
Después de la implementación, puedes usar la URL del servicio proporcionada para invocar tu flujo como un extremo HTTPS.