Implementar flujos en cualquier plataforma de hosting de apps

Puedes implementar flujos de Firebase Genkit como servicios web mediante cualquier servicio que pueda alojar un objeto binario de Go. En esta página, se explica el proceso general de implementación del flujo de muestra predeterminado y se señala dónde debes realizar acciones específicas del proveedor.

  1. 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.

  2. Inicializa un módulo de Go en el directorio de tu proyecto:

    go mod init example/cloudrun
    
  3. 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 que comiences a desarrollar tus propios flujos de IA. Para el resto de este instructivo, solo implementarás el flujo de muestra.

  4. Edita el archivo de muestra (main.go o genkit.go) para especificar de forma explícita el puerto en el que debe escuchar el servidor de 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 según corresponda.

  5. Implementa alguna forma de autenticación y autorización para conectar el acceso a los flujos que planeas implementar.

    Debido a que la mayoría de los servicios de IA generativa son de uso medido, es probable que no quieras permitir el acceso abierto a ningún extremo que los llame. Algunos servicios de hosting proporcionan una capa de autenticación como frontend para las apps implementadas en ellos, que puedes usar con este propósito.

  6. Haz que las credenciales de la API estén disponibles para la función implementada. Según el proveedor de modelos que hayas elegido, realiza una de las siguientes acciones:

    Gemini (IA de Google)

    1. Asegúrate de que la IA de Google esté disponible en tu región.

    2. Genera una clave de API para la API de Gemini con Google AI Studio.

    3. 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 controlar de forma segura secretos como las claves de API. A menudo, estos secretos están disponibles para tu app en forma de variables de entorno. Si puedes asignar tu clave de API a la variable GOOGLE_GENAI_API_KEY, Genkit la usará automáticamente. De lo contrario, debes modificar la llamada a googleai.Init() para establecer la clave de forma explícita. Sin embargo, no incorpores la clave directamente en el código. Utiliza las funciones de administración de secretos que proporciona tu proveedor de hosting).

    Gemini (Vertex AI)

    1. En la consola de Cloud, habilita la API de Vertex AI para tu proyecto.

    2. En la página IAM, crea una cuenta de servicio para acceder a la API de Vertex AI si no tienes una.

      Otórgale a la cuenta el rol de usuario de Vertex AI.

    3. Configura las credenciales predeterminadas de la aplicación en tu entorno de hosting.

    4. Configura el complemento con tu ID del proyecto de Google Cloud y la ubicación de la API de Vertex AI que deseas usar. Para ello, configura las variables de entorno GCLOUD_PROJECT y GCLOUD_LOCATION en tu entorno de hosting o en tu llamada a vertexai.Init().

    El único secreto que debes configurar para este instructivo es el del proveedor del modelo, pero, en general, debes hacer algo similar para cada servicio que use tu flujo.

  7. Opcional: Prueba tu flujo en la IU para desarrolladores:

    1. 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
      
    2. Inicia la IU:

      genkit start
      
    3. En la IU del desarrollador (http://localhost:4000/), ejecuta el flujo:

      1. Haz clic en menuSugeririonFlow.

      2. En la pestaña Input JSON, proporciona un asunto para el modelo:

        "banana"
        
      3. Haz clic en Ejecutar.

  8. Si todo funciona como se esperaba hasta ahora, puedes compilar y, luego, implementar el flujo con las herramientas de tu proveedor.