Fulfillment

Per il turno di conversazione di un agente, l'agente deve rispondere all'utente finale con una risposta a una domanda, una query per informazioni o la chiusura della sessione. L'agente potrebbe anche dover contattare il tuo servizio per generare risposte dinamiche o intraprendere azioni per una svolta. Per eseguire tutte queste operazioni viene utilizzato il servizio di evasione degli ordini.

Un adempimento può contenere uno dei seguenti elementi:

  • Messaggi di risposta statici.
  • Chiamate webhook per risposte dinamiche e/o azioni.
  • Preimpostazioni dei parametri per impostare o ignorare i valori dei parametri.

Durante il turno di un agente, è possibile (e a volte auspicabile) chiamare più adempimenti, ciascuno dei quali può generare un messaggio di risposta. Gli agenti conversazionali (Dialogflow CX) mantengono queste risposte in una coda delle risposte. Una volta terminato il turno dell'agente, Gli agenti conversazionali (Dialogflow CX) inviano le risposte ordinate all'utente finale.

Casi d'uso di evasione degli ordini

Il completamento viene utilizzato ovunque sia necessario un messaggio di risposta:

Per ognuno di questi casi d'uso, nella console si aprirà un riquadro di modifica dell'evasione degli ordini.

Screenshot dell'evasione degli ordini

Messaggi di risposta statici (opzioni di dialogo)

I messaggi di risposta statici sono risposte dell'agente che definisci in fase di progettazione. Devi definirli quando crei il fulfillment. Durante l'esecuzione, queste risposte vengono aggiunte alla coda di risposta.

Esistono diversi tipi di messaggi di risposta, descritti nelle sottosezioni di seguito. Quando utilizzi la console, un riquadro di adempimento contiene una scheda iniziale di messaggio di risposta di testo, ma puoi fare clic su Aggiungi opzione di dialogo per aggiungere altre schede per altri tipi di messaggi di risposta.

Testo

I messaggi di risposta di testo inviano una finestra di dialogo di testo all'utente finale. Se le chiamate API per l'intent o le chiamate di integrazione usano la sintesi vocale, questo testo verrà utilizzato per generare contenuti audio. In questo caso, il testo fornito può facoltativamente utilizzare il parametro Speech Synthesis Markup Language (SSML).

Puoi definire più schede di risposta di testo e più risposte di testo all'interno di ogni scheda. Se definisci più schede, sono concatenati per un'unica risposta in fase di runtime. Se definisci più risposte all'interno di una scheda, uno dei messaggi della scheda viene scelto in modo casuale in fase di esecuzione.

Questi messaggi possono contenere riferimenti ai parametri e funzioni di sistema incorporate.

Payload personalizzato

Alcune integrazioni Supporta una risposta di payload personalizzata per gestire risposte dettagliate. Questi payload personalizzati vengono forniti in formato JSON definito nella documentazione dell'integrazione. Ad esempio, vedi la sezione Formato payload personalizzato di Dialogflow CX Messenger.

Puoi includere riferimenti ai parametri nel tuo payload JSON personalizzato. Devono essere trattati come valori di stringa JSON, quindi racchiudili tra virgolette doppie. Ad esempio:

{
  "someField": "$session.params.date"
}

Puoi anche inviare un payload personalizzato alle integrazioni che sviluppi. Non verrà elaborato dagli agenti conversazionali (Dialogflow CX), quindi dovrai gestirlo nella tua logica aziendale.

Vedi anche i modelli di payload personalizzati di seguito.

Trasferimento operatore

Questa risposta indica all'autore della chiamata dell'API detect intent che la conversazione deve essere trasferita a un agente umano. Gli agenti conversazionali (Dialogflow CX) utilizzano questo indicatore solo per identificare le conversazioni che vengono affidati a scopi di misurazione, e non altera in alcun modo lo stato della sessione. Il sistema o l'integrazione può utilizzare questo indicatore per intraprendere le azioni necessarie per trasferire la conversazione. Gli agenti conversazionali (Dialogflow CX) non impongono alcuna struttura a questi dati, quindi puoi scegliere qualsiasi struttura adatta al tuo sistema.

Metadati relativi alla riuscita della conversazione

Questa risposta indica all'autore della chiamata dell'API detect intent che la conversazione con l'agente di agenti conversazionali (Dialogflow CX) è andata a buon fine. Gli agenti conversazionali (Dialogflow CX) utilizzano questo indicatore solo per identificare le conversazioni andate a buon fine a fini di misurazione e non alterano in alcun modo lo stato della sessione. Il tuo sistema o la tua integrazione può utilizzare questo indicatore per intraprendere le azioni necessarie. Gli agenti conversazionali (Dialogflow CX) non impongono alcuna struttura a questi dati, quindi puoi scegliere la struttura più adatta al tuo sistema.

Riprodurre contenuti audio preregistrati

Questa risposta riproduce un file audio per le integrazioni che supportano questa funzionalità.

I requisiti per i formati dei file audio possono variare in base alle integrazioni. Ad esempio, consulta i requisiti per Dialogflow CX Phone Gateway.

Per le integrazioni di telefonia dei partner, l'URL del file audio deve essere accessibile al partner. Un URL disponibile pubblicamente, ad esempio un file pubblico in Cloud Storage, è sempre accessibile dal partner. Il partner potrebbe anche fornire accesso limitato ai file audio. Consulta la documentazione dei partner per ulteriori dettagli.

Testo audio di output

Questa risposta è simile alla risposta text, ma è applicabile solo alla sintesi vocale. Se il tuo agente può gestire sia le sessioni di testo che quelle vocali, puoi utilizzare risposte univoche di testo e testo audio in uscita per creare un'esperienza utente diversa per il testo rispetto alla voce. Se per una sessione vocale viene fornito il testo audio di output, le risposte in testo normale vengono ignorate.

Se il tuo agente gestisce sia le sessioni di testo sia quelle vocali e vuoi utilizzare gli stessi messaggi di risposta, usa le risposte di testo sia per le sessioni di testo sia per quelle vocali.

Il testo audio di output viene concatenato in modo simile alle risposte di testo. Se le risposte testuali di output sono una combinazione di testo e SSML, il risultato concatenato viene trattato come SSML. Idealmente, il designer dell'agente deve utilizzare in modo coerente il testo o l'SSML.

Risposta condizionale

Questo tipo di risposta viene utilizzato per le risposte condizionali. Il formato generale è:

if [condition]
  [response]
elif [condition]
  [response]
elif [condition]
  [response]
else
  [response]
endif

dove:

  • [condition] è lo stesso formato utilizzato per condizioni del percorso
  • [response] è una risposta di testo
  • I blocchi elif e else sono facoltativi

Ad esempio:

if $session.params.user-age >= 21
  Ok, you may enter.
else
  Sorry, you cannot enter.
endif

Sia [condition] sia [response] possono usare la modalità in linea funzioni di sistema per generare valori dinamici durante le conversazioni. Per ulteriori informazioni, controlla i riferimenti alle funzioni di sistema e alle condizioni del percorso. La Il problema [condition] viene risolto in base allo stato della sessione all'inizio del fulfillment. Se [response] si basa sullo stato della sessione, viene risolto in base allo stato della sessione aggiornato al termine dell'evasione dell'ordine.

Per gli agenti multilingue, [condition] è comune a tutte le lingue, mentre [response] è specifico per la lingua. Quando modifichi [condition] per una lingua nella console, questa parte viene aggiornata in tutte le lingue dell'agente e, poiché diventa una nuova condizione, [response] viene cancellato per tutte le lingue diverse da quella selezionata quando hai aggiornato [condition].

Trasferimento di chiamate di telefonia

Per alcune integrazioni di telefonia, puoi specificare un numero di telefono statunitense per il trasferimento delle chiamate. In fase di runtime, quando l'agente virtuale degli agenti conversazionali (Dialogflow CX) chiama un fulfillment con trasferimento di chiamata, la chiamata viene trasferita al numero specificato e la gestione degli agenti virtuali è sospesa.

Messaggi di risposta specifici per il canale

Quando definisci il fulfillment, puoi creare messaggi di risposta specifici per il canale, per creare risposte mirate per chat di testo, chiamate vocali, SMS integrazioni specifiche che supportano i canali e così via. I messaggi di risposta non specifici di un canale sono chiamati messaggi di risposta predefiniti.

In fase di runtime, Gli agenti conversazionali (Dialogflow CX) selezioneranno il messaggio di risposta predefinito, o un messaggio di risposta specifico per il canale Quando una richiesta di rilevamento di intent specifica un canale. Come best practice, devi definire i messaggi di risposta predefiniti, anche se utilizzi messaggi di risposta specifici per canale. I messaggi di risposta predefiniti possono fungere da alternativa quando il sistema non riesce a fornire un canale valido.

Il nome di un canale è un campo personalizzato che puoi impostare con qualsiasi testo. Se utilizzi direttamente l'API Conversational Agents (Dialogflow CX) per le chiamate di runtime, puoi utilizzare il nome del canale che preferisci. Se utilizzi un'integrazione esistente, devi utilizzare i nomi dei canali riconosciuti dall'integrazione.

Impostare messaggi di risposta specifici per il canale in fase di progettazione

Per fornire messaggi di risposta specifici per il canale per l'evasione quando utilizzi la console:

  • Fai clic su Aggiungi canale dopo aver aggiunto i messaggi di risposta predefiniti. L'interfaccia utente consente di aggiungere messaggi di risposta specifici per il canale. Fai di nuovo clic su Aggiungi canale per aggiungere un altro canale.

Per fornire messaggi di risposta specifici per il canale per l'evasione quando utilizzi l'API:

  • Imposta il campo Fulfillment.messages[i].channel sul canale desiderato per ogni messaggio di risposta. Se questo campo non è impostato, la risposta è un messaggio di risposta predefinito.

Utilizzo di messaggi di risposta specifici del canale in fase di esecuzione

Per ricevere un messaggio di risposta specifico per il canale, il canale deve essere specificato nel messaggio di richiesta di rilevamento dell'intento. Consulta il campo queryParams.channel nel metodo detectIntent del tipo Sessions.

Seleziona un protocollo e una versione per il riferimento sessione:

Protocollo V3 V3beta1
REST Risorsa di sessione Risorsa sessione
RPC Interfaccia di sessione Interfaccia di sessione
C++ SessionsClient Non disponibile
C# SessionsClient Non disponibile
Vai SessionsClient Non disponibile
Java SessionsClient SessionsClient
Node.js SessionsClient SessionsClient
PHP Non disponibile Non disponibile
Python SessionsClient SessionsClient
Ruby Non disponibile Non disponibile

Se in una richiesta non è definito alcun canale, o nessun canale corrispondente trovato il messaggio di risposta predefinito verrà restituito dagli agenti conversazionali (Dialogflow CX).

Modelli di payload personalizzati

Se utilizzi spesso payload personalizzati, dovresti utilizzare i modelli di payload personalizzati. I payload personalizzati a volte sono grandi e complessi, quindi l'utilizzo di modelli può contribuire a semplificare la procedura di creazione dell'agente.

Puoi fornire questi modelli nelle impostazioni dell'agente che li rende disponibili per la selezione ogni volta che crei un fulfillment per l'agente.

Ad esempio, il payload JSON per i pulsanti "Sì" e "No" può essere definito come modelli di payload personalizzati. Quando crei un'evasione che richiede questi pulsanti, basta selezionare il modello al momento della creazione.

Quando selezioni un modello per un payload personalizzato di fulfillment, i contenuti del modello vengono inseriti nel payload. Puoi quindi modificare il payload in base alle tue esigenze.

Se modifichi un modello, la modifica non si propaga automaticamente a tutti i payload di evasione a cui viene fatto riferimento.

Per creare un modello di payload personalizzato, consulta impostazioni generali degli agenti.

Per selezionare un modello di payload personalizzato durante la creazione del fulfillment, Fai clic su Seleziona modello quando crei un payload personalizzato di fulfillment.

Chiamate webhook

Quando viene chiamata un'evasione e questa ha un webhook, l'agente invia una richiesta al tuo webhook. Il webhook può eseguire qualsiasi azione necessaria all'interno del tuo servizio, fornire un messaggio di risposta dinamica, i valori dei parametri, e modificare la pagina corrente.

Di seguito vengono descritte le impostazioni del webhook per il fulfillment:

Termine Definizione
Attivare l'webhook In questo modo viene attivato il webhook per il fulfillment.
Webhook Seleziona la risorsa webhook.
Tag Il tag di testo che fornisci qui verrà inserito nel campo WebhookRequest.fulfillmentInfo.tag della richiesta di webhook inviata al tuo servizio webhook. Può essere utilizzato per controllare il comportamento del webhook in un modo specifico per il fulfillment.
Restituire una risposta parziale Consente di annullare la riproduzione di una risposta parziale. Per maggiori dettagli, vedi le impostazioni avanzate della voce.

Predefiniti dei parametri

Puoi utilizzare un completamento per fornire preimpostazioni che impostano o eseguono l'override valori parametro correnti. Questi preset verranno applicati prima di risolvere i messaggi di risposta statici o di chiamare un webhook.

Puoi anche utilizzare funzioni di sistema per preimpostare il parametro su un valore generato dinamicamente.

Ecco alcuni esempi:

  • Impostazione del parametro now sull'ora corrente:

    Parametro Valore
    ora $sys.func.NOW()
  • Aumento di un parametro esistente counter di 1:

    Parametro Valore
    contatore $sys.func.ADD($session.params.counter, 1)
  • Impostare un parametro new-cost sul valore del parametro other-cost, mantenendo il valore completo dell'oggetto composito:

    Parametro Valore
    new-cost $sys.func.IDENTITY($session.params.other-cost)

Impostazioni avanzate per il parlato

Queste impostazioni avanzate di sintesi vocale possono, facoltativamente, sostituire le stesse impostazioni di sintesi vocale della pagina, le impostazioni di sintesi vocale del flusso e le impostazioni di sintesi vocale dell'agente.

Coda delle risposte

Durante il turno di un agente, è possibile (e talvolta auspicabile) chiamare più completamenti ognuno dei quali può generare un messaggio di risposta. Gli agenti conversazionali (Dialogflow CX) mantengono queste risposte in una coda delle risposte.

Risposta parziale per l'API di streaming

Per impostazione predefinita, gli agenti di conversazione (Dialogflow CX) inviano le risposte ordinate all'utente finale solo al termine del turno dell'agente. Puoi anche attivare l'opzione Restituisci risposta parziale nel completamento per restituire le risposte attualmente in coda come risposta parziale quando utilizzi le API di streaming. Per ulteriori dettagli, consulta la sezione Ciclo di vita di una pagina.

Ad esempio, se è probabile che il tuo webhook venga eseguito per molto tempo, puoi aggiungere una risposta statica nell'elaborazione e attivare la risposta parziale. Ciò rende Gli agenti conversazionali (Dialogflow CX) svuotano la coda di risposta e inviano tutti i messaggi parziali prima di chiamare il webhook.

Al momento la risposta parziale non è supportata per quanto segue, ma lo sarà in futuro:

Per testare questa funzionalità nel simulatore, devi attivare la risposta parziale.

Screenshot della risposta parziale del simulatore

Nell'esempio seguente, tieni presente che il webhook impiega 5 secondi per completa e non abiliti la risposta parziale. Il turno di conversazione dell'agente di Dialogflow CX non termina finché il webhook non è completato. Durante questo turno di 5 secondi, le risposte vengono messe in coda in attesa del webhook e non vengono restituite all'utente finale finché il turno non è completato. Ciò comporta un'esperienza utente negativa.

Senza risposta parziale.

Se abiliti la risposta parziale nel primo fulfillment, gli agenti conversazionali (Dialogflow CX) restituisce il valore rapidamente il primo messaggio di evasione e chiama il webhook. Dopo che il webhook è completata, gli agenti conversazionali (Dialogflow CX) restituisce la risposta finale. L'esperienza dell'utente finale è è migliorato in questo scenario, perché viene richiesto un breve periodo di attesa. Inoltre, la chiamata al webhook viene eseguita contemporaneamente all'invio di una risposta all'utente finale.

Con risposta parziale.

Speech Synthesis Markup Language (SSML)

Puoi utilizzare il linguaggio SSML (Speech Synthesis Markup Language) nei campi di adempimento del testo o dell'output audio. In questo modo puoi personalizzare la risposta audio fornendo dettagli sulle pause e sulla formattazione audio per acronimi, date, orari, abbreviazioni o testo da censurare.

Per i dettagli sulla sintassi, consulta Documentazione SSML per sintesi vocale.