Migrer en mode 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 de procéder à 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. Remplacer le contenu de questions/réponses par des intentions de réponse.
Remarque

Si la définition OBotML comporte 50 états ou plus, la migration continue, mais aucun flux d'intention n'est rempli avec des états. Elle contiendra uniquement les variables de niveau flux.
Pour localiser les problèmes dans la définition OBotML, validez d'abord votre brique, puis recherchez dans la fenêtre Migrer les résultats les 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. qui décrivent la façon dont les états avec des propriétés ou des composants en phase d'abandon, tels que System.ConditionEquals, System.ConditionExists, System.List, System.Text et System.Intent seront interpolés dans Visual Flow Designer.

Que se passe-t-il lorsque vous migrez vers une brique Visual Flow Designer ?

Une migration réussie génère une nouvelle brique. Par défaut, sa version est notée comme Version 1.0–migrated dans la mosaïque. (Vous pouvez modifier la valeur de la version de brique dans la boîte de dialogue Migration).
Image d'une mosaïque de brique gérée par un 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 des 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, le routage 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}. Les transitions qui pointent vers un routage d'état System.Intent vers l'état Fin du flux pour la mise en correspondance d'intention.
Etats System.List et System.Text Common Response > Résoudre les états des 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 le concepteur de flux visuel
  • 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 en état réel). Changer d'état
transitions return Migration vers l'état de flux de fin
Transition NONE dans System.Switch Transition next.
Noms de composant 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'une valeur iteratorVariable est utilisée.
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.