Migrer vers le mode de dialogue visuel

Voici ce que vous devez savoir sur la migration d'une brique d'un flux de dialogue rédigé par OBotML vers une brique du concepteur de flux visuel.

Pour démarrer le processus de migration, cliquez sur Migrer vers le concepteur de flux dans l'éditeur de flux de dialogue.
Image du bouton Migrer vers le concepteur de flux

Toutefois, avant d'effectuer cette étape, vous devrez peut-être apporter des ajustements à la brique ou à la définition OBotML pour vous assurer des éléments suivants :
  • La brique est de version 21.12 ou supérieure.
  • Aucune transition n'utilise FreeMarker pour exprimer des états. Par exemple, une transition telle que equal: "${system.actualState}" empêchera la migration.
  • Il n'existe aucun état System.QnA. Remplacez le contenu des questions/réponses par des intentions de réponse.
Remarque

Si la définition OBotML comporte 50 états ou plus, la migration continuera, mais n'entraînera pas de flux d'intention rempli avec des états. Elle contiendra uniquement les variables de niveau flux.
Pour localiser les problèmes dans la définition OBotML, commencez par valider votre brique, puis examinez la fenêtre Migration des résultats de la recherche des erreurs de validation Il s'agit d'une image de l'icône d'avertissement. que vous devez corriger avant la migration. Les avertissements Il s'agit d'une image de l'icône d'erreur. et les messages d'information Il s'agit d'une image de l'icône de conseil. décrivant la façon dont les états avec des propriétés ou composants en phase d'abandon, tels que System.ConditionEquals, System.ConditionExists, System.List, System.Text et System.Intent, seront interpolés dans le concepteur de flux visuel.

Que se passe-t-il lorsque vous effectuez une migration vers une brique Visual Flow Designer

Une migration réussie entraîne la création d'une nouvelle brique. Par défaut, sa version est notée Version 1.0–migrated dans la mosaïque. (Vous pouvez modifier la valeur de la version de la brique dans la boîte de dialogue Migration).
Image d'une mosaïque de briques avec version de dialogue de flux visuel

La nouvelle version de la brique est accompagnée d'un journal de migration qui documente la conversion des propriétés et composants en phase d'abandon.
8:5 The variable 'iResult' will not be migrated. In visual dialogs, the intent resolution is done in the dialog engine and the NLP result is available through the 'skill.system.nlpresult' variable.
9:5 The variable 'rb' will not be migrated. This variable is pre-defined now.
84:5 The state 'welcome' uses the 'System.Output' component, which is obsolete in visual dialog mode. It will be replaced with a 'System.CommonResponse' component.
92:5 The state 'getIntent' uses the System.Intent component, which is obsolete in visual dialog mode. It will be replaced with a System.Switch component. Intent resolution in visual dialog mode happens automatically when starting a new session and after ending a root flow.
115:7 The property 'values' in the state 'startDetermineWineType' is obsolete in visual dialog mode and will be removed.
122:9 The 'NONE' transition action in the state 'startDetermineWineType' is obsolete in visual dialog mode and will be removed. The 'next' transition is used instead.
... 

La brique Visual Flow Designer contient à la fois un flux principal et un flux d'intention unique. Toutes les intentions sont mises en correspondance avec ce flux. Dans ce flux, l'acheminement d'intention est effectué à l'aide d'un état Switch dans lequel les noms d'intention ont été transcrits en tant que transitions d'action. La logique de routage est exécutée à l'aide de ${skill.system.event.value.intent.intentName}.

Le test de l'itération Visual Flow Designer du flux peut révéler que la migration a introduit des régressions. Par exemple, les modifications apportées aux définitions de transition peuvent comporter des segments déconnectés du flux. Vous pouvez également constater que le flux unique créé à partir de la migration est encombrant. Dans ce cas, vous pouvez modulariser la fonctionnalité en copiant les états dans un flux distinct.

Récapitulatif des migrations

OBotML Artefact(s)... ... Devenir le suivant dans Visual Flow Designer
Intentions Les événements d'intention et unresolvedIntent sont tous mis en correspondance avec le flux d'intention unique.
Variables contextuelles Variables de niveau flux. La variable rb n'est pas migrée ; la variable system.rb est utilisée à la place.
Etats System.Intent Transcrit en tant qu'état Switch. Les intentions sont nommées en tant que transitions d'action. Le routage est déterminé à l'aide de ${skill.system.event.value.intent.intentName}. Transitions pointant vers un routage d'état System.Intent vers l'état de flux de fin pour la mise en correspondance d'intention.
Etats System.List et System.Text Réponse commune > Etats Résoudre les entités
Etats System.Output Etats de réponse communs
Etats System.ConditionEquals et System.ConditionExists Changer d'état
Propriétés de composant :
  • Propriété nlpResultVariable dans System.CommonResponse et System.ResolveEntities
  • cancelPolicy dans System.ResolveEntities
  • autoNumberPostbackActions
  • translate
  • values dans le composant System.Switch
  • insightsIncludes
  • insightsEndConversation
Ces propriétés sont enlevées. La valeur par défaut de cancelPolicy dans Résoudre les entités est désormais immédiate
Expressions FreeMarker utilisées dans OBotML, propriétés d'entité et propriétés d'élément de conteneur :
  • system.errorState
  • system.errorAction
  • system.actualState
  • system.expectedState
  • system.requestedState
  • system.errorState
  • rb
Expressions équivalentes dans Visual Flow Designer
  • skill.system.event.value.dialogError.errorState
  • skill.system.event.value.dialogError.errorMessage
  • skill.system.event.value.outOfOrderMessage.outOfOrderState
  • skill.system.event.value.outOfOrderMessage.currentState
  • skill.system.event.value.authorizeUser.requestedState
  • skill.system.event.value.outOfOrderMessage.errorState
  • skill.system.rb
Transition error system.dialogError action de transition
Actions de transition attachmentReceived et locationReceived Enlevé
Transitions à l'aide d'expressions FreeMarker (lorsque l'expression FreeMarker peut être résolue vers un état réel). Changer d'état
transitions return Etat du flux migré vers la fin
Transition NONE dans System.Switch Transition next.
Noms des composants personnalisés Le nom du composant personnalisé est précédé du nom du composant personnalisé. Les deux noms sont séparés par le signe deux-points.
iteratorExpression La propriété iteratorExpression est ajoutée aux métadonnées lorsqu'un élément iteratorVariable est utilisé.
Propriété agentActions de System.AgentInitiation Les listes de noms d'action séparées par des virgules sont converties en tableaux avec des propriétés d'action, de libellé et de description.