Introduction au concepteur de flux visuel
Voici un ensemble rapide d'étapes pour commencer à utiliser Visual Flow Designer.
Créer la brique de flux du concepteur visuel
- Cliquez sur + Nouvelle brique sur la page de destination des briques.
- Choisissez Visuel 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, où vous définissez et gérez la configuration pour l'ensemble de la brique. Entre autres choses, vous utilisez sa page Variables de brique pour ajouter les variables partagées entre les flux et sa page Evénements pour créer et gérer les mappings des flux transactionnels avec les intentions et le mapping des flux utilitaires avec les événements intégrés qui gèrent les intentions non résolues, les erreurs de dialogue et les 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. La boîte de dialogue de mise en correspondance permet d'associer différents types d'événement à 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éer un flux d'événements d'intention
Ici, vous créez des flux à mettre en correspondance avec des intentions spécifiques dans 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 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 brique Pizza, vous pouvez créer les artefacts suivants :
- Intention orderPizza.
- Entité PizzaTopping de liste de valeurs.
- Former la brique.
- Introduction au flux :
- Cliquez sur Flux dans la barre de navigation de gauche, puis 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 l'un des flux disponibles.
- 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 fait référence à une entité, renseignez 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 partager le même nom. Toutefois, les variables et les paramètres de sortie ne peuvent pas porter 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é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 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 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 bundles 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 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 faites référence à 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émarrage en cliquant sur le menu
, puis en choisissant Créer un état de démarrage.
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 Flux de fin (implicite) est sélectionnée comme transition. Etant donné que ce flux n'a pas de paramètres de sortie requis, la transition vers le flux de fin implicite suffira. Toutefois, si ce flux comporte un autre paramètre de sortie requis, l'état de sortie doit 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. 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 sans 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 sans valeur, vous n'accédez pas à l'élément avec une propriété de valeur (aucun élément
.value
ou.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
), vous devez utiliser${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
) qui est partagé 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 :
L'autocomplé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 disposer de flux utilitaires 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 à 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'existe aucun 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 :
- Créez ou importez une intention de réponse, puis entraînez la brique.
- Cliquez sur Flux, puis sur + Ajouter un flux.
- Saisissez 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 le texte et les messages 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 :
Utilisez le champ de recherche pour localiser un modèle d'état. - Cliquez sur l'état de réponse d'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.
- Complétez la boîte de dialogue Créer un gestionnaire d'événements intégré :
- Sélectionnez Intention de réponse (situé sous Evénements d'intention) dans la liste déroulante Type d'événement non géré.
- 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é sous Evénements d'intention) dans la liste déroulante Type d'événement non géré.
- 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, agit comme un élément de secours en l'absence d'un flux de gestion 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 lors du traitement de votre commande : |