Puedes implementar flujos de Firebase Genkit como servicios web con Cloud Run. En esta página, a modo de ejemplo, se explica el proceso de implementación del flujo de muestra predeterminado.
Instala las herramientas necesarias:
Asegúrate de usar Node.js 20 o una versión posterior (ejecuta
node --version
para verificarlo).Instala Google Cloud CLI.
Crea un proyecto nuevo de Google Cloud con la consola de Cloud o elige uno existente. El proyecto debe estar vinculado a una cuenta de facturación.
Después de crear o elegir un proyecto, configura Google Cloud CLI para usarlo:
gcloud init
Crea un directorio para el proyecto de muestra de Genkit:
mkdir -p ~/tmp/genkit-cloud-project
cd ~/tmp/genkit-cloud-project
Si vas a usar un IDE, ábrelo en este directorio.
Inicializa un proyecto de Node.js en el directorio de tu proyecto:
npm init -y
Inicializa Genkit en tu proyecto de Node.js:
genkit init
- Selecciona Google Cloud como la plataforma de implementación.
- Selecciona el proveedor de modelos que deseas usar.
Acepta los valores predeterminados para los mensajes restantes. La herramienta
genkit
creará algunos archivos fuente de muestra para que puedas comenzar a desarrollar tus propios flujos de IA. Sin embargo, durante el resto de este instructivo, solo implementarás el flujo de muestra.Haz que las credenciales de API estén disponibles para la función implementada. Según el proveedor de modelos que elijas, realiza una de las siguientes acciones:
Gemini (IA de Google)
Asegúrate de que la IA de Google esté disponible en tu región.
Genera una clave de API para la API de Gemini con Google AI Studio.
Haz que la clave de API esté disponible en el entorno de Cloud Run:
- En la consola de Cloud, habilita la API de Secret Manager.
- En la página Secret Manager, crea un secreto nuevo que contenga tu clave de API.
- Después de crear el secreto, en la misma página, otorga a tu cuenta de servicio de procesamiento predeterminada acceso al secreto con la función de Descriptor de acceso a secretos de Secret Manager. (Puedes buscar el nombre de la cuenta de servicio de procesamiento predeterminada en la página de IAM).
En un paso posterior, cuando implementes tu servicio, deberás hacer referencia al nombre de este secreto.
Opcional: Si deseas ejecutar el flujo de manera local, como en el siguiente paso, configura la variable de entorno
GOOGLE_GENAI_API_KEY
para tu clave:export GOOGLE_GENAI_API_KEY=<your API key>
Gemini (Vertex AI)
En la consola de Cloud, habilita la API de Vertex AI para tu proyecto.
En la página IAM, asegúrate de que la Cuenta de servicio de procesamiento predeterminada tenga el rol Usuario de Vertex AI.
Opcional: Si deseas ejecutar el flujo de manera local, como en el siguiente paso, configura algunas variables de entorno adicionales y usa la herramienta
gcloud
para configurar las credenciales predeterminadas de la aplicación:export GCLOUD_PROJECT=<your project ID>
export GCLOUD_LOCATION=us-central1
gcloud auth application-default login
El único secreto que debes configurar en este instructivo es para el proveedor del modelo, pero, en general, debes hacer algo similar con cada servicio que use tu flujo.
Opcional: Prueba el flujo en la IU para desarrolladores:
Inicia la IU:
genkit start
En la IU del desarrollador (http://localhost:4000/), ejecuta el flujo:
Haz clic en menuSuggestionFlow.
En la pestaña Input JSON, proporciona un sujeto para el modelo:
"banana"
Haz clic en Ejecutar.
Si todo funciona según lo esperado hasta ahora, puedes compilar y, luego, implementar el flujo:
Gemini (IA de Google)
npm run build
gcloud run deploy --update-secrets=GOOGLE_GENAI_API_KEY=<your-secret-name>:latest
Gemini (Vertex AI)
npm run build
gcloud run deploy
Elige
N
cuando se te pregunte si quieres permitir las invocaciones sin autenticar. Si respondesN
, se configurará tu servicio para que requiera credenciales de IAM. Consulta la sección sobre autenticación en los documentos de Cloud Run para obtener información sobre cómo proporcionar estas credenciales.
Una vez finalizada la implementación, la herramienta imprimirá la URL de servicio. Puedes probarlo con curl
:
curl -X POST https://<service-url>/menuSuggestionFlow \
-H "Authorization: Bearer $(gcloud auth print-identity-token)" \
-H "Content-Type: application/json" -d '{"data": "banana"}'