Avvio di uno stream verso un bot - 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 uno stream verso un bot

Utilizzi l'StartConversationoperazione per avviare uno stream tra l'utente e il bot Amazon Lex V2 nella tua applicazione. LaPOST richiesta dall'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 tramite eventi.

L'StartConversationoperazione è supportata solo nei seguenti SDK:

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 della finestra di dialogo.

  • WelcomeMessages: specifica i messaggi di benvenuto che vengono riprodotti dall'utente all'inizio della conversazione con un bot. Questi messaggi vengono riprodotti prima che l'utente fornisca qualsiasi input. Per attivare un messaggio di benvenuto, è necessario specificare anche i valori per idialogAction parametrisessionState 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 flusso 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 ulteriori comunicazioni dall'applicazione.

Se hai specificato che l'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 ingresso audio nello stream deve avere lo stesso formato audio.

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

  • PlaybackCompletionEvent— Informa il server che è stata riprodotta una risposta dall'input dell'utente. È necessario utilizzare un evento di completamento della riproduzione se si invia una risposta audio all'utente. SedisablePlayback uno dei tuoi eventi di configurazione ètrue, non puoi usare 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 dalla tua applicazione al bot. È possibile contenere 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 all'utente. SedisablePlayback uno dei tuoi eventi 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, assegna 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. È possibile utilizzare questi timestamp in aggiunta all'ID 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 interno con risultati include:

    • inputMode — Il tipo di espressione 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 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. La tua applicazione non riceve un messaggioTranscriptEvent se non c'è alcun input da parte dell'utente.

    Il valore dell'evento di trascrizione inviato all'applicazione dipende dal fatto che tu abbia specificato l'audio (voce e DMTF) o il 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'input DTMF: se l'utente sta digitando su una tastiera, l'evento di trascrizione contiene tutte le cifre che l'utente ha premuto nell'input.

    • Trascrizione dell'input di testo: se l'utente fornisce un input di testo, l'evento di trascrizione contiene tutto il testo inserito dall'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 inTextResponseEvent. 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 ilbytes campo impostatonull per indicare la fine dell'evento di risposta audio all'applicazione.

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

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

Sequenza temporale degli eventi per una conversazione audio

I diagrammi seguenti 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 quell'enunciato.

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

Nell'elenco seguente vengono descritti 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 vengono suddivisi in una serie di eventi di input dall'applicazione.

  • t2: Per l'enunciazione dell'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 di battito cardiaco per mantenere la connessione. Invia gli eventi a intermittenza per assicurarsi che non si verifica il timeout della connessione.

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

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

  • t5: il bot invia un evento di intento 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 da riprodurre per l'utente.

  • t8: Il bot invia un altro evento di battito cardiaco 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'espressione dell'utente 1 con User utterance 2.

Nell'elenco seguente vengono descritti 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'espressione 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'espressione utente 2 all'applicazione, il bot rileva l'inizio di User utterance 3. Il bot interrompe la risposta del bot all'espressione 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 la richiesta.

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.