Firebase Genkit avec Cloud Run

Vous pouvez déployer des flux Firebase Genkit en tant que services Web à l'aide de Cloud Run. Cette page, à titre d'exemple, vous guide tout au long du processus de déploiement de l'exemple par défaut le flux de travail.

  1. Installez la Google Cloud CLI si ce n'est pas déjà fait.

  2. Créez un projet Google Cloud à l'aide de la console Cloud ou choisissez-en un existant. Il doit être associé à un compte de facturation.

    Après avoir créé ou choisi un projet, configurez la CLI Google Cloud pour l'utiliser :

    gcloud auth login
    gcloud init
    
  3. Créez un répertoire pour l'exemple de projet Genkit:

    mkdir -p ~/tmp/genkit-cloud-project
    cd ~/tmp/genkit-cloud-project
    

    Si vous utilisez un IDE, ouvrez-le dans ce répertoire.

  4. Initialisez un module Go dans le répertoire de votre projet :

    go mod init example/cloudrun
    
  5. Initialisez Genkit dans votre projet:

    genkit init
    

    Sélectionnez le fournisseur de modèles que vous souhaitez utiliser.

    Acceptez les valeurs par défaut pour les autres invites. L'outil genkit crée un exemple de fichier source pour commencer à développer vos propres flux d'IA. Toutefois, pour le reste de ce tutoriel, vous ne déploierez que l'exemple de flux.

  6. Modifiez l'exemple de fichier (main.go ou genkit.go) pour spécifier explicitement le port sur lequel le serveur de flux doit écouter :

    if err := genkit.Init(ctx,
    	&genkit.Options{FlowAddr: ":3400"}, // Add this parameter.
    ); err != nil {
    	log.Fatal(err)
    }
    
  7. Mettez les identifiants de l'API à la disposition de votre fonction déployée. Effectuez l'une des opérations suivantes, en fonction du fournisseur de modèles que vous avez choisi :

    Gemini (IA de Google)

    1. Assurez-vous que l'IA de Google est disponible dans votre région.

    2. Générez une clé API pour l'API Gemini à l'aide de Google AI Studio.

    3. Rendez la clé API disponible dans l'environnement Cloud Run:

      1. Dans la console Cloud, activez l'API Secret Manager.
      2. Le Secret Manager créez un secret contenant votre clé API.
      3. Après avoir créé le secret, sur la même page, accordez à votre compte de service de calcul par défaut l'accès au secret avec le rôle Accesseur de secrets de Secret Manager. (Vous pouvez rechercher le nom du compte de service Compute par défaut sur la page IAM.)

      À l'étape suivante, lorsque vous déploierez votre service, vous devrez faire référence au nom de ce secret.

    Gemini (Vertex AI)

    1. Dans la console Cloud, activez l'API Vertex AI pour votre projet.

    2. Sur la page IAM, assurez-vous que le compte de service Compute par défaut dispose du rôle Utilisateur Vertex AI.

    Le seul secret que vous devez configurer pour ce tutoriel concerne le fournisseur de modèle, mais en général, vous devez effectuer une opération similaire pour chaque service utilisé par votre flux.

  8. Facultatif: Testez votre flux dans l'interface utilisateur du développeur:

    1. Configurez votre environnement local pour le fournisseur de modèles que vous avez choisi :

      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. Démarrez l'UI :

      genkit start
      
    3. Dans l'UI du développeur (http://localhost:4000/), exécutez le flux :

      1. Cliquez sur menuSuggestionFlow.

      2. Dans l'onglet Input JSON (Entrée JSON), indiquez un objet pour le modèle:

        "banana"
        
      3. Cliquez sur Exécuter.

  9. Si tout fonctionne comme prévu jusqu'à présent, vous pouvez créer et déployer la flux:

    Gemini (IA de Google)

    gcloud run deploy --port 3400 \
      --update-secrets=GOOGLE_GENAI_API_KEY=<your-secret-name>:latest
    

    Gemini (Vertex AI)

    gcloud run deploy --port 3400 \
      --set-env-vars GCLOUD_PROJECT=<your-gcloud-project> \
      --set-env-vars GCLOUD_LOCATION=us-central1
    

    (GCLOUD_LOCATION configure la région de l'API Vertex que vous souhaitez utiliser.)

    Sélectionnez N lorsque vous êtes invité à autoriser les appels non authentifiés. Si vous répondez N, votre service nécessitera des identifiants IAM. Voir Authentification dans la documentation Cloud Run pour savoir comment fournir ces identifiants.

Une fois le déploiement terminé, l'outil imprime l'URL du service. Vous pouvez tester avec curl:

curl -X POST https://<service-url>/menuSuggestionFlow \
  -H "Authorization: Bearer $(gcloud auth print-identity-token)" \
  -H "Content-Type: application/json" -d '"banana"'