Accéder au contenu
IA et machine learning

Utiliser l’IA générative pour créer une expérience conversationnelle et améliorer la productivité des collaborateurs

16 avril 2024
Yan Sun

Generative AI Solution Architect, Google Could

Contactez-nous

Si vous êtes une entreprise et que vous souhaitez vous développer, découvrez comment gagner en productivité avec Google Cloud ou contactez notre équipe commerciale.

Commencer ici

Chercher n’est pas trouver. Publiques ou privées, à but lucratif ou non, toutes les organisations partagent une même source de frustration : dénicher la bonne information en interne (intranets) comme en externe (Web) n’est jamais simple. Les collaborateurs peuvent en effet perdre un temps considérable à essayer de trouver la bonne information pour répondre à diverses questions liées à leur travail quotidien. De la même façon, ils peuvent avoir du mal à découvrir le bon expert interne, capable de leur apporter les réponses aux questions qu’ils se posent sur un sujet précis.

Capitalisant sur les fonctionnalités avancées de recherche et de conversation de Google qui font référence sur le marché, les solutions d’IA générative de Google Cloud permettent désormais aux organisations de résoudre ces problèmes.

En utilisant les fonctionnalités d'IA générative de Google Cloud dans Dialogflow, vous pouvez créer un agent conversationnel réaliste qui permet aux employés de trouver les informations les plus pertinentes à partir de bases de connaissances internes ou externes. Les fonctions d'IA générative de Dialogflow s'appuient sur les grands modèles de langage (LLM) pour alimenter l'interaction en langage naturel avec les utilisateurs. Elles exploitent aussi les solutions de recherche pour entreprise de Google, de sorte que les réponses sont contextualisées en fonction de la base de connaissance de l’organisation. Cette base de connaissances peut être constituée de données structurées et non structurées.

Dans cet article, nous vous proposons de découvrir les fonctions d'IA générative de Dialogflow à travers un exemple RH : une expérience conversationnelle pour répondre aux questions RH qui fonde ses connaissances à la fois sur des sites Web externes et sur la base FAQ interne à une organisation. L’utilisateur pouvant avoir besoin de consulter un représentant des ressources humaines pour une situation spécifique, l'agent virtuel Dialogflow est aussi capable de trouver le bon représentant RH en fonction du contexte de la conversation et de prendre un rendez-vous en appelant l'API de calendrier.

Les principaux composants utilisés dans cet exemple sont :

Un Agent à IA générative : utilise des fonctionnalités génératives. Un agent peut être utilisé pour créer un chat ou une expérience vocale réaliste en quelques minutes, avec des réponses fondées sur la base de connaissances fournie par l'utilisateur.

Des Playbooks : solution pour concevoir un agent génératif, un playbook permet de modéliser des flux et des tâches à effectuer par l'agent virtuel. Les Playbooks peuvent être conçus et créés simplement sur la base d'instructions écrites en langage naturel.

Un webhook : service qui héberge la logique métier ou appelle d'autres services, API, etc.

Intents & Routes : Un « Intent » catégorise l'intention de l'utilisateur final lors d’un échange dans une conversation. Les routes sont les connexions entre les flux et les conversations. Nous utilisons un « intent » pour « router », autrement dit orienter, une conversation vers le bon flux.

Créer un chatbot utilisant l'IA générative pour améliorer la productivité des employés

Quelques étapes simples suffisent pour créer un agent. Allez dans la console Vertex AI Conversation pour créer votre base de données/connaissances. Vous pouvez alors commencer à créer un agent conversationnel et appeler des API externes grâce à Dialogflow. Avant de plonger dans les différentes étapes, revoyons en détail le cas d’usage.

Présentation du cas d’usage

Miranda a récemment rejoint une entreprise de 500 employés. Elle perd un temps considérable à essayer de comprendre les avantages sociaux, les rémunérations, les évaluations des performances et différents autres aspects de l'organisation. Ce serait formidable si Miranda disposait, sur le portail de son entreprise, d'un agent virtuel « très réel » qui permettrait aux employés de trouver rapidement les bonnes informations et les bonnes personnes. Ce cas d’usage s'applique à tous les secteurs d'activité et à toutes les organisations. Le parcours de l'utilisateur pour Miranda serait le suivant :

En tant que nouvelle employée, Miranda veut savoir :

  1. Comment souscrire aux avantages sociaux en tant que nouvelle employée. Par exemple, quelles informations elle doit fournir et quels outils internes elle peut utiliser.
  2. Quelles sont les différentes options de prestations qui s'offrent à elle ?
  3. Comment ajouter les personnes dont elle a la charge à une prestation, tel le régime de soins dentaires par exemple ?
  4. Quelles démarches entreprendre pour mettre à jour ses avantages et son adhésion ?

Miranda souhaite également consulter un représentant des RH en personne pour comprendre comment sa rémunération a été modélisée et comment ses performances influenceront sa rémunération future.

Architecture de référence

Voici le schéma d’architecture général permettant de concrétiser un tel agent :

https://storage.googleapis.com/gweb-cloudblog-publish/images/2._Drive_employee_productivity_using_Gen_A.max-1100x1100.jpg

Passons à la réalisation.

Étape 1. Créer la base de données (base de connaissances)

  1. Dans la console Vertex AI Conversation, créez une base de connaissances en utilisant des sources de données telles que des sites Web publics ainsi que des données structurées et/ou non structurées.
https://storage.googleapis.com/gweb-cloudblog-publish/images/3._Vertex_AI_Conversation_Console_Screensh.max-2200x2200.png

2. Allez dans Cloud Storage et créez un bucket que vous nommerez « demo-better-employee-search ». Cliquez sur continuer et sélectionnez « créer » pour finaliser le processus.

3. Téléchargez le document FAQ de l’entreprise dans le bucket Cloud Storage. Pour rappel, les formats suivants sont acceptés :

  • Text/HTML pour les domaines publics et sites Web
  • HTML, PDF and CSV pour les documents internes et les FAQ
https://storage.googleapis.com/gweb-cloudblog-publish/images/DataAnalytics_B_1.max-2200x2200.jpg

4. Retournez dans la console Vertex AI Conversation et ajouter des données à votre base de connaissances. Vous disposez de quatre options pour injecter vos données :

https://storage.googleapis.com/gweb-cloudblog-publish/images/5._Create_Data_Store.max-2200x2200.png
  • Cloud Storage (sans métadonnées) : importez directement votre fichier dans un Bucket Cloud Storage
  • Cloud Storage (avec métadonnées) : utilisez un fichier JSON précisant les liens vers vos fichiers et les métadonnées associées pour importer ces données dans un Bucket.
  • BigQuery (avec métadonnées) : importez une table BigQuery avec les liens vers vos fichiers et métadonnées
  • API : Importez vos données en appelant une API

Étape 2. Créer un agent à base d’IA générative pour gérer les questions récurrentes en utilisant la base de connaissances

L’agent à base d’IA générative propose une expérience conversationnelle, un tchat, capable de répondre à vos questions en s’appuyant sur la base de connaissances mise en place par l’organisation. Une fois la base de données créée (cf. l’étape précédente), orientez-vous vers la console Dialogflow CX. Cliquez sur « tester l’agent » pour essayer votre agent virtuel.

https://storage.googleapis.com/gweb-cloudblog-publish/images/6.Gen_AI_Agent_Screenshot.max-1300x1300.png

Étape 3. Créer un Playbook pour cartographier les sujets RH et les représentants RH

Les conversations peuvent être catégorisées par des Playbooks dopés à l‘IA. Un Playbook peut être défini par des sujets associés à des chemins conversationnels. Par exemple, un agent dédié à la commande de pizzas reposera sur un playbook combinant : commande d’une pizza, informations du client, paiement de la commande, etc.
Dans notre exemple RH, nous allons configurer un Playbook qui établit la correspondance entre les sujets RH et les représentants RH ad hoc.

Contrairement aux flux standards, qui sont construits à l’aide d’« Intents » et de phrases d’entraînement, les Playbooks sont créés sur la base d'instructions écrites en langage naturel pour définir les tâches des agents virtuels.

Dans cette étape, nous allons d’abord configurer les paramètres avant de créer les instructions. Les paramètres sont utilisés pour capturer et référencer les valeurs fournies par l'utilisateur final au cours d'une session. Chaque paramètre a un nom et un type d'entité.

  1. Créez trois paramètres pour les données utilisateur : sujet_rh, representant_rh et rendez-vous. Ces paramètres d'entrée seront collectés et mis à la disposition du flux.
https://storage.googleapis.com/gweb-cloudblog-publish/images/7._Playbook_-Parameter.max-1200x1200.png

2. Créez un paramètre de sortie pour collecter « @sys.date » afin d'obtenir la disponibilité pour un rendez-vous pendant la conversation. Les paramètres d'entrée sont censés être collectés à partir du Playbook.

3. Mettez en place des instructions pour décrire ce que fait le flux. Identifiez ensuite les différentes étapes qui permettent d’associer les différents $sujets_rh à son $ representant_rh (*).

https://storage.googleapis.com/gweb-cloudblog-publish/images/8._Playbook-_Instructions.max-1300x1300.png

(*) cette fonctionnalité est actuellement disponible en mode GA pour les utilisateurs qui en font la demande.

Étape 4. Acheminement des flux

Pour concevoir l'agent virtuel, nous devons identifier les intentions (Intents) afin de construire un scénario. Le principe est assez similaire à celui de la création d'un plan lors de l'écriture d'une dissertation, par exemple. Dans ce scénario, nous définissons :

  1. Un flux déterministe utilisant des FAQ, site Web ou documentation interne. Dans ce tutoriel, nous utilisons le flux déterministe pour répondre aux questions relatives aux ressources humaines et aux avantages sociaux, telles que « Quelles sont les options de congé disponibles pour moi en tant qu'employé basé aux États-Unis ? »
  2. Des flux transactionnels pour répondre aux questions des utilisateurs ou effectuer certaines transactions (voir étape 3). Dans le tutoriel, nous utilisons les flux transactionnels pour aider Miranda à trouver le bon représentant des ressources humaines et à planifier une session.
  3. Des « Intents » et/ou des instructions de playbooks pour guider les conversations.

Nous allons maintenant voir comment construire des « Intents » pour guider les conversations.

Un Intent catégorise l'intention de l'utilisateur final pendant la conversation. Les Intents peuvent être classées en deux catégories : les Intents principaux et les Intents complémentaires. Les Intents principaux identifient l'objectif premier de l'utilisateur pour interagir avec un agent, tandis qu'un Intent complémentaire identifie les questions suivantes de l'utilisateur. Par exemple, dans la conception d'un agent virtuel de commande de pizzas, « order.pizza » peut être un Intent principal, et « confirm.order » est un Intent complémentaire lié à l’Intent principal. Après avoir identifié les Intents, vous pouvez pour chacun d’eux ajouter différentes phrases d'entraînement qui les déclencheront.

Dans ce tutoriel, nous créons un Intent principal « redirect.schedule.appointment » pour router les conversations du flux « Default Start » vers le flux « MapRepresentative ». Cet Intent peut être déclenché par des formules de l’utilisateur, tels que « Je veux parler à un représentant des ressources humaines ». Nous créons également des Intents complémentaires de « confirmation » pour répondre aux formules, tels que « l'horaire me convient ».

https://storage.googleapis.com/gweb-cloudblog-publish/images/9_Intent.max-1300x1300.png

Étape 5. Combiner les flux prédictifs et génératifs pour terminer la conversation

Le dialogue dans une conversation comprend généralement plusieurs sujets de conversation. Avec Dialogflow, vous pouvez combiner des flux prédictifs (reposant sur des Intents spécifiques) avec des flux génératifs créés par des Playbooks. Dans notre exemple, nous construisons la structure suivante :

https://storage.googleapis.com/gweb-cloudblog-publish/images/10._Flow_Structure.max-1100x1100.png
  1. Le flux de départ par défaut (Default Start Flow) permet d’intégrer la base de données/de connaissances et d’orienter les Intents vers les flux ou Playbook adaptés (voir les étapes 3 et 5).
  2. La construction du Playbook « MapRepresentative » permet de trouver le bon représentant des ressources humaines en fonction des sujets de l'utilisateur (voir l'étape 4 ci-dessus).
  3. La création du flux « FindRepresentative » permet d’orienter les conversations afin de trouver le bon représentant et appeler l'API calendrier pour un rendez-vous (voir l'étape 6 ci-dessous sur la façon de créer un webhook pour appeler l'API de calendrier).
  4. Le flux » ConfirmAppointment » met fin à la conversation de manière élégante et repose sur un Playbook.

Étape 6. Créer un webhook pour appeler l'API calendrier

Au cours de cette étape, l'agent virtuel va vérifier la disponibilité du représentant RH en appelant l'API du calendrier par le biais d'un webhook. Cette étape sera ici réalisée à l’aide de « Cloud Functions », la solution FaaS (Functions as a Service) de Google Cloud.

Depuis l’interface de Cloud Functions:

  1. Saisissez votre code pour appeler l'API calendrier dans index.js
Cloud_Function

2. Fournissez le package.json

https://storage.googleapis.com/gweb-cloudblog-publish/images/12._Cloud_Function_-_package.json.max-1400x1400.png

3. Déployez Cloud Functions. Vous pouvez télécharger le code en exemple ici.

4. Configurez le webhook dans Dialogflow

https://storage.googleapis.com/gweb-cloudblog-publish/images/13._Webhook_Configruation.max-1200x1200.png

Adopter les meilleures pratiques

Comme nous venons de le voir, les manipulations pour construire un tel agent ne sont pas très compliquées. Néanmoins, assembler un tel agent nécessite un minimum de réflexion. Le design d’un agent n’est pas forcément simple. Afin de proposer une bonne expérience de conversation, voici quelques bonnes pratiques que nous vous conseillons :

  1. Vous devez maîtriser la data et la hiérarchie de la conversation pour concevoir les flux et les Intents avant même de vous lancer dans la conception technique. Vous devez déterminer quels flux, ou parties de flux, nécessitent des conceptions basées sur les Intents pour des raisons de contrôle, de coût, de sécurité ou autres, et lesquels peuvent être traités par l’agent « Generative AI » ou des playbooks.
  2. Les flux sont des sujets majeurs. Les Intents sont les intentions de l'utilisateur. Ils sont utilisés pour proposer le parcours conversationnel le plus réussi possible en partant des Intents principaux. Notez qu’en limitant les Intents à un ou deux dans un flux, vous éviterez beaucoup de complexité.
  3. Construisez des Intents complémentaires réutilisables. Dans la mesure du possible, essayez de réutiliser les Intents dans différents flux. Par exemple, vous pouvez élaborer un Intent supplémentaire dénommé “confirmation.yes” qui pourra être utilisé dans vos autres agents pour reconnaître différentes façons d’approuver comme « oui », « ok », « okay », « bien sûr », « pas de problème », « d’acc » ou « ça roule pour moi ». Disposer ainsi de plusieurs « Intents » prédéfinis simplifie la conception de vos prochains agents virtuels et au final permet de réduire notablement le nombre d’« Intents » à créer.
  4. Définissez un « Intent » négatif par défaut (Default Negative Intent) qui sera déclenché chaque fois que la conversation sortira du contexte prévu. Par exemple, dans un flux de commande de pizzas, une formulation de l’utilisateur expliquant « Je vais cuisiner du poulet pour dîner » est hors contexte. En incluant de telles formulations dans « Default Negative Intent » permet de les ignorer sans perturber le flux de la conversation.

Conclusion

Au travers de cet exemple, nous avons vu comment un agent virtuel animé par l'IA générative peut répondre aux questions posées fréquemment en s'appuyant sur une base de connaissances interne et externe à l’organisation. L’agent peut aussi répondre à la demande de l’utilisateur d’entrer en contact avec un être humain (ici un représentant des RH) au travers d’une approche « mix-and-match » basée sur une combinaison d’intentions prédéfinies et de flux génératifs. Enfin, nous avons aussi vu comment ajouter des webhooks et des appels API pour permettre aux agents virtuels d’interagir avec d’autres services (comme ici en vérifiant la disponibilité dans un calendrier et en planifiant automatiquement une réunion pour l'utilisateur). À votre tour maintenant de passer à l’action et de créer votre propre agent virtuel mais intelligent.

Documentation de référence

Publié dans