PutSession - Amazon Lex V1

Jika Anda menggunakan Amazon Lex V2, lihat panduan Amazon Lex V2 sebagai gantinya.

 

Jika Anda menggunakan Amazon Lex V1, kami sarankan untuk meningkatkan bot Anda ke Amazon Lex V2. Kami tidak lagi menambahkan fitur baru ke V1 dan sangat menyarankan menggunakan V2 untuk semua bot baru.

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

PutSession

Membuat sesi baru atau memodifikasi sesi yang ada dengan bot Amazon Lex. Gunakan operasi ini untuk mengaktifkan aplikasi Anda untuk mengatur status bot.

Untuk informasi selengkapnya, lihat Mengelola Sesi.

Minta Sintaks

POST /bot/botName/alias/botAlias/user/userId/session HTTP/1.1 Accept: accept Content-type: application/json { "activeContexts": [ { "name": "string", "parameters": { "string" : "string" }, "timeToLive": { "timeToLiveInSeconds": number, "turnsToLive": number } } ], "dialogAction": { "fulfillmentState": "string", "intentName": "string", "message": "string", "messageFormat": "string", "slots": { "string" : "string" }, "slotToElicit": "string", "type": "string" }, "recentIntentSummaryView": [ { "checkpointLabel": "string", "confirmationStatus": "string", "dialogActionType": "string", "fulfillmentState": "string", "intentName": "string", "slots": { "string" : "string" }, "slotToElicit": "string" } ], "sessionAttributes": { "string" : "string" } }

Parameter Permintaan URI

Permintaan menggunakan parameter URI berikut.

accept

Pesan yang dikembalikan Amazon Lex dalam respons dapat berupa teks atau ucapan berdasarkan tergantung pada nilai bidang ini.

  • Jika nilainyatext/plain; charset=utf-8, Amazon Lex mengembalikan teks dalam respons.

  • Jika nilai dimulai denganaudio/, Amazon Lex mengembalikan pidato dalam respons. Amazon Lex menggunakan Amazon Polly untuk menghasilkan pidato dalam konfigurasi yang Anda tentukan. Misalnya, jika Anda menentukan audio/mpeg sebagai nilai, Amazon Lex mengembalikan ucapan dalam format MPEG.

  • Jika nilainyaaudio/pcm, pidato dikembalikan seperti audio/pcm dalam 16-bit, format endian kecil.

  • Berikut ini adalah nilai yang diterima:

    • audio/mpeg

    • audio/ogg

    • audio/pcm

    • audio/*(default ke mpeg)

    • text/plain; charset=utf-8

botAlias

Alias yang digunakan untuk bot yang berisi data sesi.

Diperlukan: Ya

botName

Nama bot yang berisi data sesi.

Diperlukan: Ya

userId

ID pengguna aplikasi klien. Amazon Lex menggunakan ini untuk mengidentifikasi percakapan pengguna dengan bot Anda.

Kendala Panjang: Panjang minimum 2. Panjang maksimum 100.

Pola: [0-9a-zA-Z._:-]+

Wajib: Ya

Isi Permintaan

Permintaan menerima data berikut dalam format JSON.

activeContexts

Daftar konteks yang aktif untuk permintaan. Konteks dapat diaktifkan ketika maksud sebelumnya terpenuhi, atau dengan memasukkan konteks dalam permintaan,

Jika Anda tidak menentukan daftar konteks, Amazon Lex akan menggunakan daftar konteks saat ini untuk sesi tersebut. Jika Anda menentukan daftar kosong, semua konteks untuk sesi akan dihapus.

Tipe: Array objek ActiveContext

Anggota Array: Jumlah minimum 0 item. Jumlah maksimum 20 item.

Diperlukan: Tidak

dialogAction

Menetapkan tindakan selanjutnya yang harus diambil bot untuk memenuhi percakapan.

Tipe: Objek DialogAction

Diperlukan: Tidak

recentIntentSummaryView

Ringkasan maksud terbaru untuk bot. Anda dapat menggunakan tampilan ringkasan intent untuk menyetel label pos pemeriksaan pada intent dan memodifikasi atribut intent. Anda juga dapat menggunakannya untuk menghapus atau menambahkan objek ringkasan maksud ke daftar.

Maksud yang Anda ubah atau tambahkan ke daftar harus masuk akal untuk bot. Misalnya, nama maksud harus valid untuk bot. Anda harus memberikan nilai yang valid untuk:

  • intentName

  • nama slot

  • slotToElict

Jika Anda mengirim recentIntentSummaryView parameter dalam PutSession permintaan, isi tampilan ringkasan baru menggantikan tampilan ringkasan lama. Misalnya, jika GetSession permintaan mengembalikan tiga maksud dalam tampilan ringkasan dan Anda memanggil PutSession dengan satu maksud dalam tampilan ringkasan, panggilan berikutnya hanya GetSession akan menampilkan satu maksud.

Tipe: Array objek IntentSummary

Anggota Array: Jumlah minimum 0 item. Jumlah maksimum 3 item.

Diperlukan: Tidak

sessionAttributes

Peta pasangan kunci/nilai yang mewakili informasi konteks khusus sesi. Ini berisi informasi aplikasi yang diteruskan antara Amazon Lex dan aplikasi klien.

Tipe: Peta antar string

Diperlukan: Tidak

Sintaksis Respons

HTTP/1.1 200 Content-Type: contentType x-amz-lex-intent-name: intentName x-amz-lex-slots: slots x-amz-lex-session-attributes: sessionAttributes x-amz-lex-message: message x-amz-lex-encoded-message: encodedMessage x-amz-lex-message-format: messageFormat x-amz-lex-dialog-state: dialogState x-amz-lex-slot-to-elicit: slotToElicit x-amz-lex-session-id: sessionId x-amz-lex-active-contexts: activeContexts audioStream

Elemen Respons

Jika tindakan berhasil, layanan mengirimkan kembali respons HTTP 200.

Respons mengembalikan header HTTP berikut.

activeContexts

Daftar konteks aktif untuk sesi tersebut.

contentType

Jenis konten seperti yang ditentukan dalam header Accept HTTP dalam permintaan.

dialogState

  • ConfirmIntent- Amazon Lex mengharapkan respons “ya” atau “tidak” untuk mengonfirmasi maksud sebelum memenuhi maksud.

  • ElicitIntent- Amazon Lex ingin mendapatkan maksud pengguna.

  • ElicitSlot- Amazon Lex mengharapkan nilai slot untuk maksud saat ini.

  • Failed- Menyampaikan bahwa percakapan dengan pengguna telah gagal. Hal ini dapat terjadi karena berbagai alasan, termasuk pengguna tidak memberikan respons yang sesuai terhadap permintaan dari layanan, atau jika fungsi Lambda gagal memenuhi intent.

  • Fulfilled- Menyampaikan bahwa fungsi Lambda telah berhasil memenuhi niat.

  • ReadyForFulfillment- Menyampaikan bahwa klien harus memenuhi niat.

Nilai yang Valid: ElicitIntent | ConfirmIntent | ElicitSlot | Fulfilled | ReadyForFulfillment | Failed

encodedMessage

Pesan berikutnya yang harus disajikan kepada pengguna.

encodedMessageBidang ini dikodekan basis-64. Anda harus memecahkan kode bidang sebelum Anda dapat menggunakan nilai.

Batasan Panjang: Panjang minimum 1. Panjang maksimum 1366.

intentName

Nama maksud saat ini.

message

Header ini sudah tidak digunakan lagi.

Pesan berikutnya yang harus disajikan kepada pengguna.

Anda hanya dapat menggunakan bidang ini di lokal De-de, en-AU, en-GB, en-US, es-419, es-ES, es-US, fr-Ca, fr-FR, dan IT-it. Di semua lokal lainnya, message bidangnya nol. Anda harus menggunakan encodedMessage bidang sebagai gantinya.

Batasan Panjang: Panjang minimum 1. Panjang maksimum 1024.

messageFormat

Format pesan respons. Salah satu nilai berikut:

  • PlainText- Pesan berisi teks UTF-8 biasa.

  • CustomPayload- Pesan adalah format khusus untuk klien.

  • SSML- Pesan berisi teks yang diformat untuk output suara.

  • Composite- Pesan berisi objek JSON yang lolos yang berisi satu atau beberapa pesan dari grup tempat pesan ditetapkan saat maksud dibuat.

Nilai yang Valid: PlainText | CustomPayload | SSML | Composite

sessionAttributes

Peta pasangan kunci/nilai yang mewakili informasi konteks khusus sesi.

sessionId

Pengenal unik untuk sesi tersebut.

slots

Peta slot maksud nol atau lebih Amazon Lex terdeteksi dari input pengguna selama percakapan.

Amazon Lex membuat daftar resolusi yang berisi kemungkinan nilai untuk slot. Nilai yang dikembalikan ditentukan oleh yang valueSelectionStrategy dipilih ketika jenis slot dibuat atau diperbarui. Jika valueSelectionStrategy diatur keORIGINAL_VALUE, nilai yang diberikan oleh pengguna dikembalikan, jika nilai pengguna mirip dengan nilai slot. Jika valueSelectionStrategy diatur ke TOP_RESOLUTION Amazon Lex mengembalikan nilai pertama dalam daftar resolusi atau, jika tidak ada daftar resolusi, null. Jika Anda tidak menentukan default adalahORIGINAL_VALUE. valueSelectionStrategy

slotToElicit

Jika dialogState yaElicitSlot, mengembalikan nama slot yang Amazon Lex memunculkan nilai.

Respons mengembalikan yang berikut sebagai isi HTTP.

audioStream

Versi audio dari pesan untuk disampaikan kepada pengguna.

Kesalahan

BadGatewayException

Entah bot Amazon Lex masih dibangun, atau salah satu layanan dependen (Amazon Polly, AWS Lambda) gagal dengan kesalahan layanan internal.

Kode Status HTTP: 502

BadRequestException

Validasi permintaan gagal, tidak ada pesan yang dapat digunakan dalam konteksnya, atau pembuatan bot gagal, masih dalam proses, atau berisi perubahan yang belum dibangun.

Kode Status HTTP: 400

ConflictException

Dua klien menggunakan akun AWS yang sama, bot Amazon Lex, dan ID pengguna.

Kode Status HTTP: 409

DependencyFailedException

Salah satu dependensi, seperti AWS Lambda atau Amazon Polly, memberikan pengecualian. Misalnya,

  • Jika Amazon Lex tidak memiliki izin yang cukup untuk memanggil fungsi Lambda.

  • Jika fungsi Lambda membutuhkan waktu lebih dari 30 detik untuk dijalankan.

  • Jika fungsi Lambda pemenuhan mengembalikan Delegate tindakan dialog tanpa menghapus nilai slot apa pun.

Kode Status HTTP: 424

InternalFailureException

Kesalahan layanan internal. Coba lagi panggilannya.

Kode Status HTTP: 500

LimitExceededException

Melebihi batas.

Kode Status HTTP: 429

NotAcceptableException

Header terima dalam permintaan tidak memiliki nilai yang valid.

Kode Status HTTP: 406

NotFoundException

Sumber daya (seperti bot Amazon Lex atau alias) yang disebut tidak ditemukan.

Kode Status HTTP: 404

Lihat Juga

Untuk informasi selengkapnya tentang penggunaan API ini di salah satu AWS SDK khusus bahasa, lihat berikut ini: