Migra a modalità finestra di dialogo visiva

Di seguito sono riportate le informazioni necessarie per eseguire la migrazione di uno skill da un flusso di dialogo creato con OBotML a uno skill di Visual Flow Designer.

Per avviare il processo di migrazione, fare clic su Esegui migrazione in Flow Designer nell'editor del flusso della finestra di dialogo.
Immagine del pulsante Migra a Designer flussi

Tuttavia, prima di eseguire questa operazione, potrebbe essere necessario apportare alcune modifiche alla competenza o alla definizione OBotML per assicurarsi che:
  • L'abilità è versione 21.12 o superiore
  • Non sono presenti transizioni che utilizzano FreeMarker per esprimere gli stati. Ad esempio, una transizione come equal: "${system.actualState}" impedirà la migrazione.
  • Non sono presenti stati System.QnA. Sostituisci contenuto domande e risposte con intenti risposta.
Nota

Se la definizione OBotML contiene 50 o più stati, la migrazione continuerà, ma non genererà un flusso di intenti popolato con stati. Contiene solo le variabili a livello di flusso.
Per individuare eventuali problemi all'interno della definizione OBotML, prima convalidare lo skill, quindi esaminare la finestra Migrazione risultati per individuare gli errori di convalida Immagine dell'icona di avvertenza. da correggere prima della migrazione, le avvertenze Immagine dell'icona di errore. e i messaggi informativi Immagine dell'icona della punta che descrivono come gli stati con proprietà o componenti non più validi, ad esempio System.ConditionEquals, System.ConditionExists, System.List, System.Text e System.Intent, verranno interpolati in Visual Flow Designer.

Cosa succede quando si esegue la migrazione a una competenza di Visual Flow Designer

Una migrazione di successo si traduce in una nuova abilità. Per impostazione predefinita, la versione viene indicata come Version 1.0–migrated nella casella. È possibile modificare il valore della versione dello skill nella finestra di dialogo Migrazione.
Immagine di una casella skill con versione di finestra di dialogo Flusso visivo

La nuova versione dello skill è accompagnata da un log di migrazione che documenta la conversione di proprietà e componenti non più validi.
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.
... 

Lo skill di Visual Flow Designer contiene sia un flusso principale che un singolo flusso di intenti. Tutti gli intenti sono mappati a questo flusso. All'interno di questo flusso, l'instradamento degli intenti viene eseguito utilizzando uno stato Switch in cui i nomi degli intenti sono stati trascritti come transizioni di azione. La logica di instradamento viene eseguita utilizzando ${skill.system.event.value.intent.intentName}.

Il test dell'iterazione di Visual Flow Designer del flusso può rivelare che la migrazione ha introdotto regressioni. Ad esempio, le modifiche alle definizioni di transizione possono avere segmenti disconnessi del flusso. È inoltre possibile che il singolo flusso creato dalla migrazione sia ingombrante. In questo caso, è possibile modulare la funzionalità copiando gli stati in un flusso separato.

Riepilogo migrazione

OBotML Artifact... ... Diventa il seguente in Visual Flow Designer
Intenti Gli eventi di intento e unresolvedIntent sono tutti mappati al flusso di intento singolo.
Variabili contesto Variabili a livello di flusso. Non viene eseguita la migrazione della variabile rb, ma viene utilizzata la variabile system.rb.
System.Intent stati Trascritto come stato Switch. Gli intenti vengono denominati transizioni di azione. Il routing viene determinato utilizzando ${skill.system.event.value.intent.intentName}. Le transizioni che puntano a un instradamento stato System.Intent allo stato Fine flusso per la corrispondenza degli intenti.
Stati System.List e System.Text Risposta comune > Stati Risolvi entità
System.Output stati Stati risposta comune
Stati System.ConditionEquals e System.ConditionExists Cambia stati
Proprietà componente:
  • Proprietà nlpResultVariable in System.CommonResponse e System.ResolveEntities
  • cancelPolicy in System.ResolveEntities
  • autoNumberPostbackActions
  • translate
  • values nel componente System.Switch
  • insightsIncludes
  • insightsEndConversation
Queste proprietà vengono rimosse. Il valore predefinito di cancelPolicy in Risolvi entità è immediato.
Espressioni FreeMarker utilizzate in OBotML, proprietà entità e proprietà elemento bag:
  • system.errorState
  • system.errorAction
  • system.actualState
  • system.expectedState
  • system.requestedState
  • system.errorState
  • rb
Espressioni equivalenti in 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
Transizione error Azione transizione system.dialogError
Azioni di transizione attachmentReceived e locationReceived rimosso
Esegue le transizioni utilizzando le espressioni FreeMarker (quando l'espressione FreeMarker può essere risolta in uno stato effettivo). Cambia stati
transizioni return Migrazione allo stato Fine flusso
Transizione NONE in System.Switch Transizione next.
nomi dei componenti personalizzati Il nome del componente personalizzato viene preceduto dal nome del componente personalizzato. I due nomi sono separati da due punti.
iteratorExpression La proprietà iteratorExpression viene aggiunta ai metadati quando si utilizza un iteratorVariable.
Proprietà agentActions di System.AgentInitiation Gli elenchi delimitati da virgole dei nomi di azione vengono convertiti in array con proprietà di azione, etichetta e descrizione.