Componenti variabili
Questi sono i componenti disponibili nella categoria Variabile dell'editor del flusso della finestra di dialogo basato su YAML.
System.SetVariable
Il componente System.SetVariable
imposta il valore di una variabile predefinita.
Proprietà | descrizione; | Richiesto? |
---|---|---|
variable |
Il nome della variabile definita come una delle proprietà context . Può essere una variabile definita per un'entità o un valore predeterminato, ad esempio una stringa.
|
Sì |
value |
Il valore di destinazione, che è possibile definire come valore o come espressione che fa riferimento a un'altra variabile. | Sì |
È inoltre possibile impostare un valore predeterminato per una variabile utilizzando un'espressione FreeMarker Apache o, come mostrato nello snippet seguente, un valore letterale. Puoi trovare maggiori informazioni su FreeMarker qui.
setOAuthRedirectURL:
component: "System.SetVariable"
properties:
variable: "redirectURL"
value: "https://thatcompany.io/connectors/v2/tenants/5c824-45fd-b6a2-8ca/listeners/facebook/channels/78B5-BD58-8AF6-F54B141/redirect"
transitions:
...
Vedere System.OAuthAccountLink.
Nota
La struttura della risposta di Intent Engine è stata modificata con la release 21.12. Prima della release 21.12, il payload dei payload
La struttura della risposta di Intent Engine è stata modificata con la release 21.12. Prima della release 21.12, il payload dei payload
FullEntityMatches
e entityMatches
di livello superiore nell'oggetto nlpResult
includeva entità a cui gli articoli facevano riferimento nelle entità sacchetto composto, ma non erano associati direttamente all'intento. A partire dalla Release 21.12, i payload degli oggetti FullEntityMatches
e EntityMatches
non includono più queste entità (possono invece essere trovati all'interno degli oggetti articolo bag composito di livello inferiore). Di conseguenza, gli skill aggiornati alla versione 21.12 che utilizzano System.SetVariable
per impostare le variabili utilizzando i risultati contenuti nell'oggetto nlpResult
utilizzando una sintassi come iResult.value.entityMatches
potrebbero non riuscire poiché i valori entità non sono più presenti. Per garantire il funzionamento continuo delle competenze e seguire le migliori prassi, fare riferimento ai valori nel sacchetto composito (<variable_name>.value.<item_name>
) e utilizzare i componenti System.CommonResponse
o SystemResolveEntities
anziché il componente System.SetVariable
.
System.ResetVariables
Questo componente reimposta i valori delle variabili su null.
Questo componente non richiede transizioni, ma è possibile, ad esempio, impostare una transizione a uno stato System.Intent per consentire agli utenti di immettere nuovi valori.
Proprietà | descrizione; | Richiesto? |
---|---|---|
variableList |
Elenco separato da virgole di variabili da reimpostare.
Utilizzare la notazione punto per reimpostare il valore di un elemento sacchetto specifico nel sacchetto composito, che viene dichiarato una variabile di contesto (
expense nell'esempio seguente).
|
Sì |
System.CopyVariables
Copia i valori delle variabili.
Definire questo componente utilizzando le proprietà
from
e to
come nel seguente snippet, in cui il valore viene copiato in un contesto utente:setupUserContext:
component: "System.CopyVariables"
properties:
from: "lastQuestion,lastResponse"
to: "user.lastQuestion,user.lastResponse"
Questo componente richiede entrambe queste proprietà, ma non è necessario eseguire il mirroring delle definizioni. Sebbene sia possibile definire sia from
che to
come elenchi di variabili, è possibile anche definire from
con una singola variabile e to
come elenco. Se si imposta un'ulteriore proprietà to
, eredita il valore della variabile della proprietà from
.
System.SetCustomMetrics
Utilizzare questo componente per valutare le proprie competenze per il report Metriche personalizzate. Ad esempio:
insights:
component: "System.SetCustomMetrics"
properties:
dimensions:
- name: "Pizza Size"
value: "${size}"
- name: "Pizza Type"
value: "${type}"
- name: "Crust Type"
value: "${crust}"
transitions:
next: "summarizeOrder"
Nota
È possibile impostare più dimensioni in un unico stato ed è possibile definire fino a sei dimensioni per skill.
È possibile impostare più dimensioni in un unico stato ed è possibile definire fino a sei dimensioni per skill.
Attributo | descrizione; |
---|---|
name |
Nome della dimensione (in massimo 50 caratteri) visualizzato nel report Metriche personalizzate. Utilizzare solo lettere, numeri e spazi. Non utilizzare caratteri speciali. |
value |
È possibile definire il valore della dimensione come espressione FreeMarker o stringa di testo.
|
Esempio: impostazione di una singola dimensione in più stati
Il seguente snippet illustra come creare una singola dimensione (
Agent Transfer
) da una serie di stati System.SetCustomMetrics
.
states:
intent:
component: "System.Intent"
properties:
variable: "iResult"
optionsPrompt: "Do you want to"
transitions:
actions:
OrderPizza: "startOrderPizza"
WelcomePizza: "startWelcome"
LiveChat: "setInsightsCustomMetrics3"
unresolvedIntent: "startUnresolved"
...
setInsightsCustomMetrics:
component: "System.SetCustomMetrics"
properties:
dimensions:
- name: "Pizza Size"
value: "${pizza.value.PizzaSize}"
- name: "Pizza Type"
value: "${pizza.value.PizzaTopping}"
- name: "Pizza Crust"
value: "${pizza.value.PizzaDough}"
- name: "Agent Transfer"
value: "No Agent Needed"
transitions:
next: "showPizzaOrder"
...
startUnresolved:
component: "System.Output"
properties:
text: "I didn't that get that. Let me connect you with support."
keepTurn: true
transitions:
next: "setInsightsCustomMetrics1"
### Transfer because of unresolved input ####
setInsightsCustomMetrics1:
component: "System.SetCustomMetrics"
properties:
dimensions:
- name: "Agent Transfer"
value: "Bad Input"
transitions:
next: "getAgent"
maxError:
component: "System.Output"
properties:
text: "OK, let's connect you with someone to help"
keepTurn: true
transitions:
next: "setInsightsCustomMetrics2"
### Transfer because of Max Error" ####
setInsightsCustomMetrics2:
component: "System.SetCustomMetrics"
properties:
dimensions:
- name: "Agent Transfer"
value: "Max Errors"
transitions:
next: "getAgent"
### Transfer because of direct request ####
setInsightsCustomMetrics3:
component: "System.SetCustomMetrics"
properties:
dimensions:
- name: "Agent Transfer"
value: "Agent Requested"
transitions:
next: "getAgent"
getAgent:
component: "System.AgentInitiation"
...
Ogni stato System.SetCustomMetrics
definisce una categoria diversa per la dimensione Trasferimento agente. Il report Metriche personalizzate registra i dati per queste metriche quando questi stati vengono inclusi in un flusso di esecuzione e, come illustrato dall'esempio precedente, vengono denominati nelle transizioni.
Stati metrica personalizzati per dimensione trasferimento agente | Valore | Utilizzare |
---|---|---|
setInsightsCustomMetrics |
Nessun agente necessario | Riflette il numero di conversazioni riuscite in cui gli ordini sono stati effettuati senza assistenza. |
setInsightsCustomMetrics1 |
Input errato | Riflette il numero di conversioni in cui l'input non risolto ha determinato il trasferimento degli utenti a un agente reale. |
setInsightsCustomMetrics2 |
Numero massimo di errori | Riflette il numero di conversazioni in cui gli utenti sono stati indirizzati agli agenti reali perché hanno raggiunto la m |
setInsightsCustomMetrics3 |
Agente richiesto | Riflette il numero di conversazioni in cui gli utenti hanno richiesto un agente reale. |
Esempio: tracciamento delle metriche sul feedback utente
Per tenere traccia delle metriche di feedback, aggiungere gli stati
System.SetCustomMetrics
corrispondenti agli stati di transizione System.Feedback. Ad esempio:...
getUserFeedback:
component: "System.Feedback"
properties:
threshold: 2
maxRating: 5
enableTextFeedback: true
footerText:
transitions:
actions:
above: "PositiveFeedbackMetrics"
below: "NegativeFeedbackMetrics"
cancel: "CancelFeedbackMetrics"
PositiveFeedbackMetrics:
component: "System.SetCustomMetrics"
properties:
dimensions:
- name: "Feedback Type"
value: "Positive"
transitions:
next: "positiveFeedback"
positiveFeedback:
component: "System.Output"
properties:
text: "Thank you for the ${system.userFeedbackRating.value}-star rating."
transitions:
return: "done"
NegativeFeedbackMetrics:
component: "System.SetCustomMetrics"
properties:
dimensions:
- name: "Feedback Type"
value: "Negative"
transitions:
next: "negativeFeedback"
negativeFeedback:
component: "System.Output"
properties:
text: "Thank you for your feedback."
transitions:
return: "done"
CancelFeedbackMetrics:
component: "System.SetCustomMetrics"
properties:
dimensions:
- name: "Feedback Type"
value: "Canceled"
transitions:
next: "cancelFeedback"
cancelFeedback:
component: "System.Output"
properties:
text: "Maybe next time."
transitions:
return: "done"