Introduction au concepteur de flux visuel
Voici un ensemble rapide d'étapes pour commencer avec Visual Flow Designer.
Création de la brique de flux Visual Designer
- Cliquez sur + Nouvelle brique sur la page de destination des briques.
- Choisissez Visual comme mode de boîte de dialogue.
Remarque
La version de plate-forme doit être définie sur 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 Flux
dans la barre de navigation de gauche. L'éditeur s'ouvre sur le flux principal, dans lequel vous définissez et gérez la configuration pour l'ensemble de la brique. Vous utilisez notamment sa page Variables de brique pour ajouter les variables partagées entre les flux et sa page Evénements afin de créer et de gérer les mises en correspondance de flux transactionnels avec des intentions, ainsi que la mise en correspondance de flux utilitaires avec des événements intégrés qui gèrent les intentions non résolues, les erreurs de dialogue et la présentation des intentions de réponse.
Mapper les événements
Vous pouvez ajouter, modifier ou supprimer des mappings à partir de la page Evénement du flux principal. Vous pouvez utiliser la boîte de dialogue de mise en correspondance pour différents types d'événement sur des flux existants.
Description de l'illustration df-2-0-event-mapping-dialog.png
Pour accéder à cette boîte de dialogue, cliquez sur .
Description de l'image df-2-0-event-mappings-page.png
Création d'un flux d'événements d'intention
Ici, vous créez des flux à mettre en correspondance avec des intentions spécifiques de votre brique. Les flux d'intentions sont généralement mis en correspondance avec des intentions standard, mais vous pouvez également les créer pour des 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 brique de pizza, vous pouvez créer les artefacts suivants :
- Intention orderPizza.
- Entité de liste de valeurs PizzaTopping.
- Entraînez la brique.
- Introduction au flux :
- Cliquez sur Flux dans la barre de navigation de gauche, puis cliquez sur + Ajouter un flux.
- Entrez un nom de flux, puis sélectionnez le nom de l'intention mise en correspondance avec ce flux. Cliquez ensuite sur Créer.
Remarque
Vous pouvez uniquement choisir parmi le flux disponible.
- Créez les variables utilisées dans le flux :
- Ouvrez l'onglet Configuration. Cliquez ensuite 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. Cliquez sur Appliquer.Remarque
Dans un flux, une variable et un paramètre de sortie peuvent porter le même nom. Toutefois, les variables et les paramètres de sortie ne peuvent pas avoir les mêmes noms que les paramètres d'entrée.
- Créez le flux :
- Ouvrez l'onglet Flux.
- Cliquez sur le menu
dans le démarrage du flux, puis 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 composant, 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 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 groupes de ressources pour tout le texte orienté utilisateur de votre brique. - 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 de l'état du message d'envoi, 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é de conteneur composite de niveau flux, utilisez la syntaxeYour ${PizzaType.value.value} pizza is on the way.
${cbVarName.value.itemName.<attribute>}
.Une fois que vous avez ajouté des états au flux, vous pouvez réaffecter l'état de début en cliquant sur le menu
, puis en choisissant Définir l'état de début.
Description de l'image df-2-0-make-start-state.png - Ouvrez l'onglet Transitions de l'inspecteur de propriétés du composant de sortie. Notez que l'option Mettre fin au flux (implicite) est sélectionnée comme transition. Etant donné que ce flux ne comporte aucun paramètre de sortie requis, la transition vers le flux de fin implicite suffira. Toutefois, si ce flux avait un autre paramètre de sortie requis, l'état de sortie devrait passer à un état de fin de flux 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 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. Etant donné que les entités sont résolues en tant qu'objets JSON, le premier élément .value
renvoie l'objet JSON et le second élément .value
renvoie la valeur d'une propriété dans cet objet JSON. Pour renvoyer la valeur de l'entité dans la langue principale de la brique, 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 valeur.
- 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 autres que des valeurs, vous n'avez pas accès à l'élément avec une propriété de valeur (pas
.value
ni.primaryLanguageValue
). Par exemple, si vous référencez une entité DATE dont le nom d'élément estdate
dans le conteneur composite, vous devez utiliser${cbVarName.value.date}
. Pour un élément d'entité NUMBER (number
), utilisez${cbVarName.value.number}
.
skill.
au début du nom de la variable dans l'expression. Par exemple, l'expression suivante référence un élément (Type
) dans une entité de conteneur 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 de flux :${Order.value.Type.value}
Conseil :
La saisie semi-automatique rend l'écriture des expressions FreeMarker Apache moins sujette aux erreurs.Créer un flux pour les événements intégrés
Vous aurez probablement besoin de flux utilitaires pour les événements intégrés tels que la gestion des intentions non résolues, les erreurs de dialogue et la présentation des intentions de réponse. Vous mettez en correspondance ces flux avec des événements intégrés dans le flux principal. En général, les flux mis en correspondance avec des événements intégrés sont appelés lorsqu'il n'y a pas de flux de niveau intention actif, par exemple lorsque la brique démarre ou lorsqu'un flux d'intention se termine avec un état de flux de fin.
Par exemple, pour créer un flux générique qui gère toutes les intentions de réponse, procédez comme suit :
- Créez ou importez une intention de réponse, puis entraînez la brique.
- Cliquez sur Flux, puis sur + Ajouter un flux.
- Entrez le nom du flux d'intention de réponse, puis cliquez sur Créer.
- Cliquez sur le menu
dans le démarrage du flux, puis sur Ajouter un état de début pour ouvrir la boîte de dialogue Ajouter un état.
- Ajoutez un état de réponse d'intention d'affichage en sélectionnant Messagerie utilisateur > Afficher les messages texte et multimédias > Afficher la réponse d'intention, ou en saisissant la réponse d'intention dans le champ 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 réponse de 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}."
Remarque
- Cliquez sur Appliquer.
- Cliquez sur Flux principal.
- Cliquez sur
en regard des événements intégrés.
- Renseignez la boîte de dialogue Créer un gestionnaire d'événements intégré :
- Sélectionnez Intention de réponse (située sous Evénements d'intention) dans la liste déroulante Type d'événement non traité.
- Sélectionnez le flux d'intention de réponse dans la liste déroulante Flux mis en correspondance.
- Sélectionnez Intention de réponse (située sous Evénements d'intention) dans la liste déroulante Type d'événement non traité.
- Cliquez sur Créer.
Le flux d'événements d'erreur de boîte de dialogue peut exister aux niveaux de la brique et du flux. Le flux d'erreurs de dialogue de niveau brique, qui est mis en correspondance avec l'événement intégré Erreur de dialogue, fait office de repli en l'absence d'un flux de traitement des erreurs mis en correspondance avec l'événement Erreur de dialogue de niveau flux. Si votre brique ne comporte aucun flux d'erreurs de dialogue, elle génère le message d'erreur par défaut (Oups ! Je rencontre quelques problèmes).
Exemples de messages pour les flux d'événements intégrés
Evénement intégré | Syntaxe et exemples d'expression |
---|---|
Intention de réponse | Utilisez la syntaxe suivante pour les flux génériques qui gèrent toutes les intentions de réponse de la brique :
Par exemple : Bonjour, |
Erreur de boîte de dialogue | Utilisez la syntaxe suivante pour les messages d'erreur de boîte de dialogue : Par exemple :Erreur de traitement de votre commande : |