Cet article a été rédigé par : Stéphane Giron – Responsable service Customer Success et Support, Google Developer Expert et FAN absolu de Google Apps Script.
Introduction
Rendre les données et les informations accessibles à tous est un enjeu majeur pour les entreprises. Cependant, définir une solution optimale pour y parvenir peut s’avérer compliqué. Dans cet article, nous ne livrerons pas de recette secrète pour y parvenir, mais nous partagerons la dernière implémentation que nous avons réalisée chez Devoteam G Cloud.
Le point de départ
Tous les employés se posent des questions liées aux Ressources Humaines et cela peut devenir chronophage pour les équipes RH. L’idée est donc de mettre à disposition de tous les collaborateurs un Chatbot qui répondra aux questions les plus courantes.
Trouver les données
Chez Devoteam G Cloud, Google Drive et les Shared Drive sont utilisés pour gérer les informations et les documents. Bien que cette méthode offre un vaste espace de stockage et des capacités de recherche avancées, la recherche de données spécifiques peut s’avérer laborieuse.
En effet, même lorsque le document recherché est localisé, il est parfois nécessaire de poursuivre la recherche dans le document pour accéder à l’information exacte requise. Nous allons essayer d’étendre les capacités de recherche avec Vertex AI pour apporter des réponses d’IA générative à la recherche d’informations.
Trouver les données et les bonnes données sera probablement la partie la plus complexe du projet. Il n’est pas possible d’introduire toutes les données disponibles dans Vertex AI et s’attendre à obtenir des réponses correctes et précises à vos questions. Vous devez filtrer les fichiers afin de maintenir la cohérence des informations sources utilisées par l’application. Vous n’avez pas besoin de données structurées, de notre côté nous avons utilisé environ 100 documents PDF. Dans Vertex AI, nous appelons ce type de documents « documents non structurés ».
- Comme pour Google Search le mieux est de ne pas mélanger les types d’informations, il est préférable d’avoir un pdf pour chaque produit plutôt qu’un pdf avec tous les produits.
- Le fichier doit être inférieur à 100Mo
- Si le bot est multilingue, lors de nos tests, il est préférable d’en avoir un par langue. Il se peut qu’à l’avenir ce ne soit plus le cas.
- Le système peut être perdu dans les gros fichiers, si vous pouvez séparer certains fichiers, c’est mieux.
Gérez vos données
Avec Vertex AI Search, vous pouvez facilement importer des fichiers depuis Cloud Storage, il vous suffit donc de les uploader au bon endroit. Voici quelques précisions sur la gestion des fichiers dans Google Cloud Storage :
- L’importation vers Vertex AI ne fonctionnera pas pour les sous dossiers, veuillez ne pas créer pas de hiérarchie complexe.
- Vous pouvez regrouper tous les fichiers dans un seul dossier, pour ma part j’ai préféré créer quelques dossiers principaux afin d’isoler le contenu. Il est ainsi plus facile d’effectuer des recherches et des mises à jour.
- Il est facile d’importer et de mettre à jour les données à partir du Cloud Storage, vous pouvez donc commencer avec des données partielles.
Créez votre application Vertex AI Search
Vous pouvez créer l’application directement, il n’est pas nécessaire que le Data Store soit créé au préalable, ce sera une étape du processus de création.
Allez sur la page de création (lien) et sélectionnez « Search ».
Veuillez suivre les instructions, et lors de l’étape Data Store, vous devrez en créer un avec votre dossier Cloud Storage :
Je ne détaille pas toutes les étapes car c’est très simple à réaliser.
Intégrer Vertex AI Search dans Google Chat
Pour la création de votre premier Chatbot Google avec Apps Script, vous pouvez vous référer à ce guide : lien
Dans cette application, nous utiliserons les fonctionnalités multiturn de Vertex AI Search, ce qui permettra aux utilisateurs d’interagir avec le robot de manière plus naturelle.
Cela permettra aux utilisateurs d’affiner les réponses en posant plusieurs questions, le robot continuera à répondre en se basant sur les questions précédentes et les réponses fournies. Tout ceci est expliqué dans ce guide : lien
Nous n’allons pas couvrir toute les parties développement, nous nous concentrons sur la partie Vertex AI Search à partir de Google Apps Script.
Lancer une conversation, obtenir un “Conversation ID”
Vous devez d’abord créer un « identifiant de conversation » pour bénéficier de la fonctionnalité multiturn.
Dans ce code, nous allons créer un ID utilisateur basé sur l’email, vous pouvez utiliser n’importe quelle autre méthode pour générer cet ID.
Vous aurez besoin de l’ID du projet et de l’ID du Data Store pour pouvoir initier le process. Dans cet exemple de code, la région est définie comme “Global”. Toutefois, il est possible de sélectionner la région “Europe” lors de la création de l’application, dans ce cas, vous devrez adapter l’url à cette région.
Envoyez votre premier message
CONVERSATION_ID contient toutes les données relatives au projet, etc… il n’est pas nécessaire de le spécifier à nouveau dans l’url.
Cette fonction prend en saisie d’entrée l’email de l’utilisateur et la question.
Continuer la conversation
Pour continuer la conversation, le code est exactement le même que ci-dessus, vous devez juste utiliser le même CONVERSATION_ID afin de poursuivre l’échange avec le bot sur le même sujet.
Cela signifie que vous devez garder une trace de l’ID de la conversation entre chaque message. Cela peut être fait de plusieurs façons sur Google Apps Script, et dépend de votre code.
Résultat
Nous avons ci-dessous une conversation contenant une deuxième réponse qui complète la première. La deuxième question est juste une question naturelle sans contexte additionnel ou répété.
- Q1 : Devoteam G Cloud fournit-il des tickets restaurants ?
- Q2 : Quel est le fournisseur ?
Comme vous pouvez le voir, nous affichons également la source utilisée afin de fournir le contexte de la réponse. Les LLM sont vraiment bons mais il faut toujours être vigilant quant aux réponses données, la source est un bon moyen de contrôler la réponse.
Rédaction : Stéphane Giron