Répondre à des questions en fonction de conversations Chat avec une application Chat avec Gemini AI

Ce tutoriel explique comment créer une application Google Chat qui répond à des questions basées sur des conversations dans des espaces Chat à l'aide de l'IA générative optimisée par Vertex AI avec Gemini. L'application Chat utilise l'API Google Workspace Events et Pub/Sub pour reconnaître les questions posées dans les espaces Chat et y répondre en temps réel, même si elle n'est pas mentionnée.

L'application Chat utilise tous les messages envoyés dans l'espace comme source de données et base de connaissances. Lorsqu'une personne pose une question, l'application Chat recherche les réponses déjà partagées, puis en partage une. Si aucune réponse n'est trouvée, il indique qu'il ne peut pas répondre. Pour chaque réponse, les utilisateurs peuvent cliquer sur un bouton d'action accessoire pour @mentionner un gestionnaire d'espace et lui demander une réponse. En utilisant l'IA Gemini, l'application Google Chat s'adapte et enrichit sa base de connaissances en s'entraînant en continu sur les conversations dans les espaces auxquels elle est ajoutée.

Voici comment fonctionne l'application Chat dans un espace d'intégration et d'assistance des employés :

  • Mentionner l'application d'assistant IA pour les connaissances l'ajoute à un espace.
    Figure 1. Charlie ajoute l'application Chat d'assistant IA à un espace Chat.
  • Dana pose une question.
    Figure 2 : Dana demande si l'entreprise propose des formations en art oratoire.
  • L'application de chat de l'assistant de connaissances basé sur l'IA répond à la question.
    Figure 3. L'application Chat d'assistant de connaissances basé sur l'IA invite Vertex AI avec Gemini à répondre à la question de Dana en se basant sur l'historique des conversations de l'espace Chat, puis partage la réponse.

Prérequis

Objectifs

  • Créez une application Chat qui utilise l'IA générative pour répondre à des questions basées sur les connaissances partagées dans les conversations des espaces Chat.
  • Avec l'IA générative :
    • Détecter les questions des employés et y répondre
    • Apprendre en continu à partir des conversations en cours dans un espace Chat.
  • Écouter les messages dans un espace Chat et y répondre en temps réel, même lorsque l'application Chat n'est pas directement mentionnée
  • Faites persister les messages en écrivant dans une base de données Firestore et en lisant les données qu'elle contient.
  • Facilitez la collaboration dans un espace Chat en mentionnant les administrateurs de l'espace lorsqu'aucune réponse n'est trouvée à une question.

Architecture

Le schéma suivant illustre l'architecture des ressources Google Workspace et Google Cloud utilisées par l'application de chat de l'assistant de connaissances IA.

Schéma de l'architecture de l'application de chat de l'assistant de connaissances basé sur l'IA

Voici comment fonctionne l'application de chat de l'assistant IA :

  • Un utilisateur ajoute l'application Chat d'assistant de connaissances IA à un espace Chat :

    1. L'application Chat invite l'utilisateur qui l'a ajoutée à l'espace Chat à configurer l'authentification et l'autorisation.

    2. L'application Chat récupère les messages de l'espace en appelant la méthode spaces.messages.list dans l'API Chat, puis stocke les messages récupérés dans une base de données Firestore.

    3. L'application Chat appelle la méthode subscriptions.create dans l'API Google Workspace Events pour commencer à écouter les événements tels que les messages dans l'espace. Le point de terminaison de notification de l'abonnement est un sujet Pub/Sub qui utilise Eventarc pour transférer l'événement vers l'application Chat.

    4. L'application Chat publie un message de présentation dans l'espace.

  • Un utilisateur publie un message dans l'espace de discussion :

    1. L'application Chat reçoit le message en temps réel à partir du sujet Pub/Sub.

    2. L'application Chat ajoute le message à la base de données Firestore.

      Si un utilisateur modifie ou supprime le message ultérieurement, l'application Chat reçoit l'événement de modification ou de suppression en temps réel, puis modifie ou supprime le message dans la base de données Firestore.

    3. L'application Chat envoie le message à Vertex AI avec Gemini :

      1. La requête demande à Vertex AI avec Gemini de vérifier si le message inclut une question. Si c'est le cas, Gemini répond à la question en se basant sur l'historique des messages de l'espace Chat conservé dans Firestore, puis l'application Google Chat envoie le message à l'espace Chat. Si ce n'est pas le cas, ne répondez pas.

      2. Si Vertex AI avec Gemini répond à la question, l'application Chat publie la réponse en appelant la méthode spaces.messages.create dans l'API Chat à l'aide de l'authentification de l'application.

        Si Vertex AI avec Gemini ne peut pas répondre à la question, l'application Chat publie un message indiquant qu'elle ne trouve pas de réponse à cette question dans l'historique de l'espace Chat.

        Les messages incluent toujours un bouton d'action accessoire sur lequel les utilisateurs peuvent cliquer. L'application Chat @mentionne alors un administrateur de l'espace en lui demandant de répondre.

  • L'application Chat reçoit une notification de cycle de vie de l'API Google Workspace Events indiquant que l'abonnement à l'espace Chat est sur le point d'expirer :

    1. L'application Chat envoie une requête pour renouveler l'abonnement en appelant la méthode subscriptions.patch dans l'API Google Workspace Events.
  • L'application Chat est supprimée d'un espace Chat :

    1. L'application Chat supprime l'abonnement en appelant la méthode subscriptions.delete dans l'API Google Workspace Events.

    2. L'application Chat supprime les données de l'espace Chat de Firestore.

Examiner les produits utilisés par l'application de chat de l'assistant de connaissances IA

L'application Chat de l'assistant de connaissances IA utilise les produits Google Workspace et Google Cloud suivants :

  • API Vertex AI avec Gemini : une plate-forme d'IA générative optimisée par Gemini. L'application de chat de l'assistant de connaissances IA utilise l'API Vertex AI avec Gemini pour reconnaître, comprendre et répondre aux questions des employés.
  • API Chat : API permettant de développer des applications Google Chat qui reçoivent et traitent les événements d'interaction Chat, comme les messages. L'application Chat de l'assistant de connaissances IA utilise l'API Chat pour :
    • Recevoir les événements d'interaction envoyés par Chat et y répondre
    • Répertorie les messages envoyés dans un espace.
    • Publiez des réponses aux questions des utilisateurs dans un espace.
    • Configurez les attributs qui déterminent son apparence dans Chat, comme le nom et l'image de l'avatar.
  • API Google Workspace Events : Cette API vous permet de vous abonner à des événements et de gérer les notifications de modification dans les applications Google Workspace. L'application Chat d'assistance IA utilise l'API Google Workspace Events pour écouter les messages postés dans un espace Chat afin de détecter les questions et d'y répondre, même si elle n'est pas mentionnée.
  • Firestore : base de données de documents sans serveur. L'application de chat de l'assistant de connaissances IA utilise Firestore pour stocker les données des messages envoyés dans un espace Chat.
  • Pub/Sub : service de messagerie asynchrone et évolutif qui dissocie les services de production de messages des services qui traitent ces messages. L'application Chat de l'assistant IA utilise Pub/Sub pour recevoir les événements d'abonnement des espaces Chat.
  • Eventarc : Eventarc vous permet de créer des architectures basées sur des événements sans avoir à implémenter, à personnaliser ni à gérer l'infrastructure sous-jacente. L'application Chat de l'assistant de connaissances d'IA utilise Eventarc pour acheminer les événements de Pub/Sub vers un espace Chat et la fonction Cloud Functions qui reçoit et traite les événements d'abonnement.
  • Cloud Functions : un service de calcul sans serveur léger qui vous permet de créer des fonctions autonomes à usage unique qui peuvent répondre aux événements d'interaction et d'abonnement Chat sans avoir à gérer de serveur ni d'environnement d'exécution. L'application de chat de l'assistant de connaissances IA utilise deux fonctions Cloud nommées :
    • app : hébergez le point de terminaison HTTP auquel Chat envoie les événements d'interaction et utilisez-le comme plate-forme de calcul pour exécuter la logique qui traite ces événements et y répond.
    • eventsApp : reçoit et traite les événements d'espace Chat, comme les messages d'un abonnement Pub/Sub.
    Cloud Functions utilise les produits Google Cloud suivants pour créer et héberger des ressources de calcul :
    • Cloud Build : plate-forme entièrement gérée d'intégration, de livraison et de déploiement continus qui exécute des builds automatisés.
    • Cloud Run : environnement entièrement géré permettant d'exécuter des applications conteneurisées.

Préparer l'environnement

Cette section explique comment créer et configurer un projet Google Cloud pour l'application Chat.

Créer un projet Google Cloud

Console Google Cloud

  1. Dans la console Google Cloud, accédez à Menu  > IAM et administration > Créer un projet.

    Accéder à "Créer un projet"

  2. Dans le champ Nom du projet, saisissez un nom descriptif pour votre projet.

    Facultatif : Pour modifier l'ID du projet, cliquez sur Modifier. Vous ne pourrez plus modifier cet ID une fois le projet créé. Choisissez-en donc un qui répond à vos besoins pour toute la durée de vie du projet.

  3. Dans le champ Emplacement, cliquez sur Parcourir pour afficher les emplacements potentiels de votre projet. Cliquez ensuite sur Sélectionner.
  4. Cliquez sur Créer. La console Google Cloud accède à la page "Tableau de bord" et votre projet est créé en quelques minutes.

CLI gcloud

Dans l'un des environnements de développement suivants, accédez à la Google Cloud CLI (gcloud) :

  • Cloud Shell : pour utiliser un terminal en ligne avec gcloud CLI déjà configuré, activez Cloud Shell.
    Activer Cloud Shell
  • Shell local : pour utiliser un environnement de développement local, installez et initialisez gcloud CLI.
    Pour créer un projet Cloud, utilisez la commande gcloud projects create :
    gcloud projects create PROJECT_ID
    Remplacez PROJECT_ID en définissant l'ID du projet que vous souhaitez créer.

Activez la facturation pour le projet Cloud.

Console Google Cloud

  1. Dans la console Google Cloud, accédez à Facturation. Cliquez sur Menu > Facturation > Mes projets.

    Accéder à la facturation pour Mes projets

  2. Dans Sélectionner une organisation, choisissez l'organisation associée à votre projet Google Cloud.
  3. Sur la ligne du projet, ouvrez le menu Actions (), cliquez sur Modifier la facturation, puis sélectionnez le compte de facturation Cloud.
  4. Cliquez sur Définir le compte.

CLI gcloud

  1. Pour lister les comptes de facturation disponibles, exécutez la commande suivante :
    gcloud billing accounts list
  2. Associez un compte de facturation à un projet Google Cloud :
    gcloud billing projects link PROJECT_ID --billing-account=BILLING_ACCOUNT_ID

    Remplacez les éléments suivants :

    • PROJECT_ID correspond à l'ID du projet pour le projet Cloud pour lequel vous souhaitez activer la facturation.
    • BILLING_ACCOUNT_ID est l'ID du compte de facturation à associer au projet Google Cloud.

Activer les API

Console Google Cloud

  1. Dans la console Google Cloud, activez l'API Google Chat, l'API Vertex AI, l'API Cloud Functions, l'API Firestore, l'API Cloud Build, l'API Pub/Sub, l'API Google Workspace Events, l'API Eventarc et l'API Cloud Run Admin.

    Activer les API

  2. Vérifiez que vous activez les API dans le bon projet Cloud, puis cliquez sur Suivant.

  3. Vérifiez que vous activez les API appropriées, puis cliquez sur Activer.

CLI gcloud

  1. Si nécessaire, définissez le projet Cloud actuel sur celui que vous avez créé :

    gcloud config set project PROJECT_ID

    Remplacez PROJECT_ID par l'ID du projet du projet Cloud que vous avez créé.

  2. Activez l'API Google Chat, l'API Vertex AI, l'API Cloud Functions, l'API Firestore, l'API Cloud Build, l'API Pub/Sub, l'API Google Workspace Events, l'API Eventarc et l'API Cloud Run Admin :

    gcloud services enable chat.googleapis.com \
    aiplatform.googleapis.com \
    cloudfunctions.googleapis.com \
    firestore.googleapis.com \
    cloudbuild.googleapis.com \
    pubsub.googleapis.com \
    workspaceevents.googleapis.com \
    eventarc.googleapis.com \
    run.googleapis.com

Configurer l'authentification et l'autorisation

L'authentification et l'autorisation permettent à l'application Chat d'accéder aux ressources dans Google Workspace et Google Cloud.

Dans ce tutoriel, vous allez publier l'application Google Chat en interne. Vous pouvez donc utiliser des informations de substitution. Avant de publier l'application Google Chat en externe, remplacez les informations de l'espace réservé par de vraies informations pour l'écran de consentement.

  1. Dans la console Google Cloud, accédez à Menu  > > Branding.

    Accéder à "Branding"

  2. Si vous avez déjà configuré, vous pouvez configurer les paramètres de l'écran d'autorisation OAuth suivants dans Branding, Audience et Accès aux données. Si le message pas encore configuré s'affiche, cliquez sur Commencer :

    1. Sous Informations sur l'application, dans Nom de l'application, saisissez AI knowledge assistant.
    2. Sous Adresse e-mail d'assistance utilisateur, sélectionnez votre adresse e-mail ou un groupe Google approprié.
    3. Cliquez sur Suivant.
    4. Sous Audience, sélectionnez Interne. Si vous ne pouvez pas sélectionner Interne, sélectionnez Externe.
    5. Cliquez sur Suivant.
    6. Sous Coordonnées, saisissez une adresse e-mail à laquelle vous pourrez être informé de toute modification apportée à votre projet.
    7. Cliquez sur Suivant.
    8. Sous Terminer, consultez le Règlement sur les données utilisateur dans les services d'API Google. Si vous l'acceptez, sélectionnez J'accepte le Règlement sur les données utilisateur dans les services d'API Google.
    9. Cliquez sur Continuer.
    10. Cliquez sur Créer.
    11. Si vous avez sélectionné Externe comme type d'utilisateur, ajoutez des utilisateurs de test :
      1. Cliquez sur Audience.
      2. Sous Utilisateurs de test, cliquez sur Ajouter des utilisateurs.
      3. Saisissez votre adresse e-mail et celles des autres utilisateurs de test autorisés, puis cliquez sur Enregistrer.
  3. Cliquez sur Accès aux données > Ajouter ou supprimer des niveaux d'accès. Un panneau s'affiche avec la liste des niveaux d'accès pour chaque API que vous avez activée dans votre projet Google Cloud.

    1. Sous Ajouter manuellement des niveaux d'accès, collez le niveau d'accès suivant :

      • https://www.googleapis.com/auth/chat.messages
    2. Cliquez sur Ajouter au tableau.

    3. Cliquez sur Mettre à jour.

    4. Après avoir sélectionné les niveaux d'accès requis par votre application, cliquez sur Enregistrer sur la page Accès aux données.

Créer des identifiants client OAuth

  1. Dans la console Google Cloud, accédez à Menu > API et services > Identifiants.

    Accéder à "Identifiants"

  2. Cliquez sur Créer des identifiants > ID client OAuth.

  3. Cliquez sur Type d'application > Application Web.

  4. Dans le champ Nom, saisissez un nom pour l'identifiant. Ce nom n'apparaît que dans la console Google Cloud.

  5. Sous URI de redirection autorisés, cliquez sur Ajouter un URI.

  6. Dans URI 1, saisissez ce qui suit :

    https://REGION-PROJECT_ID.cloudfunctions.net/app/oauth2
    

    Remplacez les éléments suivants :

    • REGION : région de la fonction Cloud, comme us-central1. Plus tard, lorsque vous créerez les deux fonctions Cloud, vous devrez définir leur région sur cette valeur.
    • PROJECT_ID : ID de projet du projet Cloud que vous avez créé.
  7. Cliquez sur Créer.

  8. Dans la fenêtre Client OAuth créé, cliquez sur Télécharger au format JSON.

  9. Enregistrez le fichier téléchargé sous le nom credentials.json. Plus tard, lorsque vous créerez les deux fonctions Cloud, vous inclurez le fichier credentials.json dans chaque déploiement.

  10. Cliquez sur OK.

Créer le sujet Pub/Sub

Le sujet Pub/Sub fonctionne avec l'API Google Workspace Events pour s'abonner aux événements dans un espace Chat, comme les messages, et pour notifier l'application Chat en temps réel.

Voici comment créer le sujet Pub/Sub :

Console Google Cloud

  1. Dans la console Google Cloud, accédez au menu > Pub/Sub.

    Accéder à Pub/Sub

  2. Cliquez sur Créer un sujet.

  3. Dans le champ ID du sujet, saisissez events-api.

  4. Désélectionnez Ajouter un abonnement par défaut.

  5. Sous Chiffrement, sélectionnez Clé de chiffrement gérée par Google.

  6. Cliquez sur Créer. Le sujet Pub/Sub s'affiche.

  7. Pour que ce sujet Pub/Sub et l'API Google Workspace Events fonctionnent ensemble, accordez à l'utilisateur Chat IAM l'autorisation de publier dans le sujet Pub/Sub :

    1. Dans le panneau events-api, sous AUTORISATIONS, cliquez sur Ajouter un compte principal.

    2. Sous Ajouter des comptes principaux, dans Nouveaux comptes principaux, saisissez chat-api-push@system.gserviceaccount.com.

    3. Sous Attribuer des rôles, dans Sélectionner un rôle, sélectionnez Pub/Sub > Diffuseur Pub/Sub.

    4. Cliquez sur Enregistrer.

CLI gcloud

  1. Créez un sujet Pub/Sub avec l'ID de sujet events-api :

    gcloud pubsub topics create events-api
  2. Accordez à l'utilisateur Chat IAM l'autorisation de publier dans le sujet Pub/Sub :

    gcloud pubsub topics add-iam-policy-binding events-api \
    --member='serviceAccount:chat-api-push@system.gserviceaccount.com' \
    --role='roles/pubsub.publisher'

Créer la base de données Firestore

La base de données Firestore conserve et récupère les données des espaces Chat, comme les messages. Vous ne définissez pas le modèle de données, qui est défini de manière implicite dans l'exemple de code par les fichiers model/message.js et services/firestore-service.js.

La base de données de l'application Chat de l'assistant de connaissances IA utilise un modèle de données NoSQL basé sur des documents organisés en collections . Pour en savoir plus, consultez Modèle de données Firestore.

Le schéma suivant présente le modèle de données de l'application Chat de l'assistant de connaissances IA :

Modèle de données de la base de données Firestore.

La racine contient deux collections :

  1. spaces, où chaque document représente un espace Chat auquel l'application Chat est ajoutée. Chaque message est représenté par un document dans la sous-collection messages.

  2. users, où chaque document représente un utilisateur qui a ajouté l'application Chat à un espace Chat.

Afficher les définitions des collections, des documents et des champs

spaces

Espace Chat incluant l'application Chat Assistant de connaissances IA.

Champs
Document IDString
Identifiant unique d'un espace spécifique. Partie du nom de ressource de l'espace dans l'API Chat.
messagesSubcollection of Documents (messages)
 Messages envoyés dans l'espace Chat Correspond à l'Document ID d'un message dans Firebase.
spaceNameString
Nom unique de l'espace dans l'API Chat. Correspond au nom de ressource de l'espace dans l'API Chat.

messages

Messages envoyés dans l'espace Chat.

Champs
Document IDString
Identifiant unique d'un message spécifique.
nameString
Nom unique d'un message dans l'API Chat. Correspond au nom de ressource du message dans l'API Chat.
textString
Corps du texte du message.
timeString (Timestamp format)
Heure à laquelle le message a été créé.

users

Utilisateurs ayant ajouté l'application Chat d'assistant de connaissances IA à un espace Chat.

Champs
Document IDString
 ID unique d'un utilisateur spécifique.
accessTokenString
Jeton d'accès accordé lors de l'autorisation utilisateur OAuth 2.0 utilisée pour appeler les API Google Workspace.
refreshTokenString
Jeton d'actualisation accordé lors de l'autorisation de l'utilisateur OAuth 2.0.

Voici comment créer la base de données Firestore :

Console Google Cloud

  1. Dans la console Google Cloud, accédez au menu > Firestore.

    Accéder à Firestore

  2. Cliquez sur Créer une base de données.

  3. Dans Sélectionner le mode Firestore, cliquez sur Mode natif.

  4. Cliquez sur Continuer.

  5. Configurez la base de données :

    1. Dans Nommez votre base de données, laissez l'ID de la base de données défini sur (default).

    2. Sous Type d'emplacement, sélectionnez Région.

    3. Dans Région, spécifiez une région pour votre base de données, par exemple us-central1. Pour des performances optimales, sélectionnez le même emplacement ou un emplacement proche de celui des fonctions Cloud de l'application Chat.

  6. Cliquez sur Créer une base de données.

CLI gcloud

  • Créez une base de données Firestore en mode natif :

    gcloud firestore databases create \
    --location=LOCATION \
    --type=firestore-native

    Remplacez LOCATION par le nom d'une région Firestore, par exemple us-central1. Pour des performances optimales, sélectionnez le même emplacement que les fonctions Cloud de l'application Chat, ou un emplacement proche.

Créer et déployer l'application Chat

Maintenant que votre projet Google Cloud est créé et configuré, vous êtes prêt à créer et à déployer l'application Chat. Dans cette section, vous allez effectuer les opérations suivantes :

  1. Créez et déployez deux fonctions Cloud Functions. L'un pour répondre aux événements d'interaction Chat et l'autre pour répondre aux événements Pub/Sub.
  2. Créez et déployez une application Chat sur la page de configuration de l'API Google Chat.

Créer et déployer les fonctions Cloud Functions

Dans cette section, vous allez créer et déployer deux fonctions Cloud nommées :

  • app : héberge et exécute le code de l'application Chat qui répond aux événements reçus de Chat sous forme de requêtes HTTP.
  • eventsApp : reçoit et traite les événements d'espace Chat, comme les messages de Pub/Sub.

Ensemble, ces fonctions Cloud constituent la logique d'application de l'application de chat de l'assistant de connaissances IA.

Si vous le souhaitez, avant de créer les fonctions Cloud Functions, prenez le temps d'examiner et de vous familiariser avec l'exemple de code hébergé sur GitHub.

Afficher sur GitHub

Créer et déployer app

Console Google Cloud

  1. Téléchargez le code depuis GitHub sous forme de fichier ZIP.

    Télécharger le fichier ZIP

  2. Décompressez le fichier ZIP téléchargé.

    Le dossier extrait contient l'intégralité du dépôt d'exemples Google Workspace.

  3. Dans le dossier extrait, accédez au répertoire google-chat-samples-main/node/ai-knowledge-assistant.

  4. Dans le répertoire google-chat-samples/node/ai-knowledge-assistant, ajoutez le fichier credentials.json que vous avez téléchargé lorsque vous avez créé des identifiants d'ID client OAuth pour l'authentification et l'autorisation.

  5. Compressez le contenu du dossier ai-knowledge-assistant dans un fichier ZIP.

    Le fichier ZIP doit contenir les fichiers et dossiers suivants :

    • .gcloudignore
    • .gitignore
    • README.md
    • deploy.sh
    • env.js
    • events_index.js
    • http_index.js
    • index.js
    • credentials.json
    • package-lock.json
    • package.json
    • controllers/
    • model/
    • services/
    • test/
  6. Dans la console Google Cloud, accédez à Menu > Cloud Functions.

    Accéder à Cloud Functions

    Assurez-vous que le projet Google Cloud de votre application Chat est sélectionné.

  7. Cliquez sur Créer une fonction.

  8. Sur la page Créer une fonction, configurez votre fonction :

    1. Dans Environnement, sélectionnez Fonction Cloud Run.
    2. Dans le champ Nom de la fonction, saisissez app.
    3. Dans Région, sélectionnez une région, comme us-central1. Cette région doit correspondre à celle que vous avez définie dans l'URI de redirection autorisé lorsque vous avez créé des identifiants d'ID client OAuth pour l'authentification et l'autorisation.
    4. Dans Type de déclencheur, sélectionnez HTTPS.
    5. Sous Authentification, sélectionnez Autoriser les appels non authentifiés.
    6. Cliquez sur Suivant.
  9. Dans Environnement d'exécution, sélectionnez Node.js 20.

  10. Dans Point d'entrée, supprimez le texte par défaut et saisissez app.

  11. Dans Code source, sélectionnez Importation au format ZIP.

  12. Dans Bucket de destination, créez ou sélectionnez un bucket :

    1. Cliquez sur Parcourir.
    2. Sélectionnez un bucket.
    3. Cliquez sur Sélectionner.

    Google Cloud importe le fichier ZIP et extrait les fichiers de composants dans ce bucket. Cloud Functions copie ensuite les fichiers de composants dans la fonction Cloud.

  13. Dans Fichier ZIP, importez le fichier ZIP que vous avez téléchargé depuis GitHub, extrait et recompressé :

    1. Cliquez sur Parcourir.
    2. Accédez au fichier ZIP et sélectionnez-le.
    3. Cliquez sur Open (Ouvrir).
  14. Cliquez sur Déployer.

    La page Informations sur Cloud Functions s'ouvre. Votre fonction s'affiche avec deux indicateurs de progression : un pour la compilation et un pour le service. Lorsque les deux indicateurs de progression disparaissent et sont remplacés par une coche, votre fonction est déployée et prête.

  15. Modifiez l'exemple de code pour définir les constantes :

    1. Sur la page Détails de la fonction Cloud, cliquez sur Modifier.
    2. Cliquez sur Suivant.
    3. Dans Code source, sélectionnez Éditeur intégré.
    4. Dans l'éditeur intégré, ouvrez et modifiez le fichier env.js :
      1. Définissez la valeur de project sur l'ID de votre projet Cloud.
      2. Définissez la valeur de location sur la région de Cloud Functions, comme us-central1.
  16. Cliquez sur Déployer.

CLI gcloud

  1. Clonez le code depuis GitHub :

    git clone https://github.com/googleworkspace/google-chat-samples.git
  2. Accédez au répertoire contenant le code de cette application de chat d'assistant de connaissances d'IA :

    cd google-chat-samples/node/ai-knowledge-assistant
  3. Dans le répertoire google-chat-samples/node/ai-knowledge-assistant, ajoutez le fichier credentials.json que vous avez téléchargé lorsque vous avez créé des identifiants d'ID client OAuth pour l'authentification et l'autorisation.

  4. Modifiez le fichier env.js pour définir les variables d'environnement :

    1. Définissez la valeur de project sur l'ID de votre projet Cloud.
    2. Définissez la valeur de location sur la région de Cloud Functions, comme us-central1.
  5. Déployez la fonction Cloud sur Google Cloud :

    gcloud functions deploy app \
    --gen2 \
    --region=REGION \
    --runtime=nodejs20 \
    --source=. \
    --entry-point=app \
    --trigger-http \
    --allow-unauthenticated

    Remplacez REGION par la valeur de la région de la fonction Cloud pour qu'elle corresponde à celle définie dans le fichier env.js, comme us-central1.

Créer et déployer eventsApp

Console Google Cloud

  1. Dans la console Google Cloud, accédez à Menu > Cloud Functions.

    Accéder à Cloud Functions

    Assurez-vous que le projet Google Cloud de votre application Chat est sélectionné.

  2. Cliquez sur Créer une fonction.

  3. Sur la page Créer une fonction, configurez votre fonction :

    1. Dans Environnement, sélectionnez Fonction Cloud Run.
    2. Dans le champ Nom de la fonction, saisissez eventsApp.
    3. Dans Région, sélectionnez une région, comme us-central1. Cette région doit correspondre à celle que vous avez définie dans l'URI de redirection autorisé lorsque vous avez créé des identifiants d'ID client OAuth pour l'authentification et l'autorisation.
    4. Dans Type de déclencheur, sélectionnez Cloud Pub/Sub.
    5. Dans Sujet Cloud Pub/Sub, sélectionnez le nom du sujet Pub/Sub que vous avez créé, au format projects/PROJECT/topics/events-apiPROJECT est l'ID de votre projet Cloud.
    6. Si un message commençant par Service account(s) might not have enough permissions to deploy the function with the selected trigger. s'affiche, cliquez sur Accorder tout.
    7. Cliquez sur Suivant.
  4. Dans Environnement d'exécution, sélectionnez Node.js 20.

  5. Dans Point d'entrée, supprimez le texte par défaut et saisissez eventsApp.

  6. Dans Code source, sélectionnez Fichier ZIP depuis Cloud Storage.

  7. Sous Emplacement Cloud Storage, cliquez sur Parcourir.

  8. Sélectionnez le bucket dans lequel vous avez importé le fichier ZIP lorsque vous avez créé la fonction Cloud app.

  9. Cliquez sur le fichier ZIP que vous avez importé.

  10. Cliquez sur Sélectionner.

  11. Cliquez sur Déployer.

    La page Informations sur Cloud Functions s'ouvre et votre fonction s'affiche avec trois indicateurs de progression : un pour la compilation, un pour le service et un pour le déclencheur. Lorsque les trois indicateurs de progression disparaissent et sont remplacés par une coche, votre fonction est déployée et prête.

  12. Modifiez l'exemple de code pour définir les constantes :

    1. Sur la page Détails de la fonction Cloud, cliquez sur Modifier.
    2. Cliquez sur Suivant.
    3. Dans Code source, sélectionnez Éditeur intégré.
    4. Dans l'éditeur intégré, ouvrez et modifiez le fichier env.js :
      1. Définissez la valeur de project sur l'ID de votre projet Cloud.
      2. Définissez la valeur de location sur la région de Cloud Functions, comme us-central1.
  13. Cliquez sur Déployer.

CLI gcloud

  1. Dans gcloud CLI, si vous n'y êtes pas déjà, accédez au répertoire contenant le code de cette application de chat d'assistant de connaissances d'IA que vous avez précédemment clonée à partir de GitHub :

    cd google-chat-samples/node/ai-knowledge-assistant
  2. Dans le répertoire google-chat-samples/node/ai-knowledge-assistant, ajoutez le fichier credentials.json que vous avez téléchargé lorsque vous avez créé des identifiants d'ID client OAuth pour l'authentification et l'autorisation.

  3. Modifiez le fichier env.js pour définir les variables d'environnement :

    1. Définissez la valeur de project sur l'ID de votre projet Cloud.
    2. Définissez la valeur de location sur la région de Cloud Functions, comme us-central1.
  4. Déployez la fonction Cloud sur Google Cloud :

    gcloud functions deploy eventsApp \
    --gen2 \
    --region=REGION \
    --runtime=nodejs20 \
    --source=. \
    --entry-point=eventsApp \
    --trigger-topic=events-api

    Remplacez REGION par la valeur de la région de la fonction Cloud pour qu'elle corresponde à celle définie dans le fichier env.js, comme us-central1.

Copiez l'URL du déclencheur de la fonction Cloud app.

Vous collerez l'URL du déclencheur de la fonction Cloud app dans la section suivante lorsque vous configurerez l'application Chat dans la console Google Cloud.

Console Google Cloud

  1. Dans la console Google Cloud, accédez à Menu > Cloud Functions.

    Accéder à Cloud Functions

  2. Dans la colonne Nom de la liste des fonctions Cloud Functions, cliquez sur app.

  3. Cliquez sur Déclencher.

  4. Copiez l'URL.

CLI gcloud

  1. Décrivez la fonction Cloud app :

    gcloud functions describe app
  2. Copiez la propriété url.

Configurer l'application Chat dans la console Google Cloud

Cette section explique comment configurer l'API Chat dans la console Google Cloud avec des informations sur votre application Chat, y compris son nom et l'URL de déclencheur de la fonction Cloud de l'application Chat à laquelle elle envoie les événements d'interaction Chat.

  1. Dans la console Google Cloud, cliquez sur Menu > Autres produits > Google Workspace > Bibliothèque de produits > API Google Chat > Gérer > Configuration.

    Accéder à la configuration de l'API Chat

  2. Dans le champ Nom de l'application, saisissez AI knowledge assistant.

  3. Dans URL de l'avatar, saisissez https://fonts.gstatic.com/s/i/short-term/release/googlesymbols/live_help/default/24px.svg.

  4. Dans Description, saisissez Answers questions with AI.

  5. Cliquez sur le bouton Activer les fonctionnalités interactives pour l'activer.

  6. Sous Fonctionnalité, sélectionnez Rejoindre des espaces et des conversations de groupe.

  7. Sous Paramètres de connexion, sélectionnez URL du point de terminaison HTTP.

  8. Dans URL du point de terminaison HTTP, collez l'URL du déclencheur de la fonction Cloud app au format https://REGION-PROJECT_ID.cloudfunctions.net/app, où REGION est la région de la fonction Cloud (par exemple, us-central1) et PROJECT_ID est l'ID du projet du projet Cloud que vous avez créé.

  9. Sous Visibilité, sélectionnez Rendre cette application de chat accessible à certains utilisateurs et groupes de votre domaine Workspace, puis saisissez votre adresse e-mail.

  10. (Facultatif) Sous Journaux, sélectionnez Enregistrer les erreurs dans Logging.

  11. Cliquez sur Enregistrer. Un message de configuration enregistrée s'affiche, ce qui signifie que l'application Chat est prête à être testée.

Tester l'application Chat

Testez l'application Chat d'assistant IA dans un espace Chat contenant des messages en posant des questions auxquelles l'application Chat d'assistant IA peut répondre.

Voici quelques façons de tester l'assistant de connaissances IA dans l'application de chat :

  • Ajoutez l'application Chat d'assistant IA à un espace Chat existant et posez des questions pertinentes pour cet espace.
  • Créez un espace Chat et publiez quelques messages à utiliser comme source de données. Les messages peuvent provenir de Gemini avec une requête telle que Answer 20 common onboarding questions employees ask their teams.. Vous pouvez également coller quelques paragraphes du guide Développer avec Chat : présentation, puis poser des questions à ce sujet.

Pour ce tutoriel, créons un espace Chat et collons-y quelques paragraphes du guide Développer avec Chat.

  1. Ouvrez Google Chat.

    Accéder à Google Chat

  2. Créez un espace Chat :

    1. Cliquez sur  Nouveau chat> Créer un espace.

    2. Dans le champ Nom de l'espace, saisissez Testing AI knowledge assistant app.

    3. Sous Quel est le but de cet espace ?, sélectionnez Collaboration.

    4. Sous Paramètres d'accès, choisissez qui peut accéder à l'espace.

    5. Cliquez sur Créer.

  3. Ajoutez des messages à utiliser comme source de données :

    1. Dans un navigateur Web, consultez le guide Développer avec Chat.

    2. Copiez et collez le contenu du guide dans l'espace Chat que vous avez créé.

  4. Ajoutez l'application Chat d'assistant IA pour les connaissances :

    1. Dans la barre de rédaction de message, saisissez @AI knowledge assistant, puis sélectionnez l'application Chat de l'assistant de connaissances IA dans le menu de suggestions qui s'affiche et appuyez sur enter.

    2. Un message s'affiche pour vous demander si vous souhaitez ajouter l'application de chat de l'assistant IA à l'espace. Cliquez sur Ajouter à l'espace.

    3. Si c'est la première fois que vous ajoutez l'application Chat à un espace, vous devez configurer l'authentification et l'autorisation pour l'application Chat :

      1. Cliquez sur Configurer.
      2. Une nouvelle fenêtre ou un nouvel onglet de navigateur s'ouvre et vous invite à choisir un compte Google. Choisissez le compte avec lequel vous effectuez le test.
      3. Examinez les autorisations demandées par l'application Chat de l'assistant de connaissances IA. Pour les accorder, cliquez sur Autoriser.
      4. Un message You may close this page now. s'affiche. Fermez la fenêtre ou l'onglet du navigateur, puis revenez à l'espace de discussion.
  5. Poser une question :

    1. Dans la barre de rédaction de message, saisissez une question comme What are Google Chat apps?

    2. L'application Chat de l'assistant de connaissances basé sur l'IA répond.

    3. Si la réponse n'est pas précise ou suffisante, vous pouvez cliquer sur Obtenir de l'aide pour aider l'IA à améliorer son historique des conversations. L'application de chat de l'assistant IA mentionne un gestionnaire d'espace et lui demande de répondre à la question. La prochaine fois, l'application Chat, l'assistant de connaissances basé sur l'IA, connaîtra la réponse.

Points à prendre en compte, autres choix d'architecture et prochaines étapes

Cette section présente d'autres façons de créer l'application Chat de l'assistant de connaissances basé sur l'IA.

Firestore, Cloud Storage ou appel de List Messages dans l'API Chat

Ce tutoriel recommande de stocker les données des espaces Chat, comme les messages, dans une base de données Firestore, car cela améliore les performances par rapport à l'appel de la méthode list sur la ressource Message de l'API Chat chaque fois que l'application Chat répond à une question. De plus, appeler list messages à plusieurs reprises peut entraîner le dépassement des limites de quota de l'API par l'application Chat.

Toutefois, si l'historique des conversations d'un espace Chat devient trop long, l'utilisation de Firestore peut devenir coûteuse.

Cloud Storage est une alternative à Firestore. Chaque espace dans lequel l'application Chat de l'assistant de connaissances IA est active possède son propre objet. Chaque objet est un fichier texte qui contient tous les messages de l'espace. L'avantage de cette approche est que l'intégralité du contenu du fichier texte peut être transmise à Vertex AI avec Gemini en une seule fois. L'inconvénient est qu'il faut plus de travail pour mettre à jour l'historique des conversations, car vous ne pouvez pas ajouter du contenu à un objet dans Cloud Storage, mais seulement le remplacer. Cette approche n'a pas de sens si vous mettez régulièrement à jour l'historique des messages, mais elle serait un bon choix si vous mettez à jour l'historique des messages par lots de manière périodique, par exemple une fois par semaine.

Résoudre les problèmes

Lorsqu'une application ou une fiche Google Chat renvoie une erreur, l'interface Chat affiche le message "Une erreur s'est produite". ou "Impossible de traiter votre demande". Il arrive que l'UI de Chat n'affiche aucun message d'erreur, mais que l'application ou la fiche Chat produise un résultat inattendu (par exemple, un message de fiche peut ne pas s'afficher).

Bien qu'un message d'erreur ne s'affiche pas dans l'interface utilisateur de Chat, des messages d'erreur descriptifs et des données de journaux sont disponibles pour vous aider à corriger les erreurs lorsque la journalisation des erreurs pour les applications Chat est activée. Pour obtenir de l'aide concernant l'affichage, le débogage et la résolution des erreurs, consultez Résoudre les problèmes et corriger les erreurs Google Chat.

Effectuer un nettoyage

Pour éviter que les ressources utilisées dans ce tutoriel soient facturées sur votre compte Google Cloud, nous vous recommandons de supprimer le projet Cloud.

  1. Dans la console Google Cloud, accédez à la page Gérer les ressources. Cliquez sur Menu > IAM et administration > Gérer les ressources.

    Accéder au gestionnaire de ressources

  2. Dans la liste des projets, sélectionnez celui que vous souhaitez supprimer, puis cliquez sur Supprimer .
  3. Dans la boîte de dialogue, saisissez l'ID du projet, puis cliquez sur Arrêter pour supprimer le projet.