Espressioni per valori variabile
È possibile utilizzare le espressioni FreeMarker per i valori delle variabili nei flussi di finestre di dialogo.
Espressioni pratiche
Suggerimento
Il completamento automatico guida l'utente nella scrittura di queste (e altre) espressioni FreeMarker di Apache.Operazione | Espressione Freemarker | Tipo di risultato |
---|---|---|
Recupera il nome del flusso padre | ${system.parentFlow} |
Stringa |
Recupera payload evento | ${skill.system.event.value.EVENT_NAME} |
Oggetto JSON |
Accedi a risultato NLP | ${skill.system.nlpresult.value} |
Oggetto JSON |
Variabile di ambito skill di accesso | ${skill.VAR_NAME} |
|
Variabile portata di accesso | ${VAR_NAME} |
|
Parametro di input del flusso di accesso | ${INPUT_PARAM_NAME} |
|
Variabile di ambito utente di accesso | ${user.VAR_NAME} |
|
Variabile profilo di accesso-ambito | ${profile.VAR_NAME} |
|
Ottieni risposta intento risposta | ${skill.system.event.value.intent.answer} Nota: è possibile utilizzare anche |
|
Recupera nome intento |
|
Stringa |
Ottieni messaggio di errore | ${skill.system.event.value.dialogError.errorMessage} |
Stringa |
Accedi a voce bundle risorse | ${skill.system.rb.RB_ENTRY_NAME} |
Bundle delle risorse |
Accedere al valore di un parametro personalizzato | ${skill.system.config.CUSTOM_PARAMETER_NAME} |
Stringa |
Per ulteriori informazioni su FreeMarker nei componenti, vedere Sintassi del linguaggio dei modelli FreeMarker di Apache.
Sintassi del linguaggio del modello FreeMarker di Apache
${...}
. È possibile incorporare FTL nelle definizioni delle proprietà per vari componenti del flusso della finestra di dialogo.
È inoltre possibile definire le espressioni utilizzando la direttiva if (
<#if>...</#if>
).
Questa operazione... | ... Operazioni da eseguire |
---|---|
Leggere i valori dalle variabili. | Aggiungere la proprietà value utilizzando la notazione punto:
Ad esempio:
|
Legge i valori dalle variabili definite dalle entità complesse. | Utilizzare la notazione punto per aggiungere una proprietà aggiuntiva:
Ad esempio:
Se si utilizza un'espressione come ${MyMoney} in un componente System.Output in una competenza con un flusso di finestre di dialogo basato su YAML, verranno visualizzate tutte le proprietà dell'oggetto JSON della valuta di riferimento.
|
Restituisce il set di valori definito per un'entità elenco di valori. | Utilizzare la variabile type e enumValues built-in con la seguente sintassi:
|
Utilizzare i integrati per stringhe, array (sequenze), numeri e date. Vedere Apache FreeMarker Reference. | Seguire la proprietà value con un punto interrogativo (? ) e il nome dell'operazione:
|
Concatena le espressioni FTL. | Collegare le operazioni utilizzando un punto interrogativo (? ):
|
Valori entità di riferimento in skill multilingua
Quando si dispone di competenze multilingue, è necessario assicurarsi che il componente che risolve le entità abbia impostato Usa corrispondenze entità complete su true
. Ciò consente di scrivere i seguenti tipi di espressioni:
- Espressioni che fanno riferimento al valore dell'entità nella lingua della conversazione. È possibile utilizzare tali espressioni per eseguire operazioni quali la visualizzazione dei valori di entità agli utenti in pulsanti, messaggi di conferma e così via.
Per tali espressioni, aggiungere
value
per ottenere il valore nella lingua della conversazione. Ad esempio, se è stata definita una variabile di flusso della finestra di dialogo,pizza
, e si desidera fare riferimento al valore dell'entità PizzaSize in un prompt, utilizzare l'espressione seguente:pizza.value.PizzaSize.value
(anziché solopizza.value.PizzaSize
). - Espressioni che fanno riferimento al valore dell'entità nella lingua principale. Il valore della lingua principale funge da tipo di chiave per i valori corrispondenti in tutte le lingue dell'entità. È possibile fare riferimento a questo valore per scopi di business logic senza doversi preoccupare della lingua in cui si trova la conversazione.
Per queste espressioni, aggiungere
primaryLanguageValue
(ad esempiopizza.value.PizzaSize.primaryLanguageValue
).