Démarrer avec le concepteur de flux visuel
Voici un ensemble rapide d'étapes pour démarrer avec Visual Flow Designer.
Créer la compétence de flux Visual Designer
- Cliquez sur + New Skill (Nouvelle compétence) dans la page de renvoi des compétences.
- Sélectionnez Visual (Visuel) comme mode de dialogue.
Note
La version de la plate-forme doit être réglée à 22.04 ou une version ultérieure pour que cette option soit disponible. - Créez des intentions et des entités. Vous devrez les mettre en place avant de créer des variables et des flux d'intention.
- Cliquez sur Flows (Flux)
dans la barre de navigation gauche. L'éditeur s'ouvre sur le flux principal, où vous définissez et gérez la configuration pour l'ensemble de la compétence. Entre autres, vous utilisez sa page Variables de compétence pour ajouter les variables partagées entre les flux et sa page Événements afin de créer et de gérer les mappages des flux transactionnels aux intentions et le mappage des flux d'utilitaires aux événements intégrés qui traitent les intentions non résolues, les erreurs de dialogue et la présentation des intentions de réponse.
Mapper des événements
Vous pouvez ajouter, modifier ou supprimer des mappages à partir de la page Événement du flux principal. Vous pouvez utiliser la boîte de dialogue de mappage pour divers types d'événement dans des flux existants.
Description de l'illustration df-2-0-event-mapping-dialog.png
Vous pouvez accéder à cette boîte de dialogue en cliquant sur .
Description de l'illustration df-2-0-event-mappings-page.png
Créer un flux d'événements d'intention
Ici, vous créez des flux à mapper à des intentions spécifiques de votre compétence. Les flux d'intentions sont généralement mappés avec des intentions standard, mais vous pouvez également les créer pour les intentions de réponse.
Pour créer un flux d'événements d'intention :
- Créez l'intention correspondante et toutes les entités qui seront référencées dans le flux.
Par exemple, si vous créez une compétence de pizza, vous pouvez créer les artefacts suivants :
- Une intention orderPizza.
- Entité PizzaTopping de liste de valeurs.
- Former la compétence.
- Démarrez avec le flux :
- Cliquez sur Flows (Flux) dans la barre de navigation gauche, puis sur + Add Flow (Ajouter un flux).
- Entrez un nom de flux, puis sélectionnez le nom de l'intention mappée à ce flux. Cliquez ensuite sur Créer.
Note
Vous pouvez uniquement choisir parmi les flux disponibles.
- Créez les variables utilisées dans le flux :
- Ouvrez l'onglet Configuration. Puis cliquez sur + Ajouter une variable.
- Sélectionnez le type de variable. Si la variable référence une entité, complétez la boîte de dialogue en nommant la variable pour l'entité sélectionnée. Puis, cliquez sur Appliquer.Note
Dans un flux, une variable et un paramètre de sortie peuvent partager le même nom. Toutefois, les variables et les paramètres de sortie ne peuvent pas avoir le même nom que les paramètres d'entrée.
- Créez le flux :
- Ouvrez l'onglet Flux.
- Cliquez sur le menu
dans le début du flux, puis cliquez sur Ajouter un état de début pour ouvrir la boîte de dialogue Ajouter un état.
- Sélectionnez un état dans le sélecteur de composants, puis cliquez sur Insérer.
- Ouvrez l'inspecteur de propriétés de l'état pour configurer le composant.
- Sélectionnez Poser une question, puis cliquez sur Insérer.
- Ouvrez l'onglet Component (Composant) dans la fenêtre de propriétés de l'état de la question.
- Ajoutez une question ("Quelle pizza voulez-vous?", par exemple). Sélectionnez ensuite la variable de flux.
Conseil :
Utilisez des ensembles de ressources pour tout le texte orienté utilisateur de votre compétence. - Ajoutez un autre état après la question en cliquant sur le menu.
- Sélectionnez envoyer un message, puis cliquez sur Insérer.
- Dans la fenêtre de propriétés pour l'état d'envoi du message, entrez un message de confirmation avec une expression FreeMarker qui accède à la variable de flux à l'aide de la syntaxe
${varName.value.value}
. Par exemple :
Si vous référencez une entité composite de niveau flux, utilisez la syntaxeYour ${PizzaType.value.value} pizza is on the way.
${cbVarName.value.itemName.<attribute>}
.Après avoir ajouté des états au flux, vous pouvez réaffecter l'état de début en cliquant sur le menu
, puis en choisissant Faire l'état de début.
Description de l'illustration df-2-0-make-start-state.png - Ouvrez l'onglet Transitions de l'inspecteur de propriétés du composant de sortie. Notez que Flux de fin (implicite) est sélectionné comme transition. Comme ce flux n'a pas de paramètres de sortie requis, la transition vers le flux End implicite suffit. Toutefois, si ce flux avait un autre paramètre de sortie requis, l'état de sortie devrait passer à un état de flux de fin réel (inséré en cliquant sur Contrôle de flux > Flux de fin dans la boîte de dialogue Ajouter un état) qui spécifie le ou les paramètres de sortie du flux.
Valeurs de variable de référence dans les expressions FreeMarker
Utilisez ${varName.value.value}
pour référencer une entité de liste de valeurs. Comme les entités sont résolues en tant qu'objets JSON, le premier .value
retourne l'objet JSON et le second .value
retourne la valeur d'une propriété dans cet objet JSON. Pour retourner la valeur de l'entité dans la langue principale de la compétence, utilisez ${varName.value.primaryLanguageValue}
.
${cbVarName.value.itemName.value}
pour les éléments de liste de valeurs et {cbVarName.value.itemName}
pour les éléments de liste autres que de valeurs.
- Lorsqu'un élément est une liste de valeurs, utilisez une propriété de valeur :
${cbVarName.value.itemName.value}
ou${cbVarName.value.itemName.primaryLanguageValue}
. - Pour les éléments de liste sans valeur, vous n'accédez pas à l'élément avec une propriété de valeur (pas
.value
ou.primaryLanguageValue
). Par exemple, si vous référencez une entité DATE dont le nom d'élément estdate
dans l'entité composite, vous utilisez${cbVarName.value.date}
. Pour un élément d'entité NUMBER (number
), vous utilisez${cbVarName.value.number}
.
skill.
Par exemple, l'expression suivante référence un élément (Type
) dans une entité composite (Order
) partagée entre les flux :${skill.Order.value.Type.value}
skill
n'est pas requis dans les expressions pour les variables de portée flux :${Order.value.Type.value}
Conseil :
L'auto-complétion rend l'écriture d'expressions Apache FreeMarker moins sujette aux erreurs.Créer un flux pour les événements intégrés
Vous voudrez probablement avoir des flux d'utilitaire pour les événements intégrés tels que le traitement des intentions non résolues, les erreurs de dialogue et la présentation des intentions de réponse. Vous mappez ces flux aux événements intégrés du flux principal. En général, les flux mappés à des événements intégrés sont appelés lorsqu'il n'y a pas de flux au niveau de l'intention actif, par exemple lorsque la compétence démarre ou lorsqu'un flux d'intention se termine par un état de flux de fin.
Par exemple, pour créer un flux générique qui traite toutes les intentions de réponse :
- Créez ou importez une intention de réponse, puis entraînez la compétence.
- Cliquez sur Flux, puis sur + Ajouter un flux.
- Entrez un nom de flux pour le flux d'intention de réponse, puis cliquez sur Create (Créer).
- Cliquez sur le menu
dans le début du flux, puis cliquez sur Ajouter un état de début pour ouvrir la boîte de dialogue Ajouter un état.
- Ajoutez un état d'affichage de réponse d'intention en sélectionnant User Messaging (Messagerie utilisateur) > Display text and multimedia messages (Afficher les messages texte et multimédia) > Display intention answer (Afficher la réponse d'intention) ou en entrant une réponse d'intention dans le champ Search (Rechercher). Cliquez ensuite sur Insérer.
Conseil :
Vous utilisez le champ de recherche pour localiser un modèle d'état. - Cliquez sur l'état de la réponse à l'intention d'affichage pour ouvrir l'onglet Composant de l'inspecteur de propriétés, puis cliquez sur Modifier les éléments de réponse.
- Mettez à jour le message texte, en intégrant l'expression de modèle FreeMarker qui accède au message d'intention de réponse (
"${skill.system.event.value.intent.answer}"
). Par exemple :"Hello, ${profile.firstName?capitalize} ${profile.lastName?capitalize}. You were asking about ${skill.system.event.value.intent.intentName?lower_case}. Here's your answer: ${skill.system.event.value.intent.answer}."
Note
- Cliquez sur Application.
- Cliquez sur Flux principal.
- Cliquez sur
à côté de Événements intégrés.
- Remplissez la boîte de dialogue Créer un programme de traitement d'événements intégré :
- Sélectionnez Answer Intent (Intention de réponse) (situé sous Intent Events (Événements d'intention) dans la liste déroulante Unhandled Event Type (Type d'événement non traité).
- Sélectionnez le flux d'intention de réponse dans la liste déroulante Flux mappé.
- Sélectionnez Answer Intent (Intention de réponse) (situé sous Intent Events (Événements d'intention) dans la liste déroulante Unhandled Event Type (Type d'événement non traité).
- Cliquez sur Create (Créer).
Le flux d'événements d'erreur de boîte de dialogue peut exister à la fois au niveau de la compétence et au niveau du flux. Le flux d'erreurs de dialogue au niveau de la compétence, qui est mappé à l'événement intégré Erreur de dialogue, agit comme un rappel en l'absence d'un flux de traitement des erreurs mappé à l'événement Erreur de dialogue au niveau du flux. Si votre compétence n'a aucun flux d'erreur de dialogue, elle affiche le message d'erreur par défaut (Oops! Je rencontre un problème).
Exemples de messages pour les flux d'événements intégrés
Événement intégré | Syntaxe d'expression et exemples |
---|---|
Intention de la réponse | Utilisez la syntaxe suivante pour un flux générique qui traite toutes les intentions de réponse pour la compétence :
Par exemple : Bonjour, |
Erreur de dialogue | Utilisez la syntaxe suivante pour les messages d'erreur de dialogue : Par exemple :Une erreur est survenue lors du traitement de votre commande : |