Memulai aliran ke bot - Amazon Lex

Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.

Memulai aliran ke bot

Anda menggunakan StartConversationoperasi untuk memulai streaming antara pengguna dan bot Amazon Lex V2 di aplikasi Anda. POSTPermintaan dari aplikasi membuat koneksi antara aplikasi Anda dan bot Amazon Lex V2. Ini memungkinkan aplikasi Anda dan bot untuk mulai bertukar informasi satu sama lain melalui acara.

StartConversationOperasi hanya didukung dalam SDK berikut:

Acara pertama aplikasi Anda harus mengirim ke Amazon Lex V2 bot adalah ConfigurationEvent. Acara ini mencakup informasi seperti format jenis respons. Berikut ini adalah parameter yang dapat Anda gunakan dalam acara konfigurasi:

  • responseContentType- Menentukan apakah bot merespons input pengguna dengan teks atau ucapan.

  • SessionState - Informasi yang berkaitan dengan sesi streaming dengan bot seperti maksud yang telah ditentukan atau status dialog.

  • WelcomeMessages - Menentukan pesan selamat datang yang diputar untuk pengguna di awal percakapan mereka dengan bot. Pesan-pesan ini diputar sebelum pengguna memberikan masukan apa pun. Untuk mengaktifkan pesan selamat datang, Anda juga harus menentukan nilai untuksessionState dandialogAction parameter.

  • DisablePlayback - Menentukan apakah bot harus menunggu isyarat dari klien sebelum mulai mendengarkan input pemanggil. Secara default, pemutaran diaktifkan, sehingga nilai bidang ini adalahfalse.

  • requestAttributes - Menyediakan informasi tambahan untuk permintaan.

Untuk informasi tentang cara menentukan nilai untuk parameter sebelumnya, lihat tipe ConfigurationEventdata StartConversationoperasi.

Setiap aliran antara bot dan aplikasi Anda hanya dapat memiliki satu peristiwa konfigurasi. Setelah aplikasi Anda mengirim peristiwa konfigurasi, bot dapat mengambil komunikasi tambahan dari aplikasi Anda.

Jika Anda telah menentukan bahwa pengguna Anda menggunakan audio untuk berkomunikasi dengan bot Amazon Lex V2, aplikasi Anda dapat mengirim peristiwa berikut ke bot selama percakapan tersebut:

  • AudioInputEvent- Berisi potongan audio yang memiliki ukuran maksimum 320 byte. Aplikasi Anda harus menggunakan beberapa peristiwa input audio untuk mengirim pesan dari server ke bot. Setiap peristiwa input audio dalam aliran harus memiliki format audio yang sama.

  • DTMFInputEvent - Mengirim input DTMF ke bot. Setiap tombol tekan DTMF sesuai dengan satu peristiwa.

  • PlaybackCompletionEvent- Menginformasikan server bahwa respons dari input pengguna telah diputar kembali kepada mereka. Anda harus menggunakan peristiwa penyelesaian pemutaran jika Anda mengirim respons audio ke pengguna. JikadisablePlayback acara konfigurasi Andatrue, Anda tidak dapat menggunakan fitur ini.

  • DisconnectionEvent- Menginformasikan bot bahwa pengguna telah terputus dari percakapan.

Jika Anda telah menentukan bahwa pengguna menggunakan teks untuk berkomunikasi dengan bot, aplikasi Anda dapat mengirim peristiwa berikut ke bot selama percakapan tersebut:

  • TextInputEvent— Teks yang dikirim dari aplikasi Anda ke bot. Anda dapat memiliki hingga 512 karakter dalam peristiwa input teks.

  • PlaybackCompletionEvent- Menginformasikan server bahwa respons dari input pengguna telah diputar kembali kepada mereka. Anda harus menggunakan acara ini jika Anda memutar audio kembali ke pengguna. JikadisablePlayback acara konfigurasi Andatrue, Anda tidak dapat menggunakan fitur ini.

  • DisconnectionEvent- Menginformasikan bot bahwa pengguna telah terputus dari percakapan.

Anda harus menyandikan setiap peristiwa yang Anda kirim ke bot Amazon Lex V2 dalam format yang benar. Untuk informasi selengkapnya, lihat Pengkodean aliran acara.

Setiap acara memiliki ID acara. Untuk membantu memecahkan masalah apa pun yang mungkin terjadi di stream, tetapkan ID peristiwa unik untuk setiap peristiwa masukan. Anda kemudian dapat memecahkan masalah kegagalan pemrosesan apa pun dengan bot.

Amazon Lex V2 juga menggunakan stempel waktu untuk setiap acara. Anda dapat menggunakan stempel waktu ini selain ID peristiwa untuk membantu memecahkan masalah transmisi jaringan.

Selama percakapan antara pengguna dan bot Amazon Lex V2, bot dapat mengirim peristiwa keluar berikut sebagai tanggapan terhadap pengguna:

  • IntentResultEvent— Berisi maksud yang ditentukan Amazon Lex V2 dari ucapan pengguna. Setiap acara hasil internal meliputi:

    • InputMode - Jenis ucapan pengguna. Nilai yang valid adalah Speech, DTMF, atau Text.

    • interpretasi — Interpretasi yang ditentukan Amazon Lex V2 dari ucapan pengguna.

    • requestAttributes — Jika Anda belum memodifikasi atribut permintaan dengan menggunakan fungsi lambda, ini adalah atribut yang sama yang diteruskan pada awal percakapan.

    • sessionId - Pengenal sesi yang digunakan untuk percakapan.

    • SessionState — Status sesi pengguna dengan Amazon Lex V2.

  • TranscriptEvent- Jika pengguna memberikan masukan ke aplikasi Anda, acara ini berisi transkrip ucapan pengguna ke bot. Aplikasi Anda tidak menerimaTranscriptEvent jika tidak ada input pengguna.

    Nilai peristiwa transkrip yang dikirim ke aplikasi Anda tergantung pada apakah Anda telah menentukan audio (ucapan dan DMTF) atau teks sebagai mode percakapan:

    • Transkrip input ucapan - Jika pengguna berbicara dengan bot, peristiwa transkrip adalah transkripsi audio pengguna. Ini adalah transkrip dari semua pidato dari saat pengguna mulai berbicara hingga saat mereka berakhir berbicara.

    • Transkrip input DTMF - Jika pengguna mengetik pada keypad, peristiwa transkrip berisi semua digit yang ditekan pengguna dalam masukan mereka.

    • Transkrip input teks - Jika pengguna memberikan input teks, peristiwa transkrip berisi semua teks dalam masukan pengguna.

  • TextResponseEvent- Berisi respons bot dalam format teks. Respons teks dikembalikan secara default. Jika Anda telah mengonfigurasi Amazon Lex V2 untuk mengembalikan respons audio, teks ini digunakan untuk menghasilkan respons audio. Setiap peristiwa respon teks berisi array objek pesan yang bot kembali ke pengguna.

  • AudioResponseEvent- Berisi respon audio yang disintesis dari teks yang dihasilkan diTextResponseEvent. Untuk menerima peristiwa respons audio, Anda harus mengonfigurasi Amazon Lex V2 untuk memberikan respons audio. Semua peristiwa respons audio memiliki format audio yang sama. Setiap acara berisi potongan audio tidak lebih dari 100 byte. Amazon Lex V2 mengirimkan potongan audio kosong denganbytes bidang yang ditetapkannull untuk menunjukkan bahwa akhir peristiwa respons audio ke aplikasi Anda.

  • PlaybackInterruptionEvent— Ketika pengguna menyela respons yang telah dikirim bot ke aplikasi Anda, Amazon Lex V2 memicu peristiwa ini untuk menghentikan pemutaran respons.

  • HeartbeatEvent- Amazon Lex V2 mengirimkan acara ini kembali secara berkala untuk menjaga hubungan antara aplikasi Anda dan bot dari waktu habis.

Urutan waktu peristiwa untuk percakapan audio

Diagram berikut menunjukkan percakapan audio streaming antara pengguna dan bot Amazon Lex V2. Aplikasi terus mengalirkan audio ke bot, dan bot mencari input pengguna dari audio. Dalam contoh ini, pengguna dan bot menggunakan ucapan untuk berkomunikasi. Setiap diagram sesuai dengan ucapan pengguna dan respons bot terhadap ucapan itu.

Diagram berikut menunjukkan awal percakapan antara aplikasi dan bot. Aliran dimulai pada waktu nol (t0).

Daftar berikut menjelaskan peristiwa diagram sebelumnya.

  • t0: Aplikasi mengirimkan acara konfigurasi ke bot untuk memulai streaming.

  • t1: Aplikasi mengalirkan data audio. Data ini dipecah menjadi serangkaian peristiwa masukan dari aplikasi.

  • t2: Untuk ucapan pengguna 1, bot mendeteksi peristiwa input audio saat pengguna mulai berbicara.

  • t2: Saat pengguna berbicara, bot mengirimkan acara detak jantung untuk menjaga koneksi. Ini mengirimkan peristiwa ini sebentar-sebentar untuk memastikan koneksi tidak habis waktu.

  • t3: Bot mendeteksi akhir ucapan pengguna.

  • t4: Bot mengirimkan kembali peristiwa transkrip yang berisi transkrip pidato pengguna ke aplikasi. Ini adalah awal dari respons Bot terhadap ucapan pengguna 1.

  • t5: Bot mengirimkan peristiwa hasil maksud untuk menunjukkan tindakan yang ingin dilakukan pengguna.

  • t6: Bot mulai memberikan responsnya sebagai teks dalam peristiwa respons teks.

  • t7: Bot mengirimkan serangkaian peristiwa respons audio ke aplikasi untuk dimainkan bagi pengguna.

  • t8: Bot mengirimkan acara detak jantung lain untuk menjaga koneksi sebentar-sebentar.

Diagram berikut merupakan kelanjutan dari diagram sebelumnya. Ini menunjukkan aplikasi yang mengirim acara penyelesaian pemutaran ke bot untuk menunjukkan bahwa ia telah berhenti memutar respons audio untuk pengguna. Aplikasi ini memainkan kembali respon Bot untuk ucapan pengguna 1 kepada pengguna. Pengguna menanggapi respons Bot terhadap ucapan pengguna 1 dengan ucapan Pengguna 2.

Daftar berikut menjelaskan peristiwa diagram sebelumnya:

  • t10: Aplikasi mengirimkan acara penyelesaian pemutaran untuk menunjukkan bahwa ia telah selesai memutar pesan bot kepada pengguna.

  • t11: Aplikasi mengirimkan respons pengguna kembali ke bot sebagai ucapan Pengguna 2.

  • t12: Untuk respons Bot terhadap ucapan pengguna 2, bot menunggu pengguna berhenti berbicara dan kemudian mulai memberikan respons audio.

  • t13: Sementara bot mengirimkan respons Bot ke ucapan pengguna 2 ke aplikasi, bot mendeteksi awal ucapan Pengguna 3. Bot menghentikan respons Bot terhadap ucapan pengguna 2 dan mengirimkan peristiwa gangguan pemutaran.

  • t14: Bot mengirimkan peristiwa gangguan pemutaran ke aplikasi untuk memberi sinyal bahwa pengguna telah mengganggu prompt.

Diagram berikut menunjukkan respons Bot terhadap ucapan pengguna 3, dan percakapan berlanjut setelah bot merespons ucapan pengguna.