AWS Lambda format acara masukan untuk Lex V2 - Amazon Lex

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

AWS Lambda format acara masukan untuk Lex V2

Langkah pertama dalam mengintegrasikan fungsi Lambda ke dalam bot Amazon Lex V2 Anda adalah memahami bidang dalam acara Amazon Lex V2 dan untuk menentukan informasi dari bidang ini yang ingin Anda gunakan saat menulis skrip Anda. JSONObjek berikut menunjukkan format umum peristiwa Amazon Lex V2 yang diteruskan ke fungsi Lambda:

catatan

Format input dapat berubah tanpa perubahan yang sesuai dengan formatmessageVersion. Kode Anda seharusnya tidak menimbulkan kesalahan jika ada bidang baru.

{ "messageVersion": "1.0", "invocationSource": "DialogCodeHook | FulfillmentCodeHook", "inputMode": "DTMF | Speech | Text", "responseContentType": "audio/mpeg | audio/ogg | audio/pcm | text/plain; charset=utf-8", "sessionId": string, "inputTranscript": string, "invocationLabel": string, "bot": { "id": string, "name": string, "localeId": string, "version": string, "aliasId": string, "aliasName": string }, "interpretations": [ { "interpretationSource": "Bedrock | Lex", "intent": { // see Niat for details about the structure }, "nluConfidence": number, "sentimentResponse": { "sentiment": "MIXED | NEGATIVE | NEUTRAL | POSITIVE", "sentimentScore": { "mixed": number, "negative": number, "neutral": number, "positive": number } } }, ... ], "proposedNextState": { "dialogAction": { "slotToElicit": string, "type": "Close | ConfirmIntent | Delegate | ElicitIntent | ElicitSlot" }, "intent": { // see Niat for details about the structure }, "prompt": { "attempt": string } }, "requestAttributes": { string: string, ... }, "sessionState": { // see Status sesi for details about the structure }, "transcriptions": [ { "transcription": string, "transcriptionConfidence": number, "resolvedContext": { "intent": string }, "resolvedSlots": { slot name: { // see Slot for details about the structure }, ... } }, ... ] }

Setiap bidang dalam acara input dijelaskan di bawah ini:

Versi pesan yang mengidentifikasi format data peristiwa yang masuk ke fungsi Lambda dan format respons yang diharapkan dari fungsi Lambda.

catatan

Anda mengonfigurasi nilai ini saat menentukan maksud. Dalam implementasi saat ini, Amazon Lex V2 hanya mendukung pesan versi 1.0. Oleh karena itu, konsol mengasumsikan nilai default 1.0 dan tidak menampilkan versi pesan.

Hook kode yang disebut fungsi Lambda. Nilai-nilai berikut dimungkinkan:

DialogCodeHook- Amazon Lex V2 menyebut fungsi Lambda setelah input dari pengguna.

FulfillmentCodeHook— Amazon Lex V2 menyebut fungsi Lambda setelah mengisi semua slot yang diperlukan dan maksudnya siap untuk dipenuhi.

Mode ucapan pengguna. Kemungkinan nilainya adalah sebagai berikut:

DTMF— Pengguna memasukkan ucapan menggunakan keypad touch-tone (Dual Tone Multi-Frequency).

Speech— Pengguna mengucapkan ucapannya.

Text— Pengguna mengetik ucapan.

Mode respons bot terhadap pengguna. text/plain; charset=utf-8menunjukkan bahwa ucapan terakhir ditulis, sedangkan nilai yang dimulai dengan audio menunjukkan bahwa ucapan terakhir diucapkan.

Pengidentifikasi sesi alfanumerik yang digunakan untuk percakapan.

Transkripsi input dari pengguna.

  • Untuk input teks, ini adalah teks yang diketik pengguna. Untuk DTMF input, ini adalah kunci yang dimasukkan pengguna.

  • Untuk input ucapan, ini adalah teks yang digunakan Amazon Lex V2 untuk mengonversi ucapan pengguna untuk memanggil maksud atau mengisi slot.

Nilai yang menunjukkan respons yang memanggil fungsi Lambda. Anda dapat mengatur label pemanggilan untuk respons awal, slot, dan respons konfirmasi.

Informasi tentang bot yang memproses permintaan, yang terdiri dari bidang-bidang berikut:

  • id — Pengenal yang ditetapkan ke bot saat Anda membuatnya. Anda dapat melihat ID bot di konsol Amazon Lex V2 di halaman Pengaturan bot.

  • Nama — Nama yang Anda berikan pada bot saat Anda membuatnya.

  • localeId— Pengidentifikasi lokal yang Anda gunakan untuk bot Anda. Untuk daftar lokal, lihatBahasa dan lokal yang didukung oleh Amazon Lex V2.

  • versi — Versi bot yang memproses permintaan.

  • aliasId— Pengenal yang ditetapkan ke alias bot saat Anda membuatnya. Anda dapat melihat ID alias bot di konsol Amazon Lex V2 di halaman Alias. Jika Anda tidak dapat melihat ID alias dalam daftar, pilih ikon roda gigi di kanan atas dan nyalakan ID Alias.

  • aliasName— Nama yang Anda berikan alias bot.

Daftar informasi tentang maksud yang Amazon Lex V2 anggap mungkin cocok dengan ucapan pengguna. Setiap item adalah struktur yang memberikan informasi tentang kecocokan ucapan dengan maksud, dengan format berikut:

{ "intent": { // see Niat for details about the structure }, "interpretationSource": "Bedrock | Lex", "nluConfidence": number, "sentimentResponse": { "sentiment": "MIXED | NEGATIVE | NEUTRAL | POSITIVE", "sentimentScore": { "mixed": number, "negative": number, "neutral": number, "positive": number } } }

Bidang dalam struktur adalah sebagai berikut:

  • intent — Struktur yang berisi informasi tentang maksud. Lihat Niat untuk detail tentang struktur.

  • nluConfidence— Skor yang menunjukkan seberapa yakin Amazon Lex V2 bahwa maksud tersebut cocok dengan maksud pengguna.

  • sentimentResponse— Analisis sentimen respons, yang berisi bidang-bidang berikut:

    • sentimen — Menunjukkan apakah sentimen ucapan ituPOSITIVE,,, NEGATIVE atau. NEUTRAL MIXED

    • sentimentScore— Struktur yang memetakan setiap sentimen ke angka yang menunjukkan seberapa yakin Amazon Lex V2 bahwa ucapan tersebut menyampaikan sentimen itu.

  • interpretationSource— Menunjukkan apakah slot diselesaikan oleh Amazon Lex atau Amazon Bedrock.

Jika fungsi Lambda menyetel sessionState toDelegate, bidang ini akan muncul dan menampilkan proposal Amazon Lex V2 untuk langkah selanjutnya dalam percakapan. dialogAction Jika tidak, status berikutnya tergantung pada pengaturan yang Anda kembalikan dalam respons dari fungsi Lambda Anda. Struktur ini hanya ada jika kedua pernyataan berikut benar:

  1. invocationSourceNilainya adalah DialogCodeHook

  2. Yang diprediksi type dialogAction adalahElicitSlot.

Anda dapat menggunakan informasi ini untuk menambahkan runtimeHints pada titik yang tepat dalam percakapan. Lihat Meningkatkan pengenalan nilai slot dengan petunjuk runtime dalam percakapan untuk informasi lebih lanjut. proposedNextStateadalah struktur yang berisi bidang-bidang berikut:

Struktur proposedNextState adalah sebagai berikut:

"proposedNextState": { "dialogAction": { "slotToElicit": string, "type": "Close | ConfirmIntent | Delegate | ElicitIntent | ElicitSlot" }, "intent": { // see Niat for details about the structure }, "prompt": { "attempt": string } }
  • dialogAction— Berisi informasi tentang langkah selanjutnya yang diusulkan Amazon Lex V2. Bidang dalam struktur adalah sebagai berikut:

    • slotToElicit— Slot untuk memperoleh berikutnya seperti yang diusulkan oleh Amazon Lex V2. Bidang ini hanya muncul jika type adaElicitSlot.

    • type — Langkah selanjutnya dalam percakapan seperti yang diusulkan oleh Amazon Lex V2. Nilai-nilai berikut dimungkinkan:

      Delegate- Amazon Lex V2 menentukan tindakan selanjutnya.

      ElicitIntent— Tindakan selanjutnya adalah untuk mendapatkan maksud dari pengguna.

      ElicitSlot— Tindakan selanjutnya adalah mendapatkan nilai slot dari pengguna.

      Close— Mengakhiri proses pemenuhan maksud dan menunjukkan bahwa tidak akan ada respons dari pengguna.

      ConfirmIntent— Tindakan selanjutnya adalah bertanya kepada pengguna apakah slotnya benar dan niat siap untuk dipenuhi.

  • maksud — Maksud bahwa bot telah menentukan bahwa pengguna mencoba untuk memenuhi. Lihat Niat untuk detail tentang struktur.

  • prompt — Struktur yang berisi bidangattempt, yang memetakan ke nilai yang menentukan berapa kali Amazon Lex V2 telah mendorong pengguna untuk slot berikutnya. Nilai yang mungkin adalah Initial untuk upaya pertama danRetry1,Retry2,Retry3,Retry4, dan Retry5 untuk upaya selanjutnya.

Struktur yang berisi atribut permintaan khusus yang dikirim klien dalam permintaan. Gunakan atribut permintaan untuk meneruskan informasi yang tidak perlu bertahan selama seluruh sesi. Jika tidak ada atribut permintaan, nilainya akan menjadi null. Untuk informasi selengkapnya, lihat Mengatur atribut permintaan untuk bot Lex V2 Anda.

Keadaan percakapan saat ini antara pengguna dan bot Amazon Lex V2 Anda. Lihat Status sesi untuk detail tentang struktur.

Daftar transkripsi yang Amazon Lex V2 anggap mungkin cocok dengan ucapan pengguna. Untuk informasi selengkapnya, lihat Menggunakan skor kepercayaan transkripsi suara untuk meningkatkan percakapan dengan bot Lex V2 Anda. Setiap item adalah objek dengan format berikut, berisi informasi tentang satu kemungkinan transkripsi:

{ "transcription": string, "transcriptionConfidence": number, "resolvedContext": { "intent": string }, "resolvedSlots": { slot name: { // see Slot for details about the structure }, ... } }

Bidang dijelaskan di bawah ini:

  • transkripsi — Transkripsi yang Amazon Lex V2 anggap mungkin cocok dengan ucapan audio pengguna.

  • transcriptionConfidence— Skor yang menunjukkan seberapa yakin Amazon Lex V2 bahwa maksud tersebut cocok dengan maksud pengguna.

  • resolvedContext— Struktur yang berisi bidangintent, yang memetakan maksud yang berkaitan dengan ucapan tersebut.

  • resolvedSlots— Struktur yang kuncinya adalah nama setiap slot yang diselesaikan dengan ucapan. Setiap nama slot memetakan ke struktur yang berisi informasi tentang slot itu. Lihat Slot untuk detail tentang struktur.