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 nilainya
text/plain; charset=utf-8
, Amazon Lex mengembalikan teks dalam respons. -
Jika nilai dimulai dengan
audio/
, Amazon Lex mengembalikan pidato dalam respons. Amazon Lex menggunakan Amazon Polly untuk menghasilkan pidato dalam konfigurasi yang Anda tentukan. Misalnya, jika Anda menentukanaudio/mpeg
sebagai nilai, Amazon Lex mengembalikan ucapan dalam format MPEG. -
Jika nilainya
audio/pcm
, pidato dikembalikan sepertiaudio/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 dalamPutSession
permintaan, isi tampilan ringkasan baru menggantikan tampilan ringkasan lama. Misalnya, jikaGetSession
permintaan mengembalikan tiga maksud dalam tampilan ringkasan dan Anda memanggilPutSession
dengan satu maksud dalam tampilan ringkasan, panggilan berikutnya hanyaGetSession
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.
encodedMessage
Bidang 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 menggunakanencodedMessage
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. JikavalueSelectionStrategy
diatur keORIGINAL_VALUE
, nilai yang diberikan oleh pengguna dikembalikan, jika nilai pengguna mirip dengan nilai slot. JikavalueSelectionStrategy
diatur keTOP_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: