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
valueper 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).