La sezione Responses permette di arricchire e gestire all’interno di Tellya le risposte agli intenti presenti all’interno del motore di NLU.
La tabella mostra tutti gli intenti per cui è stata configurata almeno una risposta all’interno della piattaforma Tellya e, in corrispondenza della colonna “Response variant”, il numero di risposte configurate per quell’intento e uno o più badge che simboleggiano le tipologie di risposte definite per l’intento. Esistono tre tipologie di risposte, rappresentate da una lettera:
- Standard response (S)
- Parametric response (P)
- Dynamic response (D)
Posizionando il mouse sul badge viene mostrato il numero di risposte di quel tipo configurate per l’intento.
Ogni risposta può essere, alternativamente, “Standard” oppure “Parametric”, mentre ogni risposta “Parametric” o “Standard” può essere contemporaneamente anche “Dynamic”, per questo motivo la somma delle singole tipologie di risposte per un intento può superare il totale indicato all’interno della colonna.
Configurazione di una risposta “Standard”
La configurazione di ogni risposta, indipendentemente dalla tipologia, parte dalla creazione di una nuova risposta tramite il bottone “Add response”, ma è importante notare come ogni risposta deve essere associata ad un intento precedentemente inserito all’interno del motore di NLU.
Selezionando quindi il bottone “Add response” si accede alla configurazione di una nuova risposta da associare ad un intento, selezionato tramite la lista che compare digitandone il nome in corrispondenza dell’input “Intent name”.
Per configurare una riposta “Standard” è sufficiente definire il Response type, le tipologie d risposte da fornire (e il loro contenuto) ed eventuali contesti in output.
Response type
Una volta che il motore di NLU ha identificato il match con un intento, la piattaforma Tellya può fornire una risposta testuale o grafica oppure invocare un altro intento.
Selezionando l’opzione “Response” è necessario configurare la risposta da fornire all’utente. Essa può essere composta da una o più parti testuali e/o elementi grafici come caroselli, liste o bottoni.
Per aggiungere una nuova risposta selezionare il bottone “Add response”, scegliere la tipologia di risposta desiderata e configurarne i campi richiesti.
In alternativa, se si desidera invece invocare un evento, è necessario selezionare l’opzione “Event” e specificare il nome dell’evento da richiamare.
Context
Se come “Response type” viene selezionato “Response” è possibile configurare uno o più contesti di output da iniettare all’interno della sessione conversazionale quando viene riconosciuto l’intento. Per ognuno di essi è necessario specificarne il nome e la durata (“lifespan”).
Se invece è stato selezionato “Event” come “Response type” è possibile definire uno o più contesti di input da innescare prima di invocare l’evento specificato.
Una volta configurata la risposta è possibile salvarla tramite il bottone “Save” posto in alto a destra, in corrispondenza del nome dell’intento.
Configurazione di una risposta “Parametric”
Le risposte “Parametric” permettono una gestione più efficiente delle risposte relative agli intenti presenti all’interno del motore di NLU, consentendo di fornire, a fronte del medesimo intento innescato, risposte differenti a seconda delle entità estratte dalla conversazione.
Per definire una risposta come “Parametric” è necessario creare una risposta “Standard” ma selezionare l’opzione “Parametric response” posta sotto il nome dell’intento. Tale operazione farà apparire la sezione “Parameters”, dedicata alla configurazione di questa tipologia di risposte.
Parameters
Per ogni intento è possibile definire tre parametri sulla base dei quali fornire una specifica risposta all’utente finale. Per ciascun parametro è necessario specificare:
- Parameter Name: nome del parametro così come indicato all’interno dell’intento creato nel motore di NLU
- Parameter Value: uno dei valori che il parametro può assumere e sulla base del quale si vuole fornire una risposta specifica
Opzionalmente è possibile estrarre ogni parametro da un contesto specifico: a tale scopo è necessario selezionare l’opzione “Get from context” ed indicare il nome del contesto.
Ogni volta che viene innescato un intento, se la sua risposta è definita all’interno della piattaforma Tellya, vengono controllati i nomi e i valori dei parametri estratti o presenti all’interno dei contesti, se coincidono con quelli defininti in una delle “Parametric response” allora verrà fornita all’utente tale risposta.
É quindi necessario creare e configurare una risposta parametrica per un intento per ogni combinazione di entità e valori che si desidera gestire.
Configurazione di una risposta “Dynamic”
In determinate situazioni non è possibile prevedere a priori il numero di elementi in cui verrà suddivisa una risposta fornita dall’agente. Questa situazione si verifica solitamente quando si configura all’interno della sezione di Process Flows una chiamata ad un servizio che restituisce un risultato che si desidera fornire all’utente, ad esempio sotto forma di lista o di carosello.
Il numero e il contenuto dei singoli elementi di tali tipologie di risposte varia quindi a seconda del risultato restituito dal servizio invocato e dalla sua risposta e quindi la risposta all’intento non può essere configurato in maniera statica.
Spesso il risultato contiene una lista di elementi da visualizzare o da fornire all’utente finale e risulta quindi necessario recuperare i singoli elementi iterando tale lista.
Per poter utilizzare il risultato di una chiamata a servizio è necessario configurare una risposta “Standard”, creando una o più tipologia di risposte (Text response, Cards Carousel, List…), contrassegnare tali risposte (o alcune di esse) come “Dynamic” ed utilizzare una sintassi specifica per configurare tale risposta:
- Tramite il bottone “Add response”, scegliere la tipologia di risposta desiderata
- Selezionare il menu opzioni (
) posto in alto a destra nel riquadro della risposta - Selezionare l’opzione “Set as dynamic response”
- Utilizzare la “dot notation” per selezionare il campo, all’interno della risposta in formato JSON restituita dal servizio, che si desidera utilizzare, racchiudendo tale percorso tra due parentesi graffe (es. {{percorso}}).
- Se il valore che si intende recuperare è collocato all’interno di una lista di elementi e si desidera restituire lo stesso campo contenuto in tutti gli elementi è necessario contrassegnare la lista con il simbolo “[%]”.
Ad esempio, ipotizzando che il servizio invocato restituisca un oggetto JSON così composto e che si desideri restituire agli utenti gli elementi in esso contenuto tramite una risposta in formato “lista”:
| JSON response |
|---|
|
Sarà possibile configurare uno o più campi della lista specificando il percorso del parametro che si desira utilizzare, indicando con il simbolo “[%]” la lista che contiene gli elementi:
Tale sintassi permette di recuperare il valore del campo percorso che si trova navigando il percorso data e di creare n elementi che facciano uso di tale valore, dove n è il numero di elementi presenti all’interno della lista “data”, indicata con il simbolo “[%]” (in questo esempio la lista contiene tre elementi e verranno quindi creati tre record all’interno di una singola lista).
Per recuperare invece elementi presenti in cache, parametri o contesti è possibile utilizzare delle notazioni dedicate:
- Context → ${context.percorso}
- Parameter key → ${{percorso}}
- Cache → $[percorso]
Risposta “Dynamic” da cache
Grazie alla Dot notation è possibile utilizzare i parametri salvati in cache in una conversazione.
E’ possibile salvare i parametri tramite il connettore Data Transfert in cache con l’opzione “Save in cache”.
Utilizzando la notazione $[nome_parametro] è possibile recuperare i dati salvati, sia in forma singola che l’intero elenco (array), inserendo all’interno delle [ ] il nome della chiave legata al parametro in cache.

Paginazione risposte “Dynamic”
Quando si utilizzano le risposte di tipo “List” del canale “Tellya” è possibile suddividere i risultati in modo che vengano mostrati solo parte dei risultati, lasciando all’utente la possibilità di richiederne ulteriori.
Tale gestione “paginata” di una lista di risultati può rivelarsi utile soprattutto quando la lista viene generata tramite una “dynamic response”, sulla base dei risultati restituiti da servizi esterni, caso in cui si potrebbe generare un numero elevato di risultati.
Per configurare tale meccanismo di suddivisione è necessario selezionare l’opzione “Result pagination” e compilare le relative opzioni:
- Page size: che indica il numero di elementi da mostrare ad ogni richiesta
- Next label value: il testo da visualizzare all’interno del pulsante per richiamare i successivi elementi della lista.
Configurazione di una risposta randomica
Per ogni risposta di tipo testuale, indipendentemente dal canale e dalla tipologia di risposta testuale (“Standard”, “Parametric” o “Dynamic”), è possibile definire più varianti per la medesima risposta. Ogni volta che viene innescato l’intento o l’elemento dove sono configurate molteplici varianti di risposta testuale, Tellya ne restituirà una scegliendo casualmente tra quelle disponibili.
Per definire nuove varianti di risposta, selezionare il bottone “+ Add dialog option” e specificare il testo della risposta.

Nel caso in cui, all’interno di una o più alternative di risposta venga richiamato specificati dei parametri (utilizzando la sintassi ${{nomeParametro}}), sono previsti i seguenti comportamenti:
- Se il parametro richiamato non è effettivamente presente nella sessione conversazionale (e quindi non può essere sostituito nella risposta): Tellya restituirà una variante di risposta che non prevede un parametro al suo interno. Se non è presente nessuna variante di risposta che soddisfa tale caratteristica, Tellya restituirà una risposta scelta casualmente, senza sostituire il parametro.
- Se il parametro richiamato è presente nella sezione conversazionale: Tellya restituirà una risposta scelta casualmente tra tutte quelle previste (indipendentemente dalla presenza o meno del parametro al loro interno).
Eliminare rapidamente le risposte associate ad un intento o elemento
Per eliminare rapidamente tutte le varianti di risposte per tipologia (“Standard”, “Parametric”, “Dynamic”), lingua e canale associate ad un intento (nel caso di Dialoflow CX) o un elemento (nel caso di Dialogflow CX) è possibile selezionare il menu posto accanto al pulsante “Save” nella sezione di configurazione di una risposta, e quindi l’opzione “Delete responses”.