Implementar flujos en cualquier plataforma de Node.js

Firebase Genkit tiene integraciones incorporadas que te ayudan a implementar tus flujos en Firebase Cloud Functions y Google Cloud Run, pero también puedes implementarlos en cualquier plataforma que pueda entregar una app de Express.js, ya sea un servicio en la nube o autoalojada.

En esta página, a modo de ejemplo, se explica el proceso de implementación del flujo de muestra predeterminado.

  1. Instala las herramientas necesarias:

    • Asegúrate de usar la versión 20 del nodo o una posterior (ejecuta node --version para verificarlo).
  2. Crea un directorio para el proyecto de muestra de Genkit:

    export GENKIT_PROJECT_HOME=~/tmp/genkit-express-project
    mkdir -p $GENKIT_PROJECT_HOME
    cd $GENKIT_PROJECT_HOME
    

    Si vas a usar un IDE, ábrelo en este directorio.

  3. Inicializa un proyecto de Node.js:

    npm init -y
    
  4. Inicializa un proyecto de Genkit:

    genkit init
    
    1. Selecciona Node.js como la opción de plataforma de implementación (también están disponibles las plantillas para Firebase Cloud Functions y Google Cloud Run).

    2. Selecciona tu modelo:

      Gemini (IA de Google)

      La forma más sencilla de comenzar es con la API de Gemini de la IA de Google. Asegúrate de que esté disponible en tu región.

      Genera una clave de API para la API de Gemini con Google AI Studio. Luego, establece la variable de entorno GOOGLE_API_KEY en tu clave:

      export GOOGLE_API_KEY=<your API key>
      

      Gemini (Vertex AI)

      Si la API de Gemini de Google AI no está disponible en tu región, considera usar la API de Vertex AI, que también ofrece Gemini y otros modelos. Deberás tener un proyecto de Google Cloud con facturación habilitada, habilitar la API de AI Platform y configurar algunas variables de entorno adicionales:

      gcloud services enable aiplatform.googleapis.com
      export GCLOUD_PROJECT=<your project ID>
      export GCLOUD_LOCATION=us-central1
      

      Consulta https://cloud.google.com/vertex-ai/generative-ai/pricing para conocer los precios de Vertex AI.

    3. Elige las respuestas predeterminadas para el resto de las preguntas, que inicializarán la carpeta del proyecto con algún código de muestra.

  5. Compila y ejecuta el código de muestra:

    npm run build
    genkit flow:run menuSuggestionFlow "\"banana\"" -s
    
  6. Opcional: Inicia la IU para desarrolladores:

    genkit start
    

    Luego, navega a http://localhost:4000/flows y ejecuta el flujo con la IU del desarrollador.

    Cuando hayas terminado, presiona Ctrl+C en la consola para salir de la IU.

  7. Prueba el extremo Express:

    npm run start
    

    Luego, en otra ventana:

    curl -X POST "http://127.0.0.1:3400/menuSuggestionFlow?stream=true" -H "Content-Type: application/json"  -d '{"data": "banana"}'
    
  8. Si todo funciona como se espera, puedes implementar el flujo en el proveedor que elijas. Los detalles dependerán del proveedor, pero, en general, debes establecer las siguientes opciones de configuración:

    Parámetro de configuración Valor
    Entorno de ejecución Node.js 20 o una versión más reciente
    Comando de compilación npm run build
    Comando de inicio npm run start
    Variables de entorno GOOGLE_API_KEY=<your-api-key> (o los secretos que sean obligatorios)