Espressioni per valori variabile

È possibile utilizzare le espressioni FreeMarker per i valori delle variabili nei flussi di finestre di dialogo.

Espressioni pratiche

Di seguito sono riportate alcune espressioni comuni che è possibile utilizzare nei flussi.

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 ${skill.system.event.value.answerIntent.answer}.

 
Recupera nome intento

${skill.system.event.value.intent.intentName}

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 utilizzare Apache FreeMarker Template Language (FTL) per accedere ai valori delle variabili, mostrare o nascondere gli elementi di risposta, trovare parole chiave in un messaggio utente, stampare un elenco di valori o visualizzare gli array ordinati in base a un attributo dati specifico. La sintassi di base per queste espressioni di valori è ${...}. È possibile incorporare FTL nelle definizioni delle proprietà per vari componenti del flusso della finestra di dialogo.
Nota

È 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:
${VAR_NAME.value}
Ad esempio:
${MyEmail.value}
Legge i valori dalle variabili definite dalle entità complesse. Utilizzare la notazione punto per aggiungere una proprietà aggiuntiva:
${VAR_NAME.value.property}
Ad esempio:
${MyMoney.value.totalCurrency}
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:
${VAR_NAME.type.enumValues}
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:
${VAR_NAME.value?ftl_function}
  • operazioni stringa:
    ${VAR_NAME.value?lower_case}
  • operazioni array:
    ${VAR_NAME.value?size?number}
  • operazioni number:
    ${VAR_NAME.value?round}
  • operazioni di data e ora:
    ${VAR_NAME.value.date?long?number_to_date?string.short}
Concatena le espressioni FTL. Collegare le operazioni utilizzando un punto interrogativo (?):
${VAR_NAME.value?ftl_function1?ftl_function2}

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é solo pizza.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 esempio pizza.value.PizzaSize.primaryLanguageValue).