Avvio di un flusso di conversazione verso un bot Amazon Lex V2 - Amazon Lex

Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.

Avvio di un flusso di conversazione verso un bot Amazon Lex V2

L'StartConversationoperazione viene utilizzata per avviare uno stream tra l'utente e il bot Amazon Lex V2 nell'applicazione. La POST richiesta dell'applicazione stabilisce una connessione tra l'applicazione e il bot Amazon Lex V2. Ciò consente all'applicazione e al bot di iniziare a scambiarsi informazioni tra loro tramite eventi.

L'StartConversationoperazione è supportata solo nei seguenti casi: SDKs

Il primo evento che l'applicazione deve inviare al bot Amazon Lex V2 è un ConfigurationEvent. Questo evento include informazioni come il formato del tipo di risposta. Di seguito sono riportati i parametri che è possibile utilizzare in un evento di configurazione:

  • responseContentType— Determina se il bot risponde all'input dell'utente con testo o voce.

  • sessionState— Informazioni relative alla sessione di streaming con il bot, come l'intento predeterminato o lo stato del dialogo.

  • welcomeMessages— Speciifica i messaggi di benvenuto che l'utente riceve all'inizio della conversazione con un bot. Questi messaggi vengono riprodotti prima che l'utente fornisca un input. Per attivare un messaggio di benvenuto, è inoltre necessario specificare i valori per i dialogAction parametri sessionState and.

  • disablePlayback— Determina se il bot deve attendere un segnale dal client prima di iniziare ad ascoltare l'input del chiamante. Per impostazione predefinita, la riproduzione è attivata, quindi il valore di questo campo è. false

  • requestAttributes— Fornisce informazioni aggiuntive per la richiesta.

Per informazioni su come specificare i valori per i parametri precedenti, vedere il tipo di ConfigurationEventdati dell'StartConversationoperazione.

Ogni stream tra un bot e l'applicazione può avere un solo evento di configurazione. Dopo che l'applicazione ha inviato un evento di configurazione, il bot può ricevere comunicazioni aggiuntive dall'applicazione.

Se hai specificato che il tuo utente utilizza l'audio per comunicare con il bot Amazon Lex V2, l'applicazione può inviare i seguenti eventi al bot durante quella conversazione:

  • AudioInputEvent— Contiene un blocco audio con una dimensione massima di 320 byte. L'applicazione deve utilizzare più eventi di input audio per inviare un messaggio dal server al bot. Ogni evento di input audio nello stream deve avere lo stesso formato audio.

  • DTMFInputEvent— Invia un DTMF input al bot. Ogni pressione di un DTMF tasto corrisponde a un singolo evento.

  • PlaybackCompletionEvent— Informa il server che una risposta proveniente dall'input dell'utente gli è stata riprodotta. È necessario utilizzare un evento di completamento della riproduzione se si invia una risposta audio all'utente. Se il tuo evento disablePlayback di configurazione lo ètrue, non puoi utilizzare questa funzione.

  • DisconnectionEvent— Informa il bot che l'utente si è disconnesso dalla conversazione.

Se hai specificato che l'utente utilizza il testo per comunicare con il bot, l'applicazione può inviare i seguenti eventi al bot durante quella conversazione:

  • TextInputEvent— Testo inviato dall'applicazione al bot. È possibile inserire fino a 512 caratteri in un evento di immissione di testo.

  • PlaybackCompletionEvent— Informa il server che è stata riprodotta una risposta dall'input dell'utente. È necessario utilizzare questo evento se si sta riproducendo l'audio per l'utente. Se il tuo evento disablePlayback di configurazione ètrue, non puoi usare questa funzione.

  • DisconnectionEvent— Informa il bot che l'utente si è disconnesso dalla conversazione.

È necessario codificare ogni evento inviato a un bot Amazon Lex V2 nel formato corretto. Per ulteriori informazioni, consulta Codifica del flusso di eventi.

Ogni evento ha un ID evento. Per aiutare a risolvere eventuali problemi che potrebbero verificarsi nello stream, assegnate un ID evento univoco a ciascun evento di input. È quindi possibile risolvere eventuali errori di elaborazione con il bot.

Amazon Lex V2 utilizza anche timestamp per ogni evento. Puoi utilizzare questi timestamp in aggiunta all'ID dell'evento per risolvere eventuali problemi di trasmissione di rete.

Durante la conversazione tra l'utente e il bot Amazon Lex V2, il bot può inviare i seguenti eventi in uscita in risposta all'utente:

  • IntentResultEvent— Contiene l'intento che Amazon Lex V2 ha determinato dall'enunciato dell'utente. Ogni evento di risultato interno include:

    • inputMode— Il tipo di enunciato dell'utente. I valori validi sono Speech, DTMF o Text.

    • interpretazioni: interpretazioni che Amazon Lex V2 determina dall'enunciato dell'utente.

    • requestAttributes— Se non hai modificato gli attributi della richiesta utilizzando una funzione lambda, questi sono gli stessi attributi che sono stati passati all'inizio della conversazione.

    • sessionId— Identificatore di sessione utilizzato per la conversazione.

    • sessionState— Lo stato della sessione dell'utente con Amazon Lex V2.

  • TranscriptEvent— Se l'utente fornisce un input all'applicazione, questo evento contiene la trascrizione dell'enunciato dell'utente al bot. L'applicazione non riceve un messaggio TranscriptEvent se non è presente alcun input da parte dell'utente.

    Il valore dell'evento di trascrizione inviato all'applicazione dipende dal fatto che abbiate specificato audio (voce eDMTF) o testo come modalità di conversazione:

    • Trascrizione dell'input vocale: se l'utente sta parlando con il bot, l'evento di trascrizione è la trascrizione dell'audio dell'utente. È una trascrizione di tutto il discorso dal momento in cui l'utente inizia a parlare al momento in cui finisce di parlare.

    • Trascrizione dell'DTMFinput: se l'utente sta digitando su una tastiera, l'evento di trascrizione contiene tutte le cifre che l'utente ha premuto durante l'input.

    • Trascrizione dell'immissione di testo: se l'utente fornisce un input di testo, l'evento di trascrizione contiene tutto il testo nell'input dell'utente.

  • TextResponseEvent— Contiene la risposta del bot in formato testo. Per impostazione predefinita, viene restituita una risposta testuale. Se hai configurato Amazon Lex V2 per restituire una risposta audio, questo testo viene utilizzato per generare una risposta audio. Ogni evento di risposta testuale contiene una serie di oggetti di messaggio che il bot restituisce all'utente.

  • AudioResponseEvent— Contiene la risposta audio sintetizzata dal testo generato in. TextResponseEvent Per ricevere eventi di risposta audio, devi configurare Amazon Lex V2 per fornire una risposta audio. Tutti gli eventi di risposta audio hanno lo stesso formato audio. Ogni evento contiene blocchi audio di non più di 100 byte. Amazon Lex V2 invia un blocco audio vuoto con il bytes campo impostato su null per indicare la fine dell'evento di risposta audio all'applicazione.

  • PlaybackInterruptionEvent— Quando un utente interrompe una risposta che il bot ha inviato alla tua applicazione, Amazon Lex V2 attiva questo evento per interrompere la riproduzione della risposta.

  • HeartbeatEvent— Amazon Lex V2 invia questo evento periodicamente per evitare il timeout della connessione tra l'applicazione e il bot.

Sequenza temporale degli eventi per una conversazione audio quando si utilizza un bot Amazon Lex V2

I seguenti diagrammi mostrano una conversazione audio in streaming tra un utente e un bot Amazon Lex V2. L'applicazione trasmette continuamente l'audio al bot e il bot cerca l'input dell'utente dall'audio. In questo esempio, sia l'utente che il bot utilizzano la voce per comunicare. Ogni diagramma corrisponde a un'espressione dell'utente e alla risposta del bot a tale enunciato.

Il diagramma seguente mostra l'inizio di una conversazione tra l'applicazione e il bot. Lo stream inizia all'ora zero (t0).

Timeline showing audio input events from application and various response events from bot during a conversation.

L'elenco seguente descrive gli eventi del diagramma precedente.

  • t0: L'applicazione invia un evento di configurazione al bot per avviare lo stream.

  • t1: L'applicazione trasmette dati audio. Questi dati sono suddivisi in una serie di eventi di input dall'applicazione.

  • t2: Per l'enunciato utente 1, il bot rileva un evento di ingresso audio quando l'utente inizia a parlare.

  • t2: Mentre l'utente sta parlando, il bot invia un evento heartbeat per mantenere la connessione. Invia questi eventi in modo intermittente per assicurarsi che la connessione non scada.

  • t3: Il bot rileva la fine dell'enunciato dell'utente.

  • t4: Il bot restituisce all'applicazione un evento di trascrizione che contiene una trascrizione del discorso dell'utente. Questo è l'inizio della risposta del bot all'enunciato dell'utente 1.

  • t5: Il bot invia un evento intent result per indicare l'azione che l'utente desidera eseguire.

  • t6: Il bot inizia a fornire la sua risposta come testo in un evento di risposta testuale.

  • t7: Il bot invia una serie di eventi di risposta audio all'applicazione affinché vengano riprodotti per l'utente.

  • t8: Il bot invia un altro evento heartbeat per mantenere la connessione in modo intermittente.

Il diagramma seguente è una continuazione del diagramma precedente. Mostra l'applicazione che invia un evento di completamento della riproduzione al bot per indicare che ha interrotto la riproduzione della risposta audio per l'utente. L'applicazione riproduce all'utente la risposta del bot all'enunciato 1 dell'utente. L'utente risponde alla risposta del bot all'enunciato dell'utente 1 con l'enunciato dell'utente 2.

Timeline of audio input events from user and response events from bot, showing interaction flow.

L'elenco seguente descrive gli eventi del diagramma precedente:

  • t10: L'applicazione invia un evento di completamento della riproduzione per indicare che ha terminato la riproduzione del messaggio del bot all'utente.

  • t11: L'applicazione invia la risposta dell'utente al bot come User utterance 2.

  • t12: Per la risposta del bot all'enunciato dell'utente 2, il bot attende che l'utente smetta di parlare e quindi inizia a fornire una risposta audio.

  • t13: mentre il bot invia la risposta del bot all'enunciato dell'utente 2 all'applicazione, rileva l'inizio dell'enunciato dell'utente 3. Il bot interrompe la risposta del bot all'enunciato 2 dell'utente e invia un evento di interruzione della riproduzione.

  • t14: Il bot invia un evento di interruzione della riproduzione all'applicazione per segnalare che l'utente ha interrotto il prompt.

Il diagramma seguente mostra la risposta del bot all'enunciato dell'utente 3 e che la conversazione continua dopo che il bot ha risposto all'enunciato dell'utente.

Diagram showing events flow between application, bot, and user utterances over time.