Conditions préalables
Voici les technologies utilisées dans ce projet :
- Compte Google Cloud
- API Dialogflow activée
- Interface de ligne de commande Dialogflow CX
Tests, tests et tests !
Le test de vos conversations garantit que les composants d’un agent fonctionnent correctement à un niveau qui inclut l’infrastructure auxiliaire de l’agent, telle que la NLU, le webhook et l’intégration avec des systèmes externes.
Un test peut évaluer les composants d’une application à un niveau élevé. Nous pouvons utiliser des tests pour vérifier que deux composants ou plus d’un agent fonctionnent ensemble et génèrent un résultat attendu, incluant éventuellement tous les composants nécessaires pour traiter complètement une demande.
Ces tests peuvent être exécutés manuellement ou automatisés dans un système d’intégration continue et sont exécutés dans chaque nouvelle version de l’agent.
Manuel
Simulateur
La console Dialogflow est une interface Web dans laquelle vous pouvez concevoir vos conversations en créant des agents et au sein d’un agent, en créant des flux, des intents, des types d’entités, etc. Sur la console Dialogflow, vous pouvez créer et interagir facilement avec votre intent. Pour ce faire, il vous suffit d’accéder à la console Dialogflow CX. Voici à quoi cela ressemble :
La console comprend un outil très utile pour tester manuellement votre agent. Il s’agit d’un simulateur où vous pouvez interagir avec votre agent pour tester que la conversation se déroule comme prévu. Pour commencer à tester votre agent, vous devez cliquer sur le Agent de test bouton situé dans le coin supérieur droit du canevas. Lorsque vous démarrez le simulateur, vous devrez choisir l’environnement, le flux et la page. Pour interagir avec le simulateur, vous pouvez simplement taper du texte et l’envoyer à l’agent, mais vous pouvez également définir des paramètres, envoyer des événements, etc. Vous pouvez annuler le dernier tour de conversation à chaque fois que vous le souhaitez.
Une fois que vous avez terminé votre interaction manuelle, vous pouvez :
- Enregistrez l’intégralité de la conversation en tant que scénario de test.
- Rejouer la conversation automatiquement.
- Réinitialisez la conversation au cas où vous voudriez recommencer depuis le début.
automatique
IC/CD
Dans les logiciels, c’est un modèle courant (et une bonne pratique) d’avoir différents environnements dans lesquels les développeurs peuvent déployer différentes versions de leur logiciel. Chaque environnement a ses configurations.
Dans Dialogflow CX, nous avons le même concept : vous pouvez créer une version de votre agent, puis la déployer dans un environnement. Il en va de même avec le webhook : vous pouvez déployer une version de webhook et utiliser cette version dans un environnement.
Lorsque vous avez enregistré une conversation que vous avez effectuée dans le simulateur en tant que scénario de test, vous pouvez l’ajouter à un pipeline d’intégration continue d’un environnement spécifique. Vous trouverez vos pipelines CI/CD dans le Gérer onglet et le clic dans l’onglet IC/CD section:
La CLI Dialogfow CX ou cxcli
est un outil d’interface de ligne de commande que vous pouvez utiliser pour interagir avec vos projets Dialogflow CX dans un terminal. C’est un projet open-source que j’ai créé. Avec le cxcli
vous pouvez interagir facilement avec vos intents Dialogflow CX.
Avec le cxcli
vous pouvez interagir facilement avec les pipelines CI/CD de vos environnements de vos agents Dialogflow CX.
Vous pouvez trouver l’utilisation de la commande CI/CD dans le cxcli environment execute-cicd
commande.
cxcli environment execute-cicd [environment] [parameters]
Ceci est un exemple simple de la cxcli environment execute-cicd
commande:
cxcli environment execute-cicd cicd-env --project-id test-cx-346408 --location-id us-central1 --agent-name test-agent
La commande ci-dessus vous donnera une sortie comme celle-ci :
$ cxcli environment execute-cicd cicd-env --project-id test-cx-346408 --location-id us-central1 --agent-name test-agent
INFO Executing cicd for environment cicd-env
INFO PASSED
Profilage NLU à l’aide de la CLI Dialogflow CX
Utilisez le NLU Profiler pour tester les énoncés des utilisateurs et améliorer le modèle d’interaction de votre agent.
Avec le profileur NLU, vous pouvez voir comment les énoncés se résolvent en intentions et en emplacements dans votre modèle d’interaction. Lorsqu’un énoncé ne correspond pas à la bonne intention ou au bon emplacement, vous pouvez mettre à jour le modèle d’interaction et réessayer. Avec le cxcli
, vous pouvez voir les intents que Dialogflow CX a pris en compte et ignorés. Ensuite, vous pouvez déterminer comment utiliser des échantillons supplémentaires pour entraîner votre modèle à résoudre les énoncés selon leurs intentions et emplacements prévus.
Chaque suite est exécutée dans la session Dialogflow CX, vous pouvez donc tester non seulement votre NLU, mais également une conversation elle-même.
Toutes les commandes disponibles dans le cxcli
pour exécuter le profileur NLU sont situés en bas de la cxcli profile-nlu
commande.
Cette commande exécutera une suite qui comprend un ensemble de tests. Il est important de savoir quelles suites et quels tests vous pouvez créer. Les suites et les tests sont définis comme yaml
des dossiers. Vous pouvez exécuter ces suites depuis votre terminal ou vos pipelines CI en utilisant cxcli
.
Pour exécuter une suite, vous devez exécuter le cxcli profile-nlu execute
commande. Pour l’utilisation, veuillez vous référer à cette page.
cxcli profile-nlu execute [suite-file] [parameters]
Suites
Une suite est un fichier YAML avec la structure suivante :
# suite.yaml
# Name of the suite.
name: Example Suite
# Brief description of the suite.
description: Suite used as an example
# Project ID on Google Cloud where is located your Dialogflow CX agent.
projectId: test-cx-346408
# Location where your Dialogflow CX agent is running.
# More info here: https://cloud.google.com/dialogflow/cx/docs/concept/region
locationId: us-central1
# Agent name of your Dialogflow CX agent.
# Notice: it is the agent name, not the agent ID.
agentName: test-agent
# You can have multiple tests defined in separated files
tests:
# ID of the test.
- id: test_id
# File where the test specification is located
file: ./test.yaml
Vous pouvez trouver la référence complète ici.
Essais
Un test est un fichier YAML avec la structure suivante :
# test.yaml
# Name of the test.
name: Example test
# Brief description of the test.
description: These are some tests
# Locale of the interaction model that is gonna be tested.
# You can find the locales here: https://cloud.google.com/dialogflow/cx/docs/reference/language
localeId: en
# A check is a test itself: given an input, you will validate the intents and the parameters/entities detected by Dialogflow CX
# You can have multiple checks defined
checks:
# The ID of the check
- id: test
input:
# the input type
# it could be text or audio
type: text
# The input itself in text format. For type: audio, you have to specify the audio tag.
text: I want 3 pizzas
validate:
# Intent that is supposed to be detected
intent: order_intent
# You can have multiple parameters/intents
# Notice: this could be empty if your intent does not have any entities/parameters.
parameters:
# Entity name that is supposed to be detected
- parameter: number
# Value that is supposed to be detected
value: 3
Vous pouvez trouver la référence complète ici.
Exemples
Vous pouvez trouver plus d’exemples sur notre dépôt GitHub et sur la page Exemples.
Ceci est un exemple simple de la cxcli profile-nlu execute
commande:
cxcli profile-nlu execute examples/suite.yaml
La commande ci-dessus vous donnera une sortie similaire à celle-ci :
$ cxcli profile-nlu execute suite.yaml
INFO Suite Information: test-agent
INFO Test ID: test_1
INFO Input: type: text, value: hi
INFO Intent Detected: hi_intent
INFO Input: type: text, value: hello
INFO Intent Detected: hi_intent
INFO Input: type: audio, value: ./audio/hi.mp3
INFO Intent Detected: hi_intent
INFO Test ID: test_2
INFO Input: type: text, value: I want 3 pizzas
INFO Intent Detected: order_intent
INFO Param order_type: pizza
INFO Param number: 3
INFO Input: type: text, value: I want 2 cokes
INFO Intent Detected: order_intent
INFO Param number: 2
INFO Param order_type: coke
Ressources
Découvrez l’utilisation complète du cxcli profile-nlu
commande et le cxcli environment
commande.
Si vous souhaitez en savoir plus sur les tests Dialogflow CX, consultez la documentation officielle.
Conclusion
Il s’agissait d’un didacticiel de base pour apprendre à configurer correctement vos agents Dialogflow CX. Comme vous l’avez vu dans cet exemple, la création de tests et la configuration de pipelines CI/CD avec la console ou le cxcli
C’est très facile!
J’espère que ce tutoriel vous sera utile.
C’est tout ! Bon codage !