Composants de contrôle
Ces composants de contrôle en mode YAML acheminent le flux si l'entrée de l'utilisateur correspond à une valeur prédéfinie.
System.ConditionEquals
Ce composant modifie la navigation en fonction d'une valeur de variable.
Note
Ce composant n'est pas disponible dans le concepteur de flux visuel. Vous pouvez utiliser le commutateur à cette fin.
Ce composant n'est pas disponible dans le concepteur de flux visuel. Vous pouvez utiliser le commutateur à cette fin.
Utilisez ce composant pour diviser le flux de dialogue lorsqu'une valeur est mise en correspondance. Ce composant exécute un acheminement basé sur des valeurs en comparant les valeurs définies pour ses propriétés
source
ou de variable
à celle stockée par la propriété value
. Le composant déclenche les actions equal
et notequal
selon la correspondance ou l'absence de correspondance. Dans l'extrait de code suivant, le client est acheminé vers l'état orderPizza
lorsque l'entrée extraite pour la variable de contexte orders
correspond à pizza
, ou vers le chemin d'exécution qui commence par l'état orderPasta
, lorsqu'elle ne correspond pas. Check for Pizza:
component: "System.ConditionEquals"
properties:
variable: "orders"
value: "pizza"
transitions:
actions:
equal: "orderPizza"
notequal: "orderPasta"
Propriétés | Description | Obligatoire? |
---|---|---|
variable |
Nom de la variable dont la valeur courante détermine l'acheminement. Le moteur de dialogue ignore la propriété variable si vous avez également défini la propriété source .
|
Non |
source |
La propriété source est une alternative à la propriété variable .
|
Non |
value |
Valeur comparée à la propriété source ou variable .
|
Oui |
Utilisation d'expressions Apache FreeMarker avec le composant System.ConditionEqual
Vous pouvez définir des critères correspondant à des valeurs et formats spécifiques en définissant les propriétés
value
et source
à l'aide d'expressions Apache FreeMarker. Par exemple :
verifyCode: component: "System.ConditionEquals" properties: variable: "code" value: "${userEnteredCode.value}" transitions: actions: equal: "wrongCode" notequal: "${flow.value}"
conditionEquals: component:"System.ConditionEquals" properties: source: "${addressVariable.value.state} - ${addressVariable.value.country}" value: "CA - USA" transitions: actions: equal: goCalfifornia notequal: goSomewhereElse
main: true name: "Shoppingbot" context: variables: yesnoVar: "YES_NO" ... confirmBuy: component: "System.ConditionEquals" properties: source: "${yesnoVar.value.yesno}" value: "YES" transitions: actions: equal: "deviceDone" notequal: "cancelOrder" deviceDone: component: "System.Output" properties: text: "Your ${devices.value} is on its way." transitions: return: "done" cancelOrder: component: "System.Output" properties: text: "Thanks for your interest." transitions: return: "done"
-
context: variables: wordLength: "int" words: "string" states: askName: component: "System.Text" properties: prompt: "What is your name?" variable: "words" setVariable: component: "System.SetVariable" properties: variable: "wordLength" value: "${words.value?length}" conditionEquals: component: "System.ConditionEquals" properties: source: "${(wordLength.value?number > 2)?then('valid', 'invalid')}" value: "valid" transitions: actions: equal: "checkFirstNameinDatabase" notequal: "inValidName" done: component: "System.Output" properties: text: "Done" transitions: return: "done" checkFirstNameinDatabase: component: "System.Output" properties: text: "Check the first name in the database." transitions: return: "done" inValidName: component: "System.Output" properties: text: "This name is not valid. It needs to be at least three letters." transitions: return: "done"
System.ConditionExists
Utilisez ce composant pour vérifier l'existence d'une variable spécifique. Pour diriger le dialogue en fonction de la valeur, définissez la clé transitions avec les actions exists
et notexist
.
Note
Ce composant n'est pas disponible dans le concepteur de flux visuel. Vous pouvez utiliser le commutateur à cette fin.
Ce composant n'est pas disponible dans le concepteur de flux visuel. Vous pouvez utiliser le commutateur à cette fin.
Propriétés | Description | Obligatoire? |
---|---|---|
variable |
Nom de la variable | Oui |
main: true
name: "HelloKids"
context:
variables:
foo: "string"
lastQuestion: "string"
lastResponse: "string"
states:
intent:
component: "System.Intent"
properties:
variable: "iResult"
transitions:
actions:
Talk: "checkUserSetup"
unresolvedIntent: "checkUserSetup"
checkUserSetup:
component: "System.ConditionExists"
properties:
variable: "user.lastQuestion"
transitions:
actions:
exists: "hellokids"
notexists: "setupUserContext"
setupUserContext:
component: "System.CopyVariable"
properties:
from: "lastQuestion,lastResponse"
to: "user.lastQuestion,user.lastResponse"
transitions:
...
...
System.Switch
Utilisez ce composant pour changer d'état en fonction de la valeur d'une variable.
Note
Cette rubrique décrit l'utilisation de ce composant en mode YAML. Pour plus d'informations sur son utilisation dans le concepteur de flux visuel, voir Passer.
Cette rubrique décrit l'utilisation de ce composant en mode YAML. Pour plus d'informations sur son utilisation dans le concepteur de flux visuel, voir Passer.
Il permet un acheminement basé sur des valeurs comme le composant
System.ConditionEquals
. Le composant System.Switch
sélectionne un chemin d'exécution en comparant une liste de valeurs à une propriété variable
ou source
. Lorsque les valeurs correspondent, le composant déclenche une transition d'action qui indique l'état de départ du chemin d'exécution. Vous pouvez ajouter une transition NONE
lorsque le jeu de valeurs courant de la variable ne correspond à aucun des éléments définis pour la propriété values
. La rubrique Configurer le flux de dialogue pour les actions inattendues décrit comment le composant System.Switch
permet au robot de compétence de traiter une entrée utilisateur incorrecte.switchOnCategory:
component: "System.Switch"
properties:
variable: "category"
values:
- "Vehicle"
- "Property"
- "Other"
transitions:
actions:
NONE: "ActionNoLongerAvailable"
Vehicle: "getVehicleQuote"
Property: "getPropertyQuote"
Other: "getOtherQuote"
Propriété | Description | Obligatoire? |
---|---|---|
variable |
Variable dont la valeur courante est utilisée comme base pour la transition de changement (switch). Définissez la propriété values sous forme de liste de valeurs de comparaison. Le moteur de dialogue ignore la propriété variable lorsque vous avez également défini la propriété source .
|
Non |
source |
La propriété source est une alternative à la propriété variable .
|
Non |
values |
Liste des valeurs utilisées pour la comparaison avec les propriétés source ou variable .
Note
Cette propriété n'est pas disponible dans le concepteur de flux visuel du composant. Voir Passer. |
Oui |
Utilisation d'expressions Apache FreeMarker avec le composant System.Switch
Vous pouvez définir des critères correspondant à des valeurs et formats spécifiques en définissant les propriétés
value
et source
à l'aide d'expressions Apache FreeMarker. Par exemple, vous pouvez définir l'expression en utilisant des opérations FreeMarker intégrées, telles que date
et string
: switch2:
component: "System.Switch"
properties:
source: "${startDate.value.date?string('dd-MM-yyyy')}"
values:
- "17-12-2017"
- "18-12-2017"
transitions:
actions:
"17-12-2017": goToday
"18-12-2017": goTomorrow