Puedes implementar flujos de Firebase Genkit como servicios web con cualquier servicio que pueda alojar un objeto binario de Go. Esta página, por ejemplo, te guía a través del proceso general de implementar el flujo de muestra predeterminado y señala dónde debes realizar acciones para proveedores específicos.
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 módulo de Go en el directorio de tu proyecto:
go mod init example/cloudrun
Inicializa Genkit en tu proyecto:
genkit init
Selecciona el proveedor de modelos que deseas usar.
Acepta los valores predeterminados para el resto de los mensajes. La herramienta
genkit
creará un archivo fuente de muestra para comenzar a desarrollar tus propios flujos de IA. Para el resto de este instructivo, solo implementarás el flujo de muestra.Edita el archivo de muestra (
main.go
ogenkit.go
) para especificar explícitamente el puerto en el que debe escuchar el servidor del flujo:if err := genkit.Init(ctx, &genkit.Options{FlowAddr: ":3400"}, // Add this parameter. ); err != nil { log.Fatal(err) }
Si tu proveedor requiere que escuches en un puerto específico, asegúrate de configurar Genkit como corresponda.
Implementar alguna forma de autenticación y autorización para conectar el acceso a los flujos que planeas implementar.
Como la mayoría de los servicios de IA generativa son de uso medido, es probable que no quieras permitir el acceso abierto a cualquier endpoint que los llame. Algunos servicios de hosting proporcionan una capa de autenticación como frontend para las aplicaciones implementadas en ellos, y puedes usarla para este propósito.
Haz que las credenciales de la API estén disponibles para la función implementada. Realiza una de las siguientes acciones según el proveedor de modelos que hayas elegido:
Gemini (IA de Google)
Asegúrate de que la IA de Google esté disponibles en tu región.
Genera una clave de API para la la API de Gemini con Google AI Studio.
Haz que la clave de API esté disponible en el entorno implementado.
La mayoría de los hosts de apps proporcionan algún sistema para manejar Secrets de forma segura, como como claves de API. A menudo, estos Secrets están disponibles para tu app como variables de entorno. Si puedes asignar tu clave de API al la variable
GOOGLE_GENAI_API_KEY
, Genkit la usará automáticamente. De lo contrario, debes modificar la llamada agoogleai.Init()
para que establezca la clave de forma explícita. (Sin embargo, no incorpores la clave directamente en el código. Usa las instalaciones de administración de Secrets que proporciona tu proveedor de hosting).
Gemini (Vertex AI)
En la consola de Cloud, Habilita la API de Vertex AI para tu proyecto.
En la página de IAM, crea una cuenta de servicio para acceder a la API de Vertex AI si no la tienes.
Otórgale a la cuenta el rol de usuario de Vertex AI.
Configura las credenciales predeterminadas de la aplicación en tu entorno de hosting.
Configura el complemento con tu ID del proyecto de Google Cloud y la ubicación de la API de Vertex AI que quieres usar. Puedes hacerlo estableciendo las variables de entorno
GCLOUD_PROJECT
yGCLOUD_LOCATION
en tu entorno de hosting o en tu llamada avertexai.Init()
.
El único secreto que debes configurar para este instructivo es para el proveedor del modelo, pero, en general, debes hacer algo similar para cada servicio que tu flujo use.
Opcional: Prueba tu flujo en la IU para desarrolladores:
Configura tu entorno local para el proveedor de modelos que elegiste:
Gemini (IA de Google)
export GOOGLE_GENAI_API_KEY=<your API key>
Gemini (Vertex AI)
export GCLOUD_PROJECT=<your project ID>
export GCLOUD_LOCATION=us-central1
gcloud auth application-default login
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 asunto para el modelo:
"banana"
Haz clic en Ejecutar.
Si todo funciona como se esperaba hasta ahora, puedes compilar e implementar el flujo con las herramientas de tu proveedor.