1. Présentation
Dernière mise à jour:10/10/2023
Ce que vous allez faire
Dans cet atelier de programmation, vous allez utiliser Vertex AI Conversation et Dialogflow CX pour créer, déployer et configurer un agent virtuel afin d'aider les personnes qui souhaitent donner leur sang et de s'assurer qu'elles répondent aux critères d'éligibilité requis. L'agent utilisera des données publiques réelles et les grands modèles de langage (LLM) génératifs de Google pendant le fulfillment Dialogflow CX.
Fonctionnalités que vous utiliserez
Pour cet atelier de programmation, vous allez configurer et utiliser trois fonctionnalités distinctes:
Agents de data store
La fonctionnalité Vertex AI Conversation crée un agent Dialogflow spécial, appelé agent de data store.
Avec cette fonctionnalité, vous fournissez une URL de site Web, des données structurées ou des données non structurées (data stores), puis Google analyse votre contenu et crée un agent virtuel alimenté par des data stores et de grands modèles de langage. Vos clients et utilisateurs finaux peuvent alors discuter avec l'agent et poser des questions sur le contenu. Consultez l'introduction à Vertex AI Conversation pour en savoir plus sur ce type d'agent.
Alternateurs
La fonctionnalité générateur est une fonctionnalité Dialogflow CX qui permet aux développeurs d'utiliser les derniers grands modèles de langage (LLM) génératifs et les requêtes personnalisées de Google pour générer des réponses d'agent au moment de l'exécution. Un générateur peut gérer des réponses génériques impliquant des connaissances générales à partir d'un grand ensemble de données textuels sur lesquels il a été entraîné ou du contexte de la conversation.
Création de remplacement générative
La fonctionnalité de création de remplacement génératif utilise les derniers grands modèles de langage (LLM) génératifs de Google pour générer des réponses d'agent virtuel lorsque l'entrée de l'utilisateur final ne correspond pas à un intent ou à un paramètre pour le remplissage de formulaire. Cette fonctionnalité peut être configurée à l'aide d'une requête textuelle qui indique au LLM comment répondre. Vous pouvez utiliser une requête textuelle prédéfinie ou ajouter vos propres requêtes. Vous pouvez activer les créations de remplacement générative sur les gestionnaires d'événements sans correspondance utilisés dans les flux, les pages ou lors du remplissage des paramètres. Lorsque le remplacement génératif est activé pour un événement sans correspondance, Dialogflow tente de générer une réponse générée qui sera dite à l'utilisateur chaque fois que cet événement se déclenche. Si la génération de la réponse échoue, la réponse habituelle de l'agent est émise à la place. Si vous souhaitez en savoir plus sur les créations de remplacement générative, consultez cet atelier de programmation.
Points abordés
- Créer un agent de data store à partir de données non structurées
- Utiliser des gestionnaires de connaissances pour permettre aux utilisateurs finaux de discuter avec un agent virtuel sur le contenu ajouté à un datastore
- Comment configurer une requête de texte de générateur et la rendre contextuelle à l'aide d'espaces réservés d'invites de générateur intégrés
- Comment marquer des mots comme espaces réservés d'invites de générateur et les associer ultérieurement à des paramètres de session dans le fulfillment pour utiliser leurs valeurs lors de l'exécution
- Comment configurer un générateur pour gérer les réponses impliquant des connaissances issues d'un ensemble de données textuel volumineux et le contexte de la conversation en cours.
- Comment générer un e-mail formel à l'aide de générateurs
- Tester votre agent et simuler les questions d'un client qui déclenchent des réponses générées
Prérequis
- Un projet Google Cloud
- Un navigateur tel que Chrome
2. Activer les API
Avant de pouvoir créer un agent de data store dans Vertex AI Conversation, vous devez activer Dialogflow, ainsi que les API Vertex AI Search and Conversation.
Pour activer l'API Dialogflow, procédez comme suit:
- Dans votre navigateur, accédez à la page Informations sur le service de l'API Dialogflow.
- Cliquez sur le bouton Activer pour activer l'API Dialogflow dans votre projet Google Cloud.
Pour activer l'API Vertex AI Search and Conversation, procédez comme suit:
- Dans la console Google Cloud, accédez à la console Vertex AI Search and Conversation.
- Lisez et acceptez les conditions d'utilisation, puis cliquez sur Continuer et activer l'API.
3. Créer une application de chat et un data store pour votre application
Vous allez maintenant créer une application de chat pour votre agent virtuel et la configurer avec une source de données. L'objectif de l'agent que vous allez créer est d'aider les clients qui ont des questions sur l'éligibilité au sang. Vous utiliserez l'Australian Red Cross Lifeblood comme source d'informations fiables et vous créerez un data store basé sur des données non structurées provenant du site Web d'éligibilité au sang.
- Pour créer une application de chat dans Vertex AI Conversation, vous pouvez:
- Accédez à la console Vertex AI Conversation, puis cliquez sur + Nouvelle application en haut de la console.
- Accédez à la console Dialogflow CX, cliquez sur + Créer un agent, puis sélectionnez l'option Générer automatiquement. Vous serez ensuite redirigé vers l'étape suivante dans la console Vertex AI Conversation.
- Dans la console Vertex AI Conversation, sélectionnez Chat comme type d'application que vous souhaitez créer.
- Dans le champ Nom de l'entreprise, saisissez
Save a Life
. Ce paramètre permet de définir l'entreprise représentée par l'agent et son champ d'application. - Dans le champ Agent name (Nom de l'agent), indiquez
Blood Donation Agent
. - Cliquez sur Continuer.
- Cliquez sur Créer un data store.
- Sélectionnez Cloud Storage comme source de données pour votre datastore.
- Spécifiez le dossier Google Cloud Storage suivant, qui contient des exemples de données pour cet atelier de programmation, et notez que le préfixe
gs://
n'est pas obligatoire:cloud-samples-data/dialogflow-cx/arc-lifeblood
- Sélectionnez Documents non structurés comme type de données à importer.
- Cliquez sur Continuer.
- Dans le champ Nom du data store, saisissez
Australian Red Cross Lifeblood Unstructured
. - Cliquez sur Créer pour créer le data store.
- Dans la liste des data stores, sélectionnez le
Australian Red Cross Lifeblood Unstructured
que vous venez de créer. - Cliquez sur Créer pour créer votre application de chat.
Félicitations ! Vous avez terminé de créer votre application de chat alimentée par les connaissances, qui est prête à aider les donateurs potentiels, alors prenez un moment pour célébrer votre réussite !
Toutefois, il reste encore beaucoup à faire pour rendre l'agent accessible à vos utilisateurs. Dans la section suivante, vous allez utiliser un gestionnaire de connaissances pour permettre les conversations entre l'agent et les utilisateurs finaux sur les critères d'éligibilité.
4. Configurer l'agent pour répondre aux questions fréquentes sur l'éligibilité au sang
Fournir l'invite de date du magasin
Pendant que le processus de collecte de documents s'exécute en arrière-plan, attribuons une marque à l'agent en modifiant l'invite du data store.
- Dans la console Vertex AI Conversation, cliquez sur le nom de votre application de chat. Vous serez alors redirigé vers la console Dialogflow CX pour effectuer d'autres tests et personnalisations.
- Dans la console Dialogflow CX et à partir de votre agent, cliquez sur Agent settings (Paramètres de l'agent) en haut à droite de la page, accédez à l'onglet ML, puis ouvrez l'onglet Generative AI (IA générative).
- Remplissez le formulaire ci-dessous pour générer l'invite de data store suivante: votre nom est
Donate
, et vous êtes unchatbot
serviable et courtois chezSave a life, a fictitious organization
. Votre tâche consiste à aiderhumans with eligibility information
.
Activer le remplacement génératif pour l'événement de non-correspondance du flux de démarrage par défaut
- Accédez à l'onglet Build (Compiler) et ouvrez la page d'accueil.
- Cliquez sur le gestionnaire d'événements sys.no-match-default. Activez la fonctionnalité de remplacement génératif, sauf si la case est déjà cochée.
Vérifier le data store de l'agent
Sur la page d'accueil, cliquez sur Modifier les datastores pour accéder aux paramètres du datastore.
Le data store que vous avez créé précédemment a déjà été sélectionné pour vous par Dialogflow.
Faites défiler la page jusqu'à Réponses de l'agent sous Fulfillment. Un fulfillment est la réponse de l'agent à l'utilisateur final. Dialogflow a prérempli le champ L'agent dit avec le paramètre $request.knowledge.answers[0]
, qui au moment de l'exécution contient la première réponse à la question de l'utilisateur.
5. Tester l'agent
Une fois que les documents sont disponibles et prêts à être utilisés par votre agent, vérifiez à quel point les réponses sont pertinentes.
Cliquez sur Tester l'agent pour rouvrir le simulateur.
Posez les questions que vous vous attendez à trouver sur la page FAQ du site Web:
What age do I need to be to donate?
Can pregnant women donate?
I've just come back from a trip to Africa. Can I donate?
How can I schedule an appointment?
Notez que les réponses proviennent du site australien de la Croix-Rouge australienne sur Lifeblood. Comme indiqué sur cette page, des âges minimal et maximal s'appliquent aux dons de sang. L'âge minimum est de 18 ans et l'âge maximum est de 75 ans pour les nouveaux donateurs. Une autre preuve du fait que nous extrayons des informations du data store est fournie par la petite icône en forme d'étoile apparaissant sur la réponse de l'agent et par la réponse JSON d'origine.
Enfin, essayons de poser une question sans rapport avec le don du sang à l'agent.
Utilisateur : "Quel temps fait-il à Melbourne ?"
Agent : "Je suis désolé, je ne peux pas vous aider à ce sujet. Que puis-je faire pour vous aider concernant les informations d'éligibilité ?"
Cette réponse contient du contenu généré par IA et provient de la requête textuelle que Dialogflow a créée à partir du paramètre de connecteur de connaissances fourni précédemment : "Vous vous appelez Donate, et vous êtes un chatbot serviable et poli chez Save a Life. Votre tâche consiste à aider des êtres humains à obtenir les informations d'éligibilité. Cette requête textuelle contient le nom de l'entreprise, le nom de l'agent et surtout, le champ d'application utilisé par Dialogflow pour générer la réponse de l'agent.
Bravo ! Jusqu'à présent, vous utilisez le magasin de données pour aider les personnes à répondre aux questions fréquentes sur le don du sang. Dans la prochaine partie de l'atelier de programmation, nous verrons comment lier une requête de texte d'un générateur au même contenu afin de prendre des décisions éclairées.
6. Configurer l'agent pour le questionnaire d'éligibilité
La tâche suivante consiste à concevoir l'agent pour déterminer si l'utilisateur est autorisé à donner son sang. Les donateurs doivent respecter des exigences strictes, telles que l'âge, le poids, les conditions existantes, les derniers voyages, etc. Dans le cadre de cet atelier de programmation, nous ne prendrons en compte que l'âge et le poids. Un générateur utilise les grands modèles de langage (LLM) de Google pour prendre des décisions éclairées de manière dynamique, en fonction du contexte de la conversation et de la base de connaissances.
Configurer de nouveaux paramètres et routes
- Ouvrez la page d'accueil et cliquez sur Modifier les data stores.
- Remplacez la réponse de l'agent existant par
$request.knowledge.answers[0] Would you like to take the eligibility quiz to find out if you can donate blood, and start changing lives?
.
- Cliquez sur le bouton Enregistrer.
- Nous devons maintenant concevoir l'agent pour gérer "yes" (oui). et "non" des réponses. Pour commencer, créez un intent confirmation.yes et un intent confirmation.no. Suivez ces consignes concernant la réutilisation de l'intent.
- Ensuite, sur la page d'accueil, créez une route pour l'intent confirmation.yes qui passe à une nouvelle page Quiz d'éligibilité.
- Comme indiqué précédemment, nous allons simplifier le questionnaire et prendre en compte uniquement l'âge et le poids de l'utilisateur pour déterminer s'il peut faire un don ou non. Ouvrez la page Quiz d'éligibilité, ajoutez un nouveau paramètre de formulaire age-weight et sélectionnez
@sys.any
comme type d'entité. Indiquez"What is your age and weight?"
comme traitement initial de la requête. Nous souhaitons recueillir à la fois l'âge et le poids. Enregistrez toutes les modifications.
Créer et configurer le générateur d'éligibilité
La fonctionnalité générateur est une fonctionnalité Dialogflow CX qui permet aux développeurs d'utiliser les derniers grands modèles de langage (LLM) génératifs de Google pendant le fulfillment Dialogflow CX. Générateurs permettant de générer des réponses de l'agent au moment de l'exécution Un générateur peut gérer des réponses génériques impliquant des connaissances générales à partir d'un grand ensemble de données textuels sur lesquels il a été entraîné ou du contexte de la conversation.
Nous allons créer un nouveau générateur qui comparera les informations fournies par l’utilisateur (comme son âge et son poids) aux critères d’éligibilité pour déterminer si l’utilisateur peut faire un don.
- Dans la console Dialogflow CX, accédez à l'onglet Gérer, sélectionnez Generators, puis cliquez sur Create new (Créer).
- Ensuite, indiquez un nom à afficher descriptif et rédigez la requête textuelle. Conservez les paramètres de contrôle de la qualité du modèle par défaut. Cliquez ensuite sur Save (Enregistrer) pour créer le générateur.
- Nom à afficher :
Blood Donation Eligibility
- Requête textuelle:
Check the users eligibility against the following criteria: the minimum age is 18 and the maximum age is 75. Weight should be above 50 Kg. The user age and weight is $last-user-utterance. Be nice and tell the user if they are eligible to donate (also tell them why not in case)
- Nom à afficher :
La requête textuelle est envoyée au modèle génératif lors du fulfillment au moment de l'exécution. La question ou la demande doit être claire pour que le modèle génère une réponse satisfaisante. Vous pouvez utiliser des espaces réservés spéciaux de générateur intégré dans votre requête textuelle:
$conversation
: conversation entre l'agent et l'utilisateur, à l'exclusion du tout dernier énoncé de l'utilisateur.$last-user-utterance
Dernier énoncé de l'utilisateur.
La requête textuelle que vous avez configurée s'attend à ce que l'utilisateur fournisse son âge et son poids lors d'un tour de conversation (le "$last-user-utterance").
Utiliser le générateur dans le fulfillment et configurer tous les paramètres requis
- Sur la page Quiz d'éligibilité, ajoutez une route qui se produira lorsque tous les paramètres auront été renseignés. Saisissez la condition requise
$page.params.status = "FINAL"
, puis cliquez sur Enregistrer.
- Accédez à la section Generators (Générateurs) du volet Fulfillment et développez-la. Ensuite, cliquez sur Add generator (Ajouter un générateur) et sélectionnez le générateur Éligibilité aux dons de sang. Après avoir sélectionné le générateur, vous devez définir le paramètre de sortie qui contiendra le résultat du générateur après l'exécution.
- Utilisez le paramètre de sortie dans la réponse de l'agent et enregistrez la route. Vous êtes maintenant prêt à tout tester.
7. Tester de nouveau l'agent
Cliquez sur Tester l'agent pour rouvrir le simulateur.
Dans le simulateur, démarrez une nouvelle conversation avec l'agent. Renseignez-vous d'abord sur les critères d'âge, puis passez au questionnaire d'éligibilité. Tester les éléments "éligibles" chemin d'accès. Saisissez donc un âge compris entre 18 et 75 ans et un poids supérieur à 50 kg.
Vérifiez ensuite l'éligibilité si l'une des conditions ou les deux ne sont pas remplies.
Parfait, le générateur fonctionne comme prévu ! Ou est-ce bien le cas ? Que se passe-t-il si l'utilisateur fournit l'âge mais pas le poids (ou inversement) ?
8. Réglage des invites de générateurs
Pour que la collecte de l'âge et du poids ait été effectuée auparavant, cela ne semble pas fonctionner, sauf si ces informations sont renseignées. Nous devons plutôt créer un formulaire qui collecte les deux valeurs en tant que paramètres d'entité. Pour que l'invite contextualise tous les critères d'éligibilité (tels que l'âge et le poids), nous pouvons utiliser des espaces réservés en ajoutant un $ avant le mot. Plus tard, nous associerons ces espaces réservés d'invites de générateur aux paramètres de session dans le fulfillment. Ils seront remplacés par les valeurs des paramètres de session lors de l'exécution.
- Ouvrez la page Quiz d'éligibilité et ajoutez deux paramètres de formulaire distincts: un pour le poids et un pour l'âge. Choisissez
@sys.number-integer
comme type d'entité et marquez les paramètres comme obligatoires. Fournissez les traitements de requête initiaux tels queHow old are you?
etWhat is your correct weight?
. Enregistrez toutes les modifications.
- Avant de pouvoir modifier la requête de texte du générateur, puisque nous allons ajouter deux nouveaux espaces réservés personnalisés, nous devons d'abord supprimer le générateur du traitement de la route. Cliquez sur Enregistrer.
- Accédez à l'onglet Gérer, sélectionnez Generators, puis remplacez la requête textuelle du générateur Éligibilité aux dons de sang par:
Check the users eligibility against the following criteria: the minimum age is 18 and the maximum age is 75. The weight must be at least 50 kg. The user is $age years old and weighs $weight Kg. Craft an email and politely explain to the user if they're eligible to donate and if not why.
. Cliquez sur Enregistrer.
Notez que nous n'avons pas simplement rendu l'invite textuelle contextuelle des paramètres du formulaire d'âge et de poids, nous avons également modifié la dernière phrase pour pouvoir générer un e-mail formel à l'attention de l'utilisateur contenant le résultat officiel du questionnaire d'éligibilité.
- Sur la page Quiz d'éligibilité, sélectionnez la route et développez la section Generators (Générateurs) du volet Fulfillment. Ensuite, cliquez sur Ajouter un générateur et sélectionnez le générateur d'éligibilité aux dons de sang. Après avoir sélectionné le générateur, vous devez associer les nouveaux espaces réservés d'invites aux paramètres de session correspondants. De plus, vous devez redéfinir le paramètre de sortie. Cliquez sur Enregistrer.
- Testez à nouveau l'agent. La vérification d'éligibilité prend désormais en compte à la fois l'âge et le poids, et la formulation est passée d'un ton conversationnel à une réponse plus polie, prête à être envoyée sans intervention humaine potentielle.
9. Félicitations
Bravo ! Vous avez terminé cet atelier de programmation.
Aujourd'hui, nous nous sommes intéressés aux générateurs dans le cadre de questionnaires d'éligibilité. Vous avez vu que les générateurs utilisent les LLM pour générer des réponses d'agents. Lorsqu'ils sont alimentés par une base de connaissances, ils peuvent également prendre des décisions éclairées. Il existe bien d'autres cas d'utilisation qui peuvent être implémentés en exploitant des générateurs et des data stores, et nous sommes impatients de les découvrir !
Effectuer un nettoyage
Vous pouvez effectuer le nettoyage suivant pour éviter que les ressources utilisées dans cet atelier de programmation soient facturées sur votre compte Google Cloud:
- Pour éviter des frais Google Cloud inutiles, supprimez votre projet à l'aide de la console Google Cloud si vous n'en avez plus besoin.
- Si vous avez utilisé un projet Google Cloud existant, supprimez les ressources que vous avez créées pour éviter que des frais ne soient facturés sur votre compte. Pour en savoir plus, reportez-vous à la procédure permettant de supprimer une application.
- Si vous souhaitez désactiver les API pour Vertex AI Conversation et Dialogflow, accédez à la page Informations sur le service de l'API Discovery Engine, cliquez sur Désactiver l'API et confirmez, accédez à la page Informations sur le service de l'API Dialogflow, puis cliquez sur Désactiver l'API et confirmez.
En savoir plus
Poursuivez votre apprentissage sur l'IA conversationnelle et l'IA générative grâce à ces guides et ressources:
- Documentation pour Dialogflow CX
- Présentation de Vertex AI Conversation
- Créer et utiliser un agent de data store
- Documentation sur Vertex AI Conversation
- IA générative dans Google Cloud
Licence
Ce document est publié sous une licence Creative Commons Attribution 2.0 Generic.