PutIntent - 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.

PutIntent

Menciptakan maksud atau menggantikan maksud yang ada.

Untuk menentukan interaksi antara pengguna dan bot Anda, Anda menggunakan satu atau lebih maksud. Untuk bot pemesanan pizza, misalnya, Anda akan membuat OrderPizza maksud.

Untuk membuat intent atau mengganti intent yang ada, Anda harus memberikan yang berikut:

  • Nama niat. Misalnya, OrderPizza.

  • Sampel ucapan. Misalnya, “Bisakah saya memesan pizza, tolong.” dan “Saya ingin memesan pizza.”

  • Informasi yang akan dikumpulkan. Anda menentukan jenis slot untuk informasi yang akan diminta bot Anda dari pengguna. Anda dapat menentukan jenis slot standar, seperti tanggal atau waktu, atau jenis slot khusus seperti ukuran dan kerak pizza.

  • Bagaimana niatnya akan terpenuhi. Anda dapat menyediakan fungsi Lambda atau mengonfigurasi intent untuk mengembalikan informasi maksud ke aplikasi klien. Jika Anda menggunakan fungsi Lambda, ketika semua informasi maksud tersedia, Amazon Lex memanggil fungsi Lambda Anda. Jika Anda mengonfigurasi maksud Anda untuk mengembalikan informasi maksud ke aplikasi klien.

Anda dapat menentukan informasi opsional lainnya dalam permintaan, seperti:

  • Permintaan konfirmasi untuk meminta pengguna mengonfirmasi maksud. Misalnya, “Haruskah saya memesan pizza Anda?”

  • Pernyataan kesimpulan untuk dikirim ke pengguna setelah maksud terpenuhi. Misalnya, “Saya memesan pizza Anda.”

  • Prompt tindak lanjut yang meminta pengguna untuk aktivitas tambahan. Misalnya, bertanya “Apakah Anda ingin memesan minuman dengan pizza Anda?”

Jika Anda menentukan nama intent yang ada untuk memperbarui intent, Amazon Lex mengganti nilai dalam $LATEST versi intent dengan nilai dalam permintaan. Amazon Lex menghapus bidang yang tidak Anda berikan dalam permintaan. Jika Anda tidak menentukan bidang yang diperlukan, Amazon Lex melempar pengecualian. Saat Anda memperbarui $LATEST versi intent, status bidang bot apa pun yang menggunakan $LATEST versi intent akan disetel ke. NOT_BUILT

Untuk informasi selengkapnya, lihat Amazon Lex: Cara Kerjanya.

Operasi ini memerlukan izin utuk tindakan lex:PutIntent.

Minta Sintaks

PUT /intents/name/versions/$LATEST HTTP/1.1 Content-type: application/json { "checksum": "string", "conclusionStatement": { "messages": [ { "content": "string", "contentType": "string", "groupNumber": number } ], "responseCard": "string" }, "confirmationPrompt": { "maxAttempts": number, "messages": [ { "content": "string", "contentType": "string", "groupNumber": number } ], "responseCard": "string" }, "createVersion": boolean, "description": "string", "dialogCodeHook": { "messageVersion": "string", "uri": "string" }, "followUpPrompt": { "prompt": { "maxAttempts": number, "messages": [ { "content": "string", "contentType": "string", "groupNumber": number } ], "responseCard": "string" }, "rejectionStatement": { "messages": [ { "content": "string", "contentType": "string", "groupNumber": number } ], "responseCard": "string" } }, "fulfillmentActivity": { "codeHook": { "messageVersion": "string", "uri": "string" }, "type": "string" }, "inputContexts": [ { "name": "string" } ], "kendraConfiguration": { "kendraIndex": "string", "queryFilterString": "string", "role": "string" }, "outputContexts": [ { "name": "string", "timeToLiveInSeconds": number, "turnsToLive": number } ], "parentIntentSignature": "string", "rejectionStatement": { "messages": [ { "content": "string", "contentType": "string", "groupNumber": number } ], "responseCard": "string" }, "sampleUtterances": [ "string" ], "slots": [ { "defaultValueSpec": { "defaultValueList": [ { "defaultValue": "string" } ] }, "description": "string", "name": "string", "obfuscationSetting": "string", "priority": number, "responseCard": "string", "sampleUtterances": [ "string" ], "slotConstraint": "string", "slotType": "string", "slotTypeVersion": "string", "valueElicitationPrompt": { "maxAttempts": number, "messages": [ { "content": "string", "contentType": "string", "groupNumber": number } ], "responseCard": "string" } } ] }

Parameter Permintaan URI

Permintaan menggunakan parameter URI berikut.

name

Nama niat. Namanya tidak peka huruf besar/kecil.

Nama tidak dapat cocok dengan nama intent bawaan, atau nama intent bawaan dengan “AMAZON.” dihapus. Misalnya, karena ada intent bawaan yang dipanggilAMAZON.HelpIntent, Anda tidak dapat membuat maksud khusus yang dipanggil. HelpIntent

Untuk daftar intent bawaan, lihat Intent Bawaan Standar di Alexa Skills Kit.

Batasan Panjang: Panjang minimum 1. Panjang maksimum 100.

Pola: ^([A-Za-z]_?)+$

Wajib: Ya

Isi Permintaan

Permintaan menerima data berikut dalam format JSON.

checksum

Mengidentifikasi revisi spesifik dari versi. $LATEST

Saat Anda membuat maksud baru, biarkan checksum bidang kosong. Jika Anda menentukan checksum Anda mendapatkan BadRequestException pengecualian.

Saat Anda ingin memperbarui maksud, setel checksum bidang ke checksum revisi terbaru versi. $LATEST Jika Anda tidak menentukan checksum bidang, atau jika checksum tidak cocok dengan $LATEST versi, Anda mendapatkan PreconditionFailedException pengecualian.

Tipe: String

Wajib: Tidak

conclusionStatement

Pernyataan yang Anda ingin Amazon Lex sampaikan kepada pengguna setelah maksud berhasil dipenuhi oleh fungsi Lambda.

Elemen ini relevan hanya jika Anda menyediakan fungsi Lambda di. fulfillmentActivity Jika Anda mengembalikan intent ke aplikasi klien, Anda tidak dapat menentukan elemen ini.

catatan

Itu followUpPrompt dan conclusionStatement saling eksklusif. Anda hanya dapat menentukan satu.

Tipe: Objek Statement

Diperlukan: Tidak

confirmationPrompt

Meminta pengguna untuk mengonfirmasi maksud. Pertanyaan ini harus memiliki jawaban ya atau tidak.

Amazon Lex menggunakan prompt ini untuk memastikan bahwa pengguna mengakui bahwa intent siap untuk dipenuhi. Misalnya, dengan OrderPizza intent, Anda mungkin ingin mengonfirmasi bahwa pesanan sudah benar sebelum menempatkannya. Untuk maksud lain, seperti maksud yang hanya menanggapi pertanyaan pengguna, Anda mungkin tidak perlu meminta konfirmasi kepada pengguna sebelum memberikan informasi.

catatan

Anda harus menyediakan keduanya rejectionStatement danconfirmationPrompt, atau tidak.

Tipe: Objek Prompt

Diperlukan: Tidak

createVersion

Ketika disetel ke true versi bernomor baru dari intent dibuat. Ini sama dengan memanggil CreateIntentVersion operasi. Jika Anda tidak menentukancreateVersion, defaultnya adalahfalse.

Tipe: Boolean

Wajib: Tidak

description

Deskripsi niat.

Jenis: String

Batasan Panjang: Panjang minimum 0. Panjang maksimum 200.

Diperlukan: Tidak

dialogCodeHook

Menentukan fungsi Lambda untuk memanggil untuk setiap input pengguna. Anda dapat memanggil fungsi Lambda ini untuk mempersonalisasi interaksi pengguna.

Misalnya, bot Anda menentukan bahwa penggunanya adalah John. Fungsi Lambda Anda mungkin mengambil informasi John dari basis data backend dan mengisi beberapa nilai. Misalnya, jika Anda menemukan bahwa John tidak toleran terhadap gluten, Anda dapat mengatur slot maksud yang sesuai,GlutenIntolerant, ke true. Anda mungkin menemukan nomor telepon John dan mengatur atribut sesi yang sesuai.

Tipe: Objek CodeHook

Diperlukan: Tidak

followUpPrompt

Amazon Lex menggunakan prompt ini untuk meminta aktivitas tambahan setelah memenuhi maksud. Misalnya, setelah OrderPizza intent terpenuhi, Anda dapat meminta pengguna untuk memesan minuman.

Tindakan yang dilakukan Amazon Lex bergantung pada respons pengguna, sebagai berikut:

  • Jika pengguna mengatakan “Ya” itu merespons dengan prompt klarifikasi yang dikonfigurasi untuk bot.

  • jika pengguna mengatakan “Ya” dan melanjutkan dengan ucapan yang memicu maksud, ia memulai percakapan untuk maksud tersebut.

  • Jika pengguna mengatakan “Tidak” itu merespons dengan pernyataan penolakan yang dikonfigurasi untuk prompt tindak lanjut.

  • Jika tidak mengenali ucapannya, ia mengulangi prompt tindak lanjut lagi.

followUpPromptBidang dan conclusionStatement lapangan saling eksklusif. Anda hanya dapat menentukan satu.

Tipe: Objek FollowUpPrompt

Diperlukan: Tidak

fulfillmentActivity

Wajib. Menjelaskan bagaimana niat terpenuhi. Misalnya, setelah pengguna memberikan semua informasi untuk pesanan pizza, fulfillmentActivity mendefinisikan bagaimana bot melakukan pemesanan dengan toko pizza lokal.

Anda dapat mengonfigurasi Amazon Lex untuk mengembalikan semua informasi intent ke aplikasi klien, atau mengarahkannya untuk memanggil fungsi Lambda yang dapat memproses intent (misalnya, melakukan pemesanan dengan restoran pizza).

Tipe: Objek FulfillmentActivity

Diperlukan: Tidak

inputContexts

Larik InputContext objek yang mencantumkan konteks yang harus aktif untuk Amazon Lex untuk memilih maksud dalam percakapan dengan pengguna.

Tipe: Array objek InputContext

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

Diperlukan: Tidak

kendraConfiguration

Informasi konfigurasi diperlukan untuk menggunakan AMAZON.KendraSearchIntent intent untuk menyambung ke indeks Amazon Kendra. Untuk informasi selengkapnya, lihat AMAZON. KendraSearchIntent.

Tipe: Objek KendraConfiguration

Diperlukan: Tidak

outputContexts

Array OutputContext objek yang mencantumkan konteks yang mengaktifkan intent saat intent terpenuhi.

Tipe: Array objek OutputContext

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

Diperlukan: Tidak

parentIntentSignature

Pengidentifikasi unik untuk maksud bawaan yang menjadi dasar maksud ini. Untuk menemukan tanda tangan untuk intent, lihat Intent Bawaan Standar di Alexa Skills Kit.

Tipe: String

Wajib: Tidak

rejectionStatement

Ketika pengguna menjawab “tidak” untuk pertanyaan yang didefinisikan dalamconfirmationPrompt, Amazon Lex merespons dengan pernyataan ini untuk mengakui bahwa maksud tersebut dibatalkan.

catatan

Anda harus menyediakan keduanya rejectionStatement danconfirmationPrompt, atau tidak.

Tipe: Objek Statement

Diperlukan: Tidak

sampleUtterances

Array ucapan (string) yang mungkin dikatakan pengguna untuk memberi sinyal maksud. Misalnya, “Saya ingin {PizzaSize} pizza”, “Pesan {Kuantitas} {PizzaSize} pizza”.

Dalam setiap ucapan, nama slot dilampirkan dalam kurung kurawal.

Tipe: Array string.

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

Batasan Panjang: Panjang minimum 1. Panjang maksimum 200.

Diperlukan: Tidak

slots

Sebuah array slot niat. Saat runtime, Amazon Lex memperoleh nilai slot yang diperlukan dari pengguna menggunakan petunjuk yang ditentukan dalam slot. Untuk informasi selengkapnya, lihat Amazon Lex: Cara Kerjanya.

Tipe: Array objek Slot

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

Diperlukan: Tidak

Sintaksis Respons

HTTP/1.1 200 Content-type: application/json { "checksum": "string", "conclusionStatement": { "messages": [ { "content": "string", "contentType": "string", "groupNumber": number } ], "responseCard": "string" }, "confirmationPrompt": { "maxAttempts": number, "messages": [ { "content": "string", "contentType": "string", "groupNumber": number } ], "responseCard": "string" }, "createdDate": number, "createVersion": boolean, "description": "string", "dialogCodeHook": { "messageVersion": "string", "uri": "string" }, "followUpPrompt": { "prompt": { "maxAttempts": number, "messages": [ { "content": "string", "contentType": "string", "groupNumber": number } ], "responseCard": "string" }, "rejectionStatement": { "messages": [ { "content": "string", "contentType": "string", "groupNumber": number } ], "responseCard": "string" } }, "fulfillmentActivity": { "codeHook": { "messageVersion": "string", "uri": "string" }, "type": "string" }, "inputContexts": [ { "name": "string" } ], "kendraConfiguration": { "kendraIndex": "string", "queryFilterString": "string", "role": "string" }, "lastUpdatedDate": number, "name": "string", "outputContexts": [ { "name": "string", "timeToLiveInSeconds": number, "turnsToLive": number } ], "parentIntentSignature": "string", "rejectionStatement": { "messages": [ { "content": "string", "contentType": "string", "groupNumber": number } ], "responseCard": "string" }, "sampleUtterances": [ "string" ], "slots": [ { "defaultValueSpec": { "defaultValueList": [ { "defaultValue": "string" } ] }, "description": "string", "name": "string", "obfuscationSetting": "string", "priority": number, "responseCard": "string", "sampleUtterances": [ "string" ], "slotConstraint": "string", "slotType": "string", "slotTypeVersion": "string", "valueElicitationPrompt": { "maxAttempts": number, "messages": [ { "content": "string", "contentType": "string", "groupNumber": number } ], "responseCard": "string" } } ], "version": "string" }

Elemen Respons

Jika tindakan berhasil, layanan mengirimkan kembali respons HTTP 200.

Layanan mengembalikan data berikut dalam format JSON.

checksum

Checksum $LATEST versi maksud yang dibuat atau diperbarui.

Jenis: String

conclusionStatement

Setelah fungsi Lambda yang ditentukan dalam fulfillmentActivity intent memenuhi intent, Amazon Lex menyampaikan pernyataan ini kepada pengguna.

Tipe: Objek Statement

confirmationPrompt

Jika didefinisikan dalam maksud, Amazon Lex meminta pengguna untuk mengonfirmasi maksud sebelum memenuhinya.

Tipe: Objek Prompt

createdDate

Tanggal dimana niat itu dibuat.

Tipe: Timestamp

createVersion

Truejika versi baru dari intent telah dibuat. Jika createVersion bidang tidak ditentukan dalam permintaan, createVersion bidang diatur ke false dalam respons.

Jenis: Boolean

description

Deskripsi niat.

Jenis: String

Batasan Panjang: Panjang minimum 0. Panjang maksimum 200.

dialogCodeHook

Jika didefinisikan dalam intent, Amazon Lex memanggil fungsi Lambda ini untuk setiap input pengguna.

Tipe: Objek CodeHook

followUpPrompt

Jika didefinisikan dalam intent, Amazon Lex menggunakan prompt ini untuk meminta aktivitas pengguna tambahan setelah intent terpenuhi.

Tipe: Objek FollowUpPrompt

fulfillmentActivity

Jika didefinisikan dalam intent, Amazon Lex memanggil fungsi Lambda ini untuk memenuhi intent setelah pengguna memberikan semua informasi yang diperlukan oleh intent.

Tipe: Objek FulfillmentActivity

inputContexts

Larik InputContext objek yang mencantumkan konteks yang harus aktif untuk Amazon Lex untuk memilih maksud dalam percakapan dengan pengguna.

Tipe: Array objek InputContext

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

kendraConfiguration

Informasi konfigurasi, jika ada, diperlukan untuk terhubung ke indeks Amazon Kendra dan menggunakan intent. AMAZON.KendraSearchIntent

Tipe: Objek KendraConfiguration

lastUpdatedDate

Tanggal dimana intent diperbarui. Saat Anda membuat sumber daya, tanggal pembuatan dan tanggal pembaruan terakhir adalah sama.

Tipe: Timestamp

name

Nama niat.

Jenis: String

Panjang Batasan: Panjang minimum 1. Panjang maksimum 100.

Pola: ^([A-Za-z]_?)+$

outputContexts

Array OutputContext objek yang mencantumkan konteks yang mengaktifkan intent saat intent terpenuhi.

Tipe: Array objek OutputContext

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

parentIntentSignature

Pengidentifikasi unik untuk maksud bawaan yang menjadi dasar maksud ini.

Jenis: String

rejectionStatement

Jika pengguna menjawab “tidak” untuk pertanyaan yang didefinisikan di confirmationPrompt Amazon Lex merespons dengan pernyataan ini untuk mengakui bahwa maksud tersebut dibatalkan.

Tipe: Objek Statement

sampleUtterances

Array contoh ucapan yang dikonfigurasi untuk maksud.

Tipe: Array string.

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

Batasan Panjang: Panjang minimum 1. Panjang maksimum 200.

slots

Sebuah array slot intent yang dikonfigurasi untuk maksud.

Tipe: Array objek Slot

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

version

Versi maksudnya. Untuk maksud baru, versinya selalu$LATEST.

Jenis: String

Batasan Panjang: Panjang minimum 1. Panjang maksimum adalah 64.

Pola: \$LATEST|[0-9]+

Kesalahan

BadRequestException

Permintaan tidak terbentuk dengan baik. Misalnya, nilai tidak valid atau bidang wajib hilang. Periksa nilai bidang, dan coba lagi.

Kode Status HTTP: 400

ConflictException

Ada konflik yang memproses permintaan tersebut. Coba permintaan Anda lagi.

Kode Status HTTP: 409

InternalFailureException

Terjadi kesalahan internal Amazon Lex. Coba permintaan Anda lagi.

Kode Status HTTP: 500

LimitExceededException

Permintaan melebihi batas. Coba permintaan Anda lagi.

Kode Status HTTP: 429

PreconditionFailedException

Checksum sumber daya yang Anda coba ubah tidak cocok dengan checksum dalam permintaan. Periksa checksum sumber daya dan coba lagi.

Kode Status HTTP: 412

Lihat Juga

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