Conversational logics

Le logiche che abilitano la costruzione di flussi conversazionali complessi e strutturati sono:

1. Contextual Awareness

La gestione dei contesti conversazionali, ovvero la possibilità di calibrare la risposta dell’agente in base alla storia e al contesto della conversazione stessa, è abilitata da alcune importanti features:

  1. memoria conversazionale su più livelli: ai dati acquisiti nel corso della conversazione è possibile assegnare uno scope diverso, ovvero una diversa permanenza in memoria. Ciò rende possibile differenziare tra informazioni strattemente contestuali (es. una data scelta dell’utente all’interno di un set di scelte proposte) e informazioni più o meno permanenti (es. dati anagrafici);
  2. differenziazione della risposta sulla base del’url di navigazione: oltre a una contestualità interna alla conversazione è importante anche la cura della contestualità esterna: la webchat di Heres ha sempre a disposizione il dato sulla pagina in cui avviene l’interazione, in base al quale è possibile differenziare la risposta dell’assistente.

2. Slotfilling and user input validation

L’acquisizione, la validazione e l’elaborazione dei dati acquisiti dall’utente è una delle main feature del prodotto Heres. Queste funzionalità sono tre:

  1. slotfill story: percorsi conversazionali specifici per l’acquisizione e la validazione di ogni tipologia di dato (es. date, documenti, indirizzi, orari), con gestione degli inserimenti errati e delle conversioni di formato;
  2. widget di facilitazione della selezione: selettori grafici pensati per un’agile selezione di vari tipi di dato (es. widget “calendario”);
  3. check real time sul formato: controllo sulla validità del formato durante la digitazione del dato, con alert in caso di formato non valido.

3. Website interaction and browsing automation

Gli agenti conversazionali di Heres sono pensati per interagire col sito in cui sono ospitati in un’ottica di complementarietà di funzioni. Queste features sono:

  1. Eventi: il chatbot può inviare eventi (tramite chiamata funzione) al sito che ospita la chat. A seconda dei dati passati in un evento, il sito innescherà determinati comportamenti concordati (es. push su una data url, evidenziare un campo, aprire un pop-up);
  2. Push navigation: il chatbot può guidare la navigazione dell’utente attraverso il sito, innescando il landing sulle url più appropriate in base all’esigenza espressa;
  3. Trigger e SendMessages : tramite la funzionalità trigger e l’API SendMessages è possibile innescare specifiche azioni del bot (messaggi o percorsi conversazionali) o del widget (apertura automatica della chat, messaggio di engage) a seconda dell’url di navigazione o di qualsiasi altro criterio custom.

4. Sensitive words’ detection

Grazie alla funzione Stopword è possibile eseguire un controllo sull’input inviato dall’utente prima ancora che questo venga processato dal motore di NLU. Ciò consente il controllo totale sulla gestione di parole particolarmente sensibili per un determinato contesto.

5. Input preprocessing

Prima di venir passati al motore di NLU tutti gli input vengono preprocessati. La fase di preprocessing consente di:

  1. eliminare espressioni poco significative o di contorno, onde ridurre il più possibile il rumore di fondo e consentire al motore di NLU di analizzare solo la parte significativa di una stringa;
  2. correggere errori frequenti di battitura o spelling.

6. Smart fallbacks

Una gestione intelligente delle mancate comprensioni è altrettanto importante che la gestione ottimale delle User Story. Gli strumenti funzionali al conseguimento di questo obiettivo sono:

  1. No intent custom: quando il motore di NLU restituisce come output una mancata comprensione (no match) o una comprensione con un grado insufficiente di confidence (match sotto soglia) è possibile procedere alla ricerca, nell’input dell’utente, di determinate parole chiave. Queste parole sono raggruppate in cluster, detti no intent, per ognuno dei quali è possibile impostare una gestione specifica, da innescarsi una volta che nella richiesta dell’utente, non compresa dal motore di NLU, sia presente una o più parole del cluster;
  2. stati della conversazione: a una conversazione in corso è sempre associato uno stato. Questo può essere:
    1. verde: l’ultima interazione è stata un match NLU o un’interazione in modalità wizard (navigazione guidata);
    2. giallo: l’ultima interazione è stata un no match NLU, che non seguiva ad altri no match NLU;
    3. rosso: l’ultima interazione è stata un no match NLU, che seguiva ad altri no match NLU.È possibile seguire l’aggiornamento degli stati in real time dalla sezione Live Chat della console del chatbot e ricevere notifiche per ogni no match;
  3. soglia sulle mancate comprensioni: è possibile impostare una soglia sui no match, raggiunta la quale viene innescato un comportamento di gestione particolare (es: apertura di un ticket, richiesta di human escalation).

7. Dynamic syntactic and lexical alternation

Un certo grado di variazione sintattico-lessicale in risposte tipicamente ricorrenti (es. saluti, ringraziamenti) è indispensabile per far percepire quel grado di imprevedibilità tipico della conversazione umana. Grazie all’uso Spyntax possiamo conseguire questo obiettivo introducendo nelle risposte del chatbot un certo grado di variabilità.