

Pemberitahuan akhir dukungan: Pada 15 September 2025, AWS akan menghentikan dukungan untuk Amazon Lex V1. Setelah 15 September 2025, Anda tidak lagi dapat mengakses konsol Amazon Lex V1 atau sumber daya Amazon Lex V1. Jika Anda menggunakan Amazon Lex V2, lihat [panduan Amazon Lex V2](https://docs.aws.amazon.com/lexv2/latest/dg/what-is.html) sebagai gantinya. 

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

# Amazon Lex: Cara Kerjanya
<a name="how-it-works"></a>

Amazon Lex memungkinkan Anda membangun aplikasi menggunakan antarmuka ucapan atau teks yang didukung oleh teknologi yang sama yang mendukung Amazon Alexa. Berikut adalah langkah-langkah umum yang Anda lakukan saat bekerja dengan Amazon Lex:

1. Buat bot dan konfigurasikan dengan satu atau lebih maksud yang ingin Anda dukung. Konfigurasikan bot sehingga memahami tujuan (maksud) pengguna, terlibat dalam percakapan dengan pengguna untuk memperoleh informasi, dan memenuhi maksud pengguna.

1. Uji botnya. Anda dapat menggunakan klien jendela uji yang disediakan oleh konsol Amazon Lex.

1. Publikasikan versi dan buat alias.

1. Menyebarkan bot. Anda dapat menyebarkan bot pada platform seperti aplikasi seluler atau platform perpesanan seperti Facebook Messenger. 

Sebelum memulai, biasakan diri Anda dengan konsep dan terminologi inti Amazon Lex berikut:
+ **Bot** — Bot melakukan tugas otomatis seperti memesan pizza, memesan hotel, memesan bunga, dan sebagainya. Bot Amazon Lex didukung oleh kemampuan Automatic Speech Recognition (ASR) dan Natural Language Understanding (NLU). Setiap bot harus memiliki nama unik di dalam akun Anda.

   

  Bot Amazon Lex dapat memahami masukan pengguna yang disediakan dengan teks atau ucapan dan percakapan dalam bahasa alami. Anda dapat membuat fungsi Lambda dan menambahkannya sebagai kait kode dalam konfigurasi intent untuk melakukan validasi data pengguna dan tugas pemenuhan. 

   
+ **Intent** — Intent mewakili tindakan yang ingin dilakukan pengguna. Anda membuat bot untuk mendukung satu atau lebih maksud terkait. Misalnya, Anda dapat membuat bot yang memesan pizza dan minuman. Untuk setiap maksud, Anda memberikan informasi yang diperlukan berikut: 

   
  + **Nama maksud — Nama** deskriptif untuk maksud tersebut. Misalnya, **OrderPizza**. Nama intent harus unik dalam akun Anda.
  + **Contoh ucapan** — Bagaimana pengguna dapat menyampaikan maksud tersebut. Misalnya, pengguna mungkin mengatakan “Bisakah saya memesan pizza” atau “Saya ingin memesan pizza”. 
  + **Cara memenuhi maksud** — Bagaimana Anda ingin memenuhi maksud setelah pengguna memberikan informasi yang diperlukan (misalnya, memesan dengan toko pizza lokal). Kami menyarankan Anda membuat fungsi Lambda untuk memenuhi maksud.

     

     Anda dapat mengonfigurasi intent secara opsional sehingga Amazon Lex hanya mengembalikan informasi kembali ke aplikasi klien untuk melakukan pemenuhan yang diperlukan. 

     

  Selain maksud khusus seperti memesan pizza, Amazon Lex juga menyediakan maksud bawaan untuk mengatur bot Anda dengan cepat. Untuk informasi selengkapnya, lihat [Intent dan Jenis Slot Bawaan](howitworks-builtins.md). 

   
+ **Slot** — Niat dapat memerlukan nol atau lebih slot atau parameter. Anda menambahkan slot sebagai bagian dari konfigurasi maksud. Saat runtime, Amazon Lex meminta pengguna untuk nilai slot tertentu. Pengguna harus memberikan nilai untuk semua slot *yang diperlukan* sebelum Amazon Lex dapat memenuhi maksud tersebut.

   

  Misalnya, `OrderPizza` intent membutuhkan slot seperti ukuran pizza, jenis kerak, dan jumlah pizza. Dalam konfigurasi maksud, Anda menambahkan slot ini. Untuk setiap slot, Anda memberikan jenis slot dan prompt untuk Amazon Lex untuk mengirim ke klien untuk mendapatkan data dari pengguna. Seorang pengguna dapat membalas dengan nilai slot yang mencakup kata-kata tambahan, seperti “pizza besar tolong” atau “mari kita tetap dengan kecil.” Amazon Lex masih bisa memahami nilai slot yang dimaksud. 

   
+ **Jenis slot** — Setiap slot memiliki tipe. Anda dapat membuat jenis slot khusus Anda atau menggunakan jenis slot bawaan. Setiap jenis slot harus memiliki nama unik di akun Anda. Misalnya, Anda dapat membuat dan menggunakan jenis slot berikut untuk `OrderPizza` intent:

   
  + Ukuran - Dengan nilai enumerasi`Small`,, `Medium` dan. `Large`
  + Kerak — Dengan nilai enumerasi dan. `Thick` `Thin`

   

  

  Amazon Lex juga menyediakan tipe slot bawaan. Misalnya, `AMAZON.NUMBER` adalah jenis slot built-in yang dapat Anda gunakan untuk jumlah pizza yang dipesan. Untuk informasi selengkapnya, lihat [Intent dan Jenis Slot Bawaan](howitworks-builtins.md).

Untuk daftar Wilayah AWS tempat Amazon Lex tersedia, lihat [Wilayah dan Titik Akhir AWS](https://docs.aws.amazon.com/general/latest/gr/rande.html#lex_region) di *Referensi Umum Amazon Web Services*.

Topik berikut memberikan informasi tambahan. Kami menyarankan Anda memeriksanya secara berurutan dan kemudian menjelajahi [Memulai dengan Amazon Lex](getting-started.md) latihannya.

**Topics**
+ [Bahasa yang Didukung di Amazon Lex](how-it-works-language.md)
+ [Model Pemrograman](programming-model.md)
+ [Mengelola Pesan](howitworks-manage-prompts.md)
+ [Mengelola Konteks Percakapan](context-mgmt.md)
+ [Menggunakan Skor Keyakinan](confidence-scores.md)
+ [Log Percakapan](conversation-logs.md)
+ [Mengelola Sesi Dengan Amazon Lex API](how-session-api.md)
+ [Opsi Penerapan Bot](chatbot-service.md)
+ [Intent dan Jenis Slot Bawaan](howitworks-builtins.md)
+ [Jenis Slot Kustom](howitworks-custom-slots.md)
+ [Slot Obfuscation](how-obfuscate.md)
+ [Analisis Sentimen](sentiment-analysis.md)
+ [Menandai Sumber Daya Amazon Lex Anda](how-it-works-tags.md)

# Bahasa yang Didukung di Amazon Lex
<a name="how-it-works-language"></a>

Amazon Lex V1 mendukung berbagai bahasa dan lokal. Bahasa yang didukung dan fitur yang mendukungnya tercantum dalam tabel berikut. 

Amazon Lex V2 mendukung bahasa tambahan, lihat [Bahasa yang Didukung di Amazon Lex V2](https://docs.aws.amazon.com/lexv2/latest/dg/how-languages.html)

<a name="topiclist"></a>

## Bahasa dan Lokal yang Didukung
<a name="supported-languages-and-locales"></a>

Amazon Lex V1 mendukung bahasa dan lokal berikut.


| Kode | Bahasa dan lokal | 
| --- | --- | 
| De-de | Jerman (Jerman) | 
| En-au | Inggris (Australia) | 
| En-GB | Inggris (UK) | 
| En-in | Inggris (India) | 
| en-US | Inggris (US) | 
| es-419 | Spanyol (Amerika Latin) | 
| ES-es | Spanyol (Spanyol) | 
| es-AS | Spanyol (AS) | 
| FR-Ca | Perancis (Kanada) | 
| FR-fr | Prancis (Prancis) | 
| It-itu | Italia (Italia) | 
| Ja-JP | Jepang (Japan) | 
| Ko-kr | Korea (Korea) | 

## Bahasa dan Lokal yang Didukung oleh Fitur Amazon Lex
<a name="supported-languages-features"></a>

Semua fitur Amazon Lex didukung dalam semua bahasa dan lokal kecuali seperti yang tercantum dalam tabel ini.


| Fitur | Bahasa dan lokal yang didukung | 
| --- | --- | 
| [Mengatur Konteks Maksud](context-mgmt-active-context.md) | Inggris (AS) (en-US) | 

# Model Pemrograman
<a name="programming-model"></a>

*Bot* adalah jenis sumber daya utama di Amazon Lex. Jenis sumber daya lainnya di Amazon Lex adalah *maksud*, *jenis slot*, *alias*, dan asosiasi *saluran bot*. 

Anda membuat bot menggunakan konsol Amazon Lex atau API pembuatan model. Konsol menyediakan antarmuka pengguna grafis yang Anda gunakan untuk membangun bot siap produksi untuk aplikasi Anda. Jika mau, Anda dapat menggunakan API pembuatan model melalui AWS CLI atau program kustom Anda sendiri untuk membuat bot. 

Setelah Anda membuat bot, Anda menerapkannya di salah satu [platform yang didukung](https://docs.aws.amazon.com/lex/latest/dg/chatbot-service.html) atau mengintegrasikannya ke dalam aplikasi Anda sendiri. Saat pengguna berinteraksi dengan bot, aplikasi klien mengirimkan permintaan ke bot menggunakan API runtime Amazon Lex. Misalnya, ketika pengguna mengatakan “Saya ingin memesan pizza,” klien Anda mengirimkan masukan ini ke Amazon Lex menggunakan salah satu operasi API runtime. Pengguna dapat memberikan masukan sebagai ucapan atau teks. 

Anda juga dapat membuat fungsi Lambda dan menggunakannya dalam maksud. Gunakan kait kode fungsi Lambda ini untuk melakukan aktivitas runtime seperti inisialisasi, validasi input pengguna, dan pemenuhan maksud. Bagian berikut memberikan informasi tambahan.

**Topics**
+ [Operasi API Pembuatan Model](#programming-model-build-time-api)
+ [Operasi API Runtime](#programming-model-runtime-api)
+ [Lambda Berfungsi Sebagai Kait Kode](#prog-model-lambda)

## Operasi API Pembuatan Model
<a name="programming-model-build-time-api"></a>

Untuk membuat bot, intent, dan jenis slot secara terprogram, gunakan operasi API pembuatan model. Anda juga dapat menggunakan API pembuatan model untuk mengelola, memperbarui, dan menghapus sumber daya untuk bot Anda. Operasi API pembuatan model meliputi:
+ [PutBot](API_PutBot.md),[PutBotAlias](API_PutBotAlias.md),[PutIntent](API_PutIntent.md), dan [PutSlotType](API_PutSlotType.md) untuk membuat dan memperbarui bot, alias bot, maksud, dan jenis slot, masing-masing.
+ [CreateBotVersion](API_CreateBotVersion.md),[CreateIntentVersion](API_CreateIntentVersion.md), dan [CreateSlotTypeVersion](API_CreateSlotTypeVersion.md) untuk membuat dan mempublikasikan versi bot, maksud, dan jenis slot Anda, masing-masing.
+ [GetBot](API_GetBot.md)dan [GetBots](API_GetBots.md) untuk mendapatkan bot tertentu atau daftar bot yang telah Anda buat, masing-masing.
+ [GetIntent](API_GetIntent.md)dan [GetIntents](API_GetIntents.md) untuk mendapatkan maksud tertentu atau daftar maksud yang telah Anda buat, masing-masing.
+ [GetSlotType](API_GetSlotType.md)dan [GetSlotTypes](API_GetSlotTypes.md) untuk mendapatkan jenis slot tertentu atau daftar jenis slot yang telah Anda buat, masing-masing.
+ [GetBuiltinIntent](API_GetBuiltinIntent.md),[GetBuiltinIntents](API_GetBuiltinIntents.md), dan [GetBuiltinSlotTypes](API_GetBuiltinSlotTypes.md) untuk mendapatkan maksud bawaan Amazon Lex, daftar maksud bawaan Amazon Lex, atau daftar jenis slot bawaan yang dapat Anda gunakan di bot Anda, masing-masing.
+ [GetBotChannelAssociation](API_GetBotChannelAssociation.md)dan [GetBotChannelAssociations](API_GetBotChannelAssociations.md) untuk mendapatkan hubungan antara bot Anda dan platform perpesanan atau daftar asosiasi antara bot dan platform perpesanan Anda, masing-masing.
+ [DeleteBot](API_DeleteBot.md),[DeleteBotAlias](API_DeleteBotAlias.md),, [DeleteBotChannelAssociation](API_DeleteBotChannelAssociation.md)[DeleteIntent](API_DeleteIntent.md), dan [DeleteSlotType](API_DeleteSlotType.md) untuk menghapus sumber daya yang tidak dibutuhkan di akun Anda.

Anda dapat menggunakan API pembuatan model untuk membuat alat khusus untuk mengelola sumber daya Amazon Lex Anda. Misalnya, ada batas 100 versi masing-masing untuk bot, maksud, dan jenis slot. Anda dapat menggunakan API pembuatan model untuk membuat alat yang secara otomatis menghapus versi lama saat bot Anda mendekati batas.

Untuk memastikan bahwa hanya satu operasi yang memperbarui sumber daya pada satu waktu, Amazon Lex menggunakan checksum. Saat Anda menggunakan operasi `Put` API—[PutBot](API_PutBot.md), [PutBotAlias](API_PutBotAlias.md)[PutIntent](API_PutIntent.md), atau [PutSlotType](API_PutSlotType.md) —untuk memperbarui sumber daya, Anda harus meneruskan checksum sumber daya saat ini dalam permintaan. Jika dua alat mencoba memperbarui sumber daya pada saat yang sama, keduanya menyediakan checksum saat ini yang sama. Permintaan pertama untuk mencapai Amazon Lex cocok dengan checksum sumber daya saat ini. Pada saat permintaan kedua tiba, checksum berbeda. Alat kedua menerima `PreconditionFailedException` pengecualian dan pembaruan berakhir.

`Get`Operasi—[GetBot](API_GetBot.md),[GetIntent](API_GetIntent.md), dan [GetSlotType](API_GetSlotType.md) —pada akhirnya konsisten. Jika Anda menggunakan `Get` operasi segera setelah Anda membuat atau memodifikasi sumber daya dengan salah satu `Put` operasi, perubahan mungkin tidak dikembalikan. Setelah `Get` operasi mengembalikan pembaruan terbaru, ia selalu mengembalikan sumber daya yang diperbarui hingga sumber daya diubah lagi. Anda dapat menentukan apakah sumber daya yang diperbarui telah dikembalikan dengan melihat checksum.

## Operasi API Runtime
<a name="programming-model-runtime-api"></a>

 Aplikasi klien menggunakan operasi API runtime berikut untuk berkomunikasi dengan Amazon Lex: 
+ [PostContent](API_runtime_PostContent.md)Mengambil ucapan atau input teks dan mengembalikan informasi maksud dan pesan teks atau ucapan untuk disampaikan kepada pengguna. Saat ini, Amazon Lex mendukung format audio berikut:

   

  Format audio input - LPCM dan Opus 

  Format audio keluaran - MPEG, OGG, dan PCM

   

  `PostContent`Operasi ini mendukung input audio pada 8 kHz dan 16 kHz. Aplikasi di mana pengguna akhir berbicara dengan Amazon Lex melalui telepon, seperti pusat panggilan otomatis, dapat mengirimkan audio 8 kHz secara langsung. 

   
+ [PostText](API_runtime_PostText.md)— Mengambil teks sebagai masukan dan mengembalikan informasi maksud dan pesan teks untuk disampaikan kepada pengguna.

Aplikasi klien Anda menggunakan API runtime untuk memanggil bot Amazon Lex tertentu untuk memproses ucapan — teks pengguna atau input suara. Misalnya, seorang pengguna mengatakan “Saya ingin pizza.” Klien mengirimkan input pengguna ini ke bot menggunakan salah satu operasi API runtime Amazon Lex. Dari input pengguna, Amazon Lex mengenali bahwa permintaan pengguna adalah untuk `OrderPizza` maksud yang ditentukan dalam bot. Amazon Lex melibatkan pengguna dalam percakapan untuk mengumpulkan informasi yang diperlukan, atau data slot, seperti ukuran pizza, topping, dan jumlah pizza. Setelah pengguna menyediakan semua data slot yang diperlukan, Amazon Lex akan memanggil hook kode fungsi Lambda untuk memenuhi intent, atau mengembalikan data maksud ke klien, bergantung pada cara maksud dikonfigurasi.

Gunakan [PostContent](API_runtime_PostContent.md) operasi saat bot Anda menggunakan input ucapan. Misalnya, aplikasi call center otomatis dapat mengirim pidato ke bot Amazon Lex alih-alih agen untuk menjawab pertanyaan pelanggan. Anda dapat menggunakan format audio 8 kHz untuk mengirim audio langsung dari telepon ke Amazon Lex.

Jendela pengujian di konsol Amazon Lex menggunakan [PostContent](API_runtime_PostContent.md) API untuk mengirim permintaan teks dan ucapan ke Amazon Lex. Anda menggunakan jendela tes ini dalam [Memulai dengan Amazon Lex](getting-started.md) latihan.

## Lambda Berfungsi Sebagai Kait Kode
<a name="prog-model-lambda"></a>

Anda dapat mengonfigurasi bot Amazon Lex Anda untuk menjalankan fungsi Lambda sebagai pengait kode. Kait kode dapat melayani berbagai tujuan:
+ Menyesuaikan interaksi pengguna—Misalnya, ketika Joe meminta topping pizza yang tersedia, Anda dapat menggunakan pengetahuan sebelumnya tentang pilihan Joe untuk menampilkan subset topping.
+ Memvalidasi input pengguna — misalkan Jen ingin mengambil bunga setelah berjam-jam. Anda dapat memvalidasi waktu input Jen dan mengirim respons yang sesuai.
+ Memenuhi niat pengguna — Setelah Joe memberikan semua informasi untuk pesanan pizzanya, Amazon Lex dapat memanggil fungsi Lambda untuk memesan dengan restoran pizza lokal.

Saat mengonfigurasi intent, Anda menentukan fungsi Lambda sebagai kait kode di tempat berikut: 
+ Kait kode dialog untuk inisialisasi dan validasi—Fungsi Lambda ini dipanggil pada setiap input pengguna, dengan asumsi Amazon Lex memahami maksud pengguna.
+ Kait kode pemenuhan—Fungsi Lambda ini dipanggil setelah pengguna menyediakan semua data slot yang diperlukan untuk memenuhi maksud.

Anda memilih intent dan mengatur kait kode di konsol Amazon Lex, seperti yang ditunjukkan pada tangkapan layar berikut:

![\[Konsol Amazon Lex menunjukkan kait kode fungsi Lambda.\]](http://docs.aws.amazon.com/id_id/lex/latest/dg/images/how-works-10.png)


Anda juga dapat mengatur kait kode menggunakan `fulfillmentActivity` bidang `dialogCodeHook` dan dalam [PutIntent](API_PutIntent.md) operasi.

Satu fungsi Lambda dapat melakukan inisialisasi, validasi, dan pemenuhan. Data peristiwa yang diterima fungsi Lambda memiliki bidang yang mengidentifikasi pemanggil sebagai dialog atau hook kode pemenuhan. Anda dapat menggunakan informasi ini untuk menjalankan bagian yang sesuai dari kode Anda.

Anda dapat menggunakan fungsi Lambda untuk membangun bot yang dapat menavigasi dialog kompleks. Anda menggunakan `dialogAction` bidang dalam respons fungsi Lambda untuk mengarahkan Amazon Lex untuk mengambil tindakan tertentu. Misalnya, Anda dapat menggunakan tindakan `ElicitSlot` dialog untuk memberi tahu Amazon Lex agar meminta nilai slot yang tidak diperlukan kepada pengguna. Jika Anda memiliki prompt klarifikasi yang ditentukan, Anda dapat menggunakan tindakan `ElicitIntent` dialog untuk mendapatkan maksud baru ketika pengguna selesai dengan yang sebelumnya.

Untuk informasi selengkapnya, lihat [Menggunakan Fungsi Lambda](using-lambda.md).

# Mengelola Pesan
<a name="howitworks-manage-prompts"></a>

**Topics**
+ [Jenis Pesan](#msg-prompts-msg-types)
+ [Konteks untuk Mengkonfigurasi Pesan](#msg-prompts-context-for-msgs)
+ [Format Pesan yang Didukung](#msg-prompts-formats)
+ [Grup Pesan](#message-groups)
+ [Kartu Respons](#msg-prompts-resp-card)

Saat Anda membuat bot, Anda dapat mengonfigurasi pesan klarifikasi atau informasi yang ingin Anda kirim ke klien. Pertimbangkan contoh berikut:
+ Anda dapat mengonfigurasi bot Anda dengan prompt klarifikasi berikut: 

  ```
  I don't understand. What would you like to do?
  ```

  Amazon Lex mengirimkan pesan ini ke klien jika tidak memahami maksud pengguna. 

   
+ Misalkan Anda membuat bot untuk mendukung maksud yang disebut`OrderPizza`. Untuk pesanan pizza, Anda ingin pengguna memberikan informasi seperti ukuran pizza, topping, dan jenis kerak. Anda dapat mengonfigurasi petunjuk berikut:

  ```
  What size pizza do you want?
  What toppings do you want?
  Do you want thick or thin crust?
  ```

  Setelah Amazon Lex menentukan maksud pengguna untuk memesan pizza, Amazon Lex mengirimkan pesan ini ke klien untuk mendapatkan informasi dari pengguna.

Bagian ini menjelaskan merancang interaksi pengguna dalam konfigurasi bot Anda. 

## Jenis Pesan
<a name="msg-prompts-msg-types"></a>

Pesan dapat berupa prompt atau pernyataan.
+ *Prompt* biasanya merupakan pertanyaan dan mengharapkan respons pengguna. 
+ *Pernyataan* bersifat informasional. Ia tidak mengharapkan respon.

Pesan dapat mencakup referensi ke slot, atribut sesi, dan atribut permintaan. Saat runtime, Amazon Lex mengganti referensi ini dengan nilai aktual. 

Untuk merujuk ke nilai slot yang telah ditetapkan, gunakan sintaks berikut:

```
{SlotName} 
```

Untuk merujuk ke atribut sesi, gunakan sintaks berikut:

```
[SessionAttributeName] 
```

Untuk merujuk ke atribut permintaan, gunakan sintaks berikut:

```
((RequestAttributeName)) 
```

Pesan dapat mencakup nilai slot, atribut sesi, dan atribut permintaan. 

Misalnya, Anda mengonfigurasi pesan berikut dalam OrderPizza maksud bot Anda:

```
"Hey [FirstName], your {PizzaTopping} pizza will arrive in [DeliveryTime] minutes." 
```

Pesan ini mengacu pada atribut slot (`PizzaTopping`) dan session (`FirstName`dan`DeliveryTime`). Saat runtime, Amazon Lex mengganti placeholder ini dengan nilai dan mengembalikan pesan berikut ke klien:

```
"Hey John, your cheese pizza will arrive in 30 minutes." 
```

Untuk menyertakan tanda kurung ([]) atau tanda kurung (\$1\$1) dalam pesan, gunakan karakter escape garis miring terbalik (\$1). Misalnya, pesan berikut mencakup kurung kurawal dan tanda kurung siku: 

```
\{Text\} \[Text\]
```

Teks yang dikembalikan ke aplikasi klien terlihat seperti ini:

```
{Text} [Text]
```

Untuk informasi tentang atribut sesi, lihat operasi API runtime [PostText](API_runtime_PostText.md) dan[PostContent](API_runtime_PostContent.md). Sebagai contoh, lihat [Pesan Perjalanan](ex-book-trip.md). 

Fungsi Lambda juga dapat menghasilkan pesan dan mengembalikannya ke Amazon Lex untuk dikirim ke pengguna. Jika menambahkan fungsi Lambda saat mengonfigurasi maksud, Anda dapat membuat pesan secara dinamis. Dengan memberikan pesan saat mengonfigurasi bot Anda, Anda dapat menghilangkan kebutuhan untuk membuat prompt di fungsi Lambda Anda.

## Konteks untuk Mengkonfigurasi Pesan
<a name="msg-prompts-context-for-msgs"></a>

Saat Anda membuat bot, Anda dapat membuat pesan dalam konteks yang berbeda, seperti permintaan klarifikasi di bot, petunjuk nilai slot, dan pesan dari maksud. Amazon Lex memilih pesan yang sesuai di setiap konteks untuk kembali ke pengguna Anda. Anda dapat memberikan grup pesan untuk setiap konteks. Jika ya, Amazon Lex secara acak memilih satu pesan dari grup. Anda juga dapat menentukan format pesan atau mengelompokkan pesan bersama-sama. Untuk informasi selengkapnya, lihat [Format Pesan yang Didukung](#msg-prompts-formats).

Jika memiliki fungsi Lambda yang terkait dengan intent, Anda dapat mengganti pesan apa pun yang dikonfigurasi pada waktu pembuatan. Namun, fungsi Lambda tidak diperlukan untuk menggunakan salah satu pesan ini.

### Pesan Bot
<a name="msg-prompts-bot"></a>

Anda dapat mengonfigurasi bot Anda dengan petunjuk klarifikasi dan pesan akhir sesi. Saat runtime, Amazon Lex menggunakan prompt klarifikasi ** jika tidak memahami maksud pengguna. Anda dapat mengonfigurasi berapa kali Amazon Lex meminta klarifikasi sebelum mengirim pesan akhir sesi. Anda mengonfigurasi pesan tingkat bot di bagian **Penanganan Kesalahan** pada konsol Amazon Lex, seperti pada gambar berikut:

![\[Bagian penanganan kesalahan di tab editor konsol. Permintaan klarifikasi dan frasa hang-up dapat ditentukan.\]](http://docs.aws.amazon.com/id_id/lex/latest/dg/images/how-works-20.png)


Dengan API, Anda mengonfigurasi pesan dengan menyetel `abortStatement` bidang `clarificationPrompt` dan dalam [PutBot](API_PutBot.md) operasi.

Jika Anda menggunakan fungsi Lambda dengan maksud, fungsi Lambda mungkin menampilkan respons yang mengarahkan Amazon Lex untuk menanyakan maksud pengguna. Jika fungsi Lambda tidak memberikan pesan seperti itu, Amazon Lex menggunakan prompt klarifikasi.

### Petunjuk Slot
<a name="msg-prompts-slots"></a>

Anda harus menentukan setidaknya satu pesan prompt untuk setiap slot yang diperlukan dalam maksud. Saat runtime, Amazon Lex menggunakan salah satu pesan ini untuk meminta pengguna memberikan nilai untuk slot. Misalnya, untuk `cityName` slot, berikut ini adalah prompt yang valid: 

```
Which city would you like to fly to?
```

Anda dapat mengatur satu atau lebih petunjuk untuk setiap slot menggunakan konsol. Anda juga dapat membuat grup prompt menggunakan [PutIntent](API_PutIntent.md) operasi. Untuk informasi selengkapnya, lihat [Grup Pesan](#message-groups).

### Respons
<a name="msg-prompts-response"></a>

Di konsol, gunakan bagian **Responses** untuk membangun percakapan yang dinamis dan menarik untuk bot Anda. Anda dapat membuat satu atau beberapa grup pesan untuk respons. Saat runtime, Amazon Lex membuat respons dengan memilih satu pesan dari setiap grup pesan. Untuk informasi selengkapnya tentang grup pesan, lihat[Grup Pesan](#message-groups). 

Misalnya, grup pesan pertama Anda dapat berisi salam yang berbeda: “Halo,” “Hai,” dan “Salam.” Grup pesan kedua dapat berisi berbagai bentuk pengantar: “Saya bot reservasi” dan “Ini adalah bot reservasi.” Grup pesan ketiga dapat mengomunikasikan kemampuan bot: “Saya dapat membantu dengan penyewaan mobil dan pemesanan hotel,” “Anda dapat membuat penyewaan mobil dan pemesanan hotel,” dan “Saya dapat membantu Anda menyewa mobil dan memesan hotel.”

Lex menggunakan pesan dari masing-masing grup pesan untuk membangun respons secara dinamis dalam percakapan. Misalnya, satu interaksi bisa menjadi sebagai berikut:

![\[Satu kemungkinan percakapan dengan bot.\]](http://docs.aws.amazon.com/id_id/lex/latest/dg/images/default-response-10b.png)


Satu lagi bisa menjadi berikut:

![\[Percakapan lain yang mungkin dengan bot.\]](http://docs.aws.amazon.com/id_id/lex/latest/dg/images/default-response-20c.png)


Dalam kedua kasus tersebut, pengguna dapat merespons dengan maksud baru, seperti `BookHotel` maksud `BookCar` atau.

Anda dapat mengatur bot untuk mengajukan pertanyaan tindak lanjut dalam tanggapan. Misalnya, untuk interaksi sebelumnya, Anda dapat membuat grup pesan keempat dengan pertanyaan berikut: “Dapatkah saya membantu dengan mobil atau hotel?” , “Apakah Anda ingin membuat reservasi sekarang?” , dan “Apakah ada yang bisa saya lakukan untuk Anda?”. Untuk pesan yang menyertakan “Tidak” sebagai respons, Anda dapat membuat prompt tindak lanjut. Gambar berikut memberikan contoh:

![\[Tindak lanjut prompt dalam percakapan dengan bot.\]](http://docs.aws.amazon.com/id_id/lex/latest/dg/images/default-response-25a.png)


Untuk membuat prompt tindak lanjut, pilih **Tunggu balasan pengguna**. Kemudian ketik pesan atau pesan yang ingin Anda kirim ketika pengguna mengatakan “Tidak.” Saat Anda membuat respons untuk digunakan sebagai prompt tindak lanjut, Anda juga harus menentukan pernyataan yang sesuai ketika jawaban atas pernyataan tersebut adalah “Tidak.” Lihat gambar berikut untuk contoh:

![\[Konfigurasi pesan ketika pengguna mengatakan “tidak”.\]](http://docs.aws.amazon.com/id_id/lex/latest/dg/images/default-response-30b.png)


Untuk menambahkan respons ke intent dengan API, gunakan `PutIntent` operasi. Untuk menentukan respons, atur `conclusionStatement` bidang dalam `PutIntent` permintaan. Untuk mengatur prompt tindak lanjut, atur `followUpPrompt` bidang dan sertakan pernyataan yang akan dikirim saat pengguna mengatakan “Tidak.” Anda tidak dapat mengatur `conclusionStatement` bidang dan `followUpPrompt` bidang pada maksud yang sama.

## Format Pesan yang Didukung
<a name="msg-prompts-formats"></a>

Saat Anda menggunakan [PostText](API_runtime_PostText.md) operasi, atau saat Anda menggunakan [PostContent](API_runtime_PostContent.md) operasi dengan `Accept` header yang disetel ke`text/plain;charset=utf8`, Amazon Lex mendukung pesan dalam format berikut:
+ `PlainText`—Pesan berisi teks UTF-8 biasa.
+ `SSML`—Pesan berisi teks yang diformat untuk output suara.
+ `CustomPayload`—Pesan berisi format khusus yang telah Anda buat untuk klien Anda. Anda dapat menentukan payload untuk memenuhi kebutuhan aplikasi Anda.
+ `Composite`Pesan adalah kumpulan pesan, satu dari setiap grup pesan. Untuk informasi selengkapnya tentang grup pesan, lihat[Grup Pesan](#message-groups).

Secara default, Amazon Lex mengembalikan salah satu pesan yang ditentukan untuk prompt tertentu. Misalnya, jika Anda menentukan lima pesan untuk memperoleh nilai slot, Amazon Lex memilih salah satu pesan secara acak dan mengembalikannya ke klien.

Jika Anda ingin Amazon Lex mengembalikan jenis pesan tertentu ke klien dalam permintaan run-time, tetapkan parameter `x-amzn-lex:accept-content-types` permintaan. Respons terbatas pada jenis atau jenis yang diminta. Jika ada lebih dari satu pesan dari jenis yang ditentukan, Amazon Lex mengembalikan satu secara acak. Untuk informasi selengkapnya tentang `x-amz-lex:accept-content-types` header, lihat[Mengatur Jenis Respons](context-mgmt-request-attribs.md#special-response).

## Grup Pesan
<a name="message-groups"></a>

*Grup pesan* adalah serangkaian respons yang sesuai untuk prompt tertentu. Gunakan grup pesan saat Anda ingin bot Anda membangun respons secara dinamis dalam percakapan. Ketika Amazon Lex mengembalikan respons ke aplikasi klien, Amazon Lex secara acak memilih satu pesan dari setiap grup. Anda dapat membuat maksimal lima grup pesan untuk setiap respons. Setiap grup dapat berisi maksimal lima pesan. Untuk contoh membuat grup pesan di konsol, lihat[Respons](#msg-prompts-response).

Untuk membuat grup pesan, Anda dapat menggunakan konsol atau Anda dapat menggunakan[PutBot](API_PutBot.md),[PutIntent](API_PutIntent.md), atau [PutSlotType](API_PutSlotType.md) operasi untuk menetapkan nomor grup ke pesan. Jika Anda tidak membuat grup pesan, atau jika Anda hanya membuat satu grup pesan, Amazon Lex mengirimkan satu pesan di `Message` bidang tersebut. Aplikasi klien mendapatkan beberapa pesan dalam respons hanya jika Anda telah membuat lebih dari satu grup pesan di konsol, atau saat Anda membuat lebih dari satu grup pesan saat Anda membuat atau memperbarui maksud dengan [PutIntent](API_PutIntent.md) operasi. 

Saat Amazon Lex mengirim pesan dari grup, `Message` bidang respons berisi objek JSON yang lolos yang berisi pesan. Contoh berikut menunjukkan isi `Message` bidang ketika berisi beberapa pesan.

**catatan**  
Contoh diformat untuk keterbacaan. Respons tidak mengandung carriage return (CR).

```
{\"messages\":[
   {\"type\":\"PlainText\",\"group\":0,\"value\":\"Plain text\"},
   {\"type\":\"SSML\",\"group\":1,\"value\":\"SSML text\"},
   {\"type\":\"CustomPayload\",\"group\":2,\"value\":\"Custom payload\"}
]}
```

Anda dapat mengatur format pesan. Formatnya dapat berupa salah satu dari yang berikut:
+ PlainText—Pesannya dalam teks UTF-8 biasa.
+ SSML—pesannya adalah Speech Synthesis Markup Language (SSML).
+ CustomPayload—Pesan dalam format khusus yang Anda tentukan.

Untuk mengontrol format pesan yang dikembalikan `PostContent` dan `PostText` operasi di `Message` bidang, atur atribut `x-amz-lex:accept-content-types` permintaan. Misalnya, jika Anda menyetel header ke yang berikut, Anda hanya menerima teks biasa dan pesan SSML dalam respons:

```
x-amz-lex:accept-content-types: PlainText,SSML
```

Jika Anda meminta format pesan tertentu dan grup pesan tidak berisi pesan dengan format tersebut, Anda mendapatkan `NoUsableMessageException` pengecualian. Bila Anda menggunakan grup pesan untuk mengelompokkan pesan berdasarkan jenis, jangan gunakan `x-amz-lex:accept-content-types` header.

Untuk informasi selengkapnya tentang `x-amz-lex:accept-content-types` header, lihat[Mengatur Jenis Respons](context-mgmt-request-attribs.md#special-response).

## Kartu Respons
<a name="msg-prompts-resp-card"></a>

**catatan**  
Kartu respons tidak berfungsi dengan obrolan Amazon Connect. Namun, lihat [Menambahkan pesan interaktif ke obrolan](https://docs.aws.amazon.com/connect/latest/adminguide/interactive-messages.html) untuk fungsionalitas serupa.

*Kartu respons* berisi serangkaian respons yang sesuai untuk prompt. Gunakan kartu respons untuk menyederhanakan interaksi bagi pengguna Anda dan meningkatkan akurasi bot Anda dengan mengurangi kesalahan ketik dalam interaksi teks. Anda dapat mengirim kartu respons untuk setiap prompt yang dikirimkan Amazon Lex ke aplikasi klien Anda. Anda dapat menggunakan kartu respons dengan Facebook Messenger, Slack, Twilio, dan aplikasi klien Anda sendiri.

Misalnya, dalam aplikasi taksi, Anda dapat mengonfigurasi opsi di kartu respons untuk “Rumah” dan mengatur nilainya ke alamat rumah pengguna. Saat pengguna memilih opsi ini, Amazon Lex menerima seluruh alamat sebagai teks input. Lihat gambar berikut:

![\[Contoh kartu respons.\]](http://docs.aws.amazon.com/id_id/lex/latest/dg/images/resp-console-5.png)


Anda dapat menentukan kartu respons untuk petunjuk berikut:
+ Pernyataan kesimpulan
+ Prompt konfirmasi
+ Prompt tindak lanjut
+ Pernyataan penolakan
+ Ucapan jenis slot

Anda hanya dapat menentukan satu kartu respons untuk setiap prompt. 

Anda mengonfigurasi kartu respons saat membuat intent. Anda dapat menentukan kartu respons statis pada waktu pembuatan menggunakan konsol atau [PutIntent](API_PutIntent.md) operasi. Atau Anda dapat menentukan kartu respons dinamis saat runtime dalam fungsi Lambda. Jika Anda menentukan kartu respons statis dan dinamis, kartu respons dinamis diutamakan. 

Amazon Lex mengirimkan kartu respons dalam format yang dipahami klien. Ini mengubah kartu respons untuk Facebook Messenger, Slack, dan Twilio. Untuk klien lain, Amazon Lex mengirimkan struktur JSON [PostText](API_runtime_PostText.md) sebagai tanggapan. Misalnya, jika kliennya adalah Facebook Messenger, Amazon Lex mengubah kartu respons menjadi templat generik. Untuk informasi selengkapnya tentang template generik Facebook Messenger, lihat [Template Generik](https://developers.facebook.com/docs/messenger-platform/send-api-reference/generic-template) di situs web Facebook. Untuk contoh struktur JSON, lihat[Menghasilkan Kartu Respons Secara Dinamis](#msg-prompts-resp-card-dynamic).

Anda dapat menggunakan kartu respons hanya dengan [PostText](API_runtime_PostText.md) operasi. Anda tidak dapat menggunakan kartu respons dengan [PostContent](API_runtime_PostContent.md) operasi. 

### Mendefinisikan Kartu Respons Statis
<a name="msg-prompts-resp-card-static"></a>

Tentukan kartu respons statis dengan [PutBot](API_PutBot.md) operasi atau konsol Amazon Lex saat Anda membuat maksud. Kartu respons statis didefinisikan pada saat yang sama dengan intent. Gunakan kartu respons statis saat respons diperbaiki. Misalkan Anda membuat bot dengan maksud yang memiliki slot untuk rasa. Saat menentukan slot rasa, Anda menentukan petunjuk, seperti yang ditunjukkan pada tangkapan layar konsol berikut:

![\[Editor maksud di konsol.\]](http://docs.aws.amazon.com/id_id/lex/latest/dg/images/resp-console-10a.png)


Saat menentukan prompt, Anda dapat secara opsional mengaitkan kartu respons dan menentukan detail dengan [PutBot](API_PutBot.md) operasi, atau, di konsol Amazon Lex, seperti yang ditunjukkan pada contoh berikut:

![\[Konsol yang menampilkan editor kartu respons.\]](http://docs.aws.amazon.com/id_id/lex/latest/dg/images/resp-console-20a.png)


Sekarang anggaplah Anda telah mengintegrasikan bot Anda dengan Facebook Messenger. Pengguna dapat mengklik tombol untuk memilih rasa, seperti yang ditunjukkan pada ilustrasi berikut:

![\[Kartu respons di Facebook Messenger.\]](http://docs.aws.amazon.com/id_id/lex/latest/dg/images/resp-fb-exampleA.png)


Untuk menyesuaikan konten kartu respons, Anda dapat merujuk ke atribut sesi. Saat runtime, Amazon Lex mengganti referensi ini dengan nilai yang sesuai dari atribut sesi. Untuk informasi selengkapnya, lihat [Mengatur Atribut Sesi](context-mgmt-session-attribs.md). Sebagai contoh, lihat [Menggunakan Kartu Respons](ex-resp-card.md).

### Menghasilkan Kartu Respons Secara Dinamis
<a name="msg-prompts-resp-card-dynamic"></a>

Untuk menghasilkan kartu respons secara dinamis saat runtime, gunakan fungsi Lambda inisialisasi dan validasi untuk intent. Gunakan kartu respons dinamis saat respons ditentukan saat runtime dalam fungsi Lambda. Menanggapi input pengguna, fungsi Lambda menghasilkan kartu respons dan mengembalikannya di `dialogAction` bagian respons. Untuk informasi selengkapnya, lihat [Format Respons](lambda-input-response-format.md#using-lambda-response-format). 

Berikut ini adalah respon sebagian dari fungsi Lambda yang menunjukkan elemen. `responseCard` Ini menghasilkan pengalaman pengguna yang mirip dengan yang ditunjukkan di bagian sebelumnya.

```
responseCard: {
  "version": 1,
  "contentType": "application/vnd.amazonaws.card.generic",
  "genericAttachments": [
    {
      "title": "What Flavor?",
      "subtitle": "What flavor do you want?",
      "imageUrl": "Link to image",
      "attachmentLinkUrl": "Link to attachment",
      "buttons": [
        {
          "text": "Lemon",
          "value": "lemon"
        },
        {
          "text": "Raspberry",
          "value": "raspberry"
        },
        {
          "text": "Plain",
          "value": "plain"
        }
      ]
    }
  ]
}
```

Sebagai contoh, lihat [Jadwalkan Janji Temu](ex1-sch-appt.md).

# Mengelola Konteks Percakapan
<a name="context-mgmt"></a>

*Konteks percakapan* adalah informasi yang disediakan pengguna, aplikasi Anda, atau fungsi Lambda ke bot Amazon Lex untuk memenuhi maksud. Konteks percakapan mencakup data slot yang disediakan pengguna, atribut permintaan yang ditetapkan oleh aplikasi klien, dan atribut sesi yang dibuat oleh aplikasi klien dan fungsi Lambda. 

**Topics**
+ [Mengatur Konteks Maksud](context-mgmt-active-context.md)
+ [Menggunakan Nilai Slot Default](context-mgmt-default.md)
+ [Mengatur Atribut Sesi](context-mgmt-session-attribs.md)
+ [Mengatur Atribut Permintaan](context-mgmt-request-attribs.md)
+ [Mengatur Timeout Sesi](context-mgmt-session-timeout.md)
+ [Berbagi Informasi Antar Maksud](context-mgmt-cross-intent.md)
+ [Mengatur Atribut Kompleks](context-mgmt-complex-attributes.md)

# Mengatur Konteks Maksud
<a name="context-mgmt-active-context"></a>

Anda dapat memiliki maksud pemicu Amazon Lex berdasarkan *konteks*. *Konteks* adalah variabel status yang dapat dikaitkan dengan maksud saat Anda mendefinisikan bot.

Anda mengonfigurasi konteks untuk maksud saat membuat intent menggunakan konsol atau menggunakan operasi. [PutIntent](API_PutIntent.md) Anda hanya dapat menggunakan konteks dalam bahasa Inggris (AS) (en-AS) lokal, dan hanya jika Anda mengatur `enableModelImprovements` parameter `true` ketika Anda membuat bot dengan operasi. [PutBot](API_PutBot.md)

Ada dua jenis hubungan untuk konteks, konteks keluaran dan konteks input. *Konteks keluaran* menjadi aktif ketika maksud terkait terpenuhi. Konteks keluaran dikembalikan ke aplikasi Anda dalam respons dari [PostContent](API_runtime_PostContent.md) operasi [PostText](API_runtime_PostText.md) atau, dan diatur untuk sesi saat ini. Setelah konteks diaktifkan, konteks tetap aktif untuk jumlah putaran atau batas waktu yang dikonfigurasi saat konteks ditentukan. 

*Konteks input* menentukan kondisi di mana maksud dapat dikenali. Maksud hanya dapat dikenali selama percakapan ketika semua konteks inputnya aktif. Maksud tanpa konteks input selalu memenuhi syarat untuk pengakuan. 

Amazon Lex secara otomatis mengelola siklus hidup konteks yang diaktifkan dengan memenuhi maksud dengan konteks keluaran. Anda juga dapat mengatur konteks aktif dalam panggilan ke `PostContent` atau `PostText` operasi.

Anda juga dapat mengatur konteks percakapan menggunakan fungsi Lambda untuk intent. Konteks keluaran dari Amazon Lex dikirim ke acara input fungsi Lambda. Fungsi Lambda dapat mengirim konteks dalam responsnya. Untuk informasi selengkapnya, lihat [Peristiwa Input Fungsi Lambda dan Format Respons](lambda-input-response-format.md).

Misalnya, Anda memiliki maksud untuk memesan mobil sewaan yang dikonfigurasi untuk mengembalikan konteks keluaran yang disebut “book\$1car\$1filled”. Ketika intent terpenuhi, Amazon Lex menyetel variabel konteks keluaran “book\$1car\$1fulfilled”. Karena “book\$1car\$1fulfilled” adalah konteks aktif, maksud dengan konteks “book\$1car\$1fulfilled” yang ditetapkan sebagai konteks input sekarang dipertimbangkan untuk dikenali, selama ucapan pengguna diakui sebagai upaya untuk memperoleh maksud tersebut. Anda dapat menggunakan ini untuk maksud yang hanya masuk akal setelah memesan mobil, seperti mengirim email tanda terima atau memodifikasi reservasi.

## Konteks Keluaran
<a name="context-output"></a>

Amazon Lex membuat konteks keluaran intent aktif saat intent terpenuhi. Anda dapat menggunakan konteks keluaran untuk mengontrol maksud yang memenuhi syarat untuk menindaklanjuti maksud saat ini.

Setiap konteks memiliki daftar parameter yang dipertahankan dalam sesi. Parameter adalah nilai slot untuk maksud yang terpenuhi. Anda dapat menggunakan parameter ini untuk mengisi nilai slot terlebih dahulu untuk maksud lain. Untuk informasi selengkapnya, lihat [Menggunakan Nilai Slot Default](context-mgmt-default.md).

Anda mengonfigurasi konteks keluaran saat membuat intent dengan konsol atau dengan [PutIntent](API_PutIntent.md) operasi. Anda dapat mengonfigurasi intent dengan lebih dari satu konteks keluaran. Ketika maksud terpenuhi, semua konteks output diaktifkan dan dikembalikan dalam respons atau. [PostText](API_runtime_PostText.md) [PostContent](API_runtime_PostContent.md)

Berikut ini menunjukkan penetapan konteks output ke intent menggunakan konsol.

![\[Tag keluaran berlabel order_complete dengan waktu hidup 5 putaran atau 90 detik.\]](http://docs.aws.amazon.com/id_id/lex/latest/dg/images/context-output.png)


Saat Anda menentukan konteks keluaran, Anda juga menentukan *waktunya untuk hidup*, lamanya waktu atau jumlah putaran yang konteksnya disertakan dalam tanggapan dari Amazon Lex. *Giliran* adalah salah satu permintaan dari aplikasi Anda ke Amazon Lex. Setelah jumlah putaran atau waktu kedaluwarsa, konteksnya tidak lagi aktif. 

Aplikasi Anda dapat menggunakan konteks output sesuai kebutuhan. Misalnya, aplikasi Anda dapat menggunakan konteks output untuk:
+ Ubah perilaku aplikasi berdasarkan konteksnya. Misalnya, aplikasi perjalanan dapat memiliki tindakan yang berbeda untuk konteks “book\$1car\$1fulfilled” daripada “rental\$1hotel\$1fulfilled.”
+ Kembalikan konteks output ke Amazon Lex sebagai konteks masukan untuk ucapan berikutnya. Jika Amazon Lex mengenali ucapan sebagai upaya untuk mendapatkan maksud, Amazon Lex menggunakan konteks untuk membatasi maksud yang dapat dikembalikan ke maksud dengan konteks yang ditentukan.

## Konteks Masukan
<a name="context-input"></a>

Anda menetapkan konteks input untuk membatasi titik dalam percakapan tempat maksud dikenali. Maksud tanpa konteks input selalu memenuhi syarat untuk dikenali.

Anda menyetel konteks input yang ditanggapi intent menggunakan konsol atau operasi. `PutIntent` Sebuah intent dapat memiliki lebih dari satu konteks masukan. Berikut ini menunjukkan penetapan konteks input ke intent menggunakan konsol.

![\[Tag masukan berlabel order_complete.\]](http://docs.aws.amazon.com/id_id/lex/latest/dg/images/context-input.png)


Untuk maksud dengan lebih dari satu konteks masukan, semua konteks harus aktif untuk memicu maksud. Anda dapat mengatur konteks input saat Anda memanggil[PostText](API_runtime_PostText.md),[PostContent](API_runtime_PostContent.md), atau [PutSession](API_runtime_PutSession.md) operasi. 

Anda dapat mengonfigurasi slot dalam maksud untuk mengambil nilai default dari konteks aktif saat ini. Nilai default digunakan saat Amazon Lex mengenali maksud baru tetapi tidak menerima nilai slot. Anda menentukan nama konteks dan nama slot dalam formulir `#context-name.parameter-name` saat Anda menentukan slot. Untuk informasi selengkapnya, lihat [Menggunakan Nilai Slot Default](context-mgmt-default.md).

# Menggunakan Nilai Slot Default
<a name="context-mgmt-default"></a>

Saat Anda menggunakan nilai default, Anda menentukan sumber untuk nilai slot yang akan diisi untuk maksud baru ketika tidak ada slot yang disediakan oleh input pengguna. Sumber ini dapat berupa dialog sebelumnya, atribut permintaan atau sesi, atau nilai tetap yang Anda tetapkan pada waktu pembuatan. 

Anda dapat menggunakan berikut ini sebagai sumber untuk nilai default Anda.
+ Dialog sebelumnya (konteks) - \$1context -name.parameter-name
+ Atribut sesi - [atribut-nama]
+ Atribut permintaan — <attribute-name>
+ Nilai tetap - Nilai apa pun yang tidak cocok dengan sebelumnya

Saat Anda menggunakan [PutIntent](API_PutIntent.md) operasi untuk menambahkan slot ke intent, Anda dapat menambahkan daftar nilai default. Nilai default digunakan dalam urutan yang terdaftar. Misalnya, Anda memiliki maksud dengan slot dengan definisi berikut:

```
"slots": [
    {
        "name": "reservation-start-date",
        "defaultValueSpec": {
            "defaultValueList": [
                {
                    "defaultValue": "#book-car-fulfilled.startDate"
                },
                {  
                    "defaultValue": "[reservationStartDate]"
                }
            ]
        },
        Other slot configuration settings
    }
]
```

Ketika intent dikenali, slot bernama "reservation-start-date" memiliki nilai yang disetel ke salah satu dari berikut ini.

1. Jika konteks book-car-fulfilled "" aktif, nilai parameter “startDate” digunakan sebagai nilai default.

1. Jika konteks book-car-fulfilled "" tidak aktif, atau jika parameter “startDate” tidak disetel, nilai atribut sesi reservationStartDate "" digunakan sebagai nilai default.

1. Jika tidak satu pun dari dua nilai default pertama yang digunakan, maka slot tidak memiliki nilai default dan Amazon Lex akan memperoleh nilai seperti biasa.

Jika nilai default digunakan untuk slot, slot tidak ditimbulkan bahkan jika diperlukan.

# Mengatur Atribut Sesi
<a name="context-mgmt-session-attribs"></a>

*Atribut sesi* berisi informasi khusus aplikasi yang diteruskan antara bot dan aplikasi klien selama sesi. Amazon Lex meneruskan atribut sesi ke semua fungsi Lambda yang dikonfigurasi untuk bot. Jika fungsi Lambda menambahkan atau memperbarui atribut sesi, Amazon Lex meneruskan informasi baru kembali ke aplikasi klien. Contoh:
+ Dalam[Latihan 1: Membuat Bot Amazon Lex Menggunakan Blueprint (Konsol)](gs-bp.md), bot contoh menggunakan atribut `price` sesi untuk mempertahankan harga bunga. Fungsi Lambda menetapkan atribut ini berdasarkan jenis bunga yang dipesan. Untuk informasi selengkapnya, lihat [Langkah 5 (Opsional): Tinjau Detail Alur Informasi (Konsol)](gs-bp-details-after-lambda.md). 
+ Dalam[Pesan Perjalanan](ex-book-trip.md), bot contoh menggunakan atribut `currentReservation` sesi untuk menyimpan salinan data tipe slot selama percakapan untuk memesan hotel atau memesan mobil sewaan. Untuk informasi selengkapnya, lihat [Rincian Alur Informasi](book-trip-detail-flow.md).

Gunakan atribut sesi dalam fungsi Lambda Anda untuk menginisialisasi bot dan untuk menyesuaikan prompt dan kartu respons. Contoh:
+ Inisialisasi — Dalam bot pemesanan pizza, aplikasi klien melewati lokasi pengguna sebagai atribut sesi dalam panggilan pertama ke [PostText](API_runtime_PostText.md) operasi [PostContent](API_runtime_PostContent.md) atau. Misalnya, `"Location": "111 Maple Street"`. Fungsi Lambda menggunakan informasi ini untuk menemukan restoran pizza terdekat untuk melakukan pemesanan.
+ Personalisasi prompt - Konfigurasikan prompt dan kartu respons untuk merujuk ke atribut sesi. Misalnya, “Hei [FirstName], topping apa yang Anda inginkan?” Jika Anda meneruskan nama depan pengguna sebagai atribut session (`{"FirstName": "Jo"}`), Amazon Lex mengganti nama untuk placeholder. Kemudian mengirimkan prompt yang dipersonalisasi kepada pengguna, “Hei Jo, topping mana yang Anda inginkan?”

Atribut sesi bertahan selama sesi berlangsung. Amazon Lex menyimpannya di penyimpanan data terenkripsi hingga sesi berakhir. Klien dapat membuat atribut sesi dalam permintaan dengan memanggil [PostContent](API_runtime_PostContent.md) atau [PostText](API_runtime_PostText.md) operasi dengan `sessionAttributes` bidang yang disetel ke nilai. Fungsi Lambda dapat membuat atribut sesi dalam respons. Setelah klien atau fungsi Lambda membuat atribut session, nilai atribut tersimpan digunakan kapan saja aplikasi klien tidak menyertakan `sessionAttribute` bidang dalam permintaan ke Amazon Lex.

Misalnya, Anda memiliki dua atribut sesi,`{"x": "1", "y": "2"}`. Jika klien memanggil `PostText` operasi `PostContent` atau tanpa menentukan `sessionAttributes` bidang, Amazon Lex memanggil fungsi Lambda dengan atribut `{"x": 1, "y": 2}` sesi tersimpan (). Jika fungsi Lambda tidak menampilkan atribut sesi, Amazon Lex mengembalikan atribut sesi tersimpan ke aplikasi klien.

Jika aplikasi klien atau fungsi Lambda melewati atribut sesi, Amazon Lex memperbarui atribut sesi yang disimpan. Melewati nilai yang ada, seperti` {"x": 2}`, memperbarui nilai yang disimpan. Jika Anda melewatkan satu set atribut sesi baru, seperti`{"z": 3}`, nilai yang ada akan dihapus dan hanya nilai baru yang disimpan. Ketika peta kosong,`{}`, dilewatkan, nilai yang disimpan dihapus.

Untuk mengirim atribut sesi ke Amazon Lex, Anda membuat string-to-string peta atribut. Berikut ini menunjukkan cara memetakan atribut sesi: 

```
{
   "attributeName": "attributeValue",
   "attributeName": "attributeValue"
}
```

Untuk `PostText` operasi, Anda memasukkan peta ke dalam badan permintaan menggunakan `sessionAttributes` bidang, sebagai berikut:

```
"sessionAttributes": {
   "attributeName": "attributeValue",
   "attributeName": "attributeValue"
}
```

Untuk `PostContent` operasi, Anda base64 menyandikan peta, dan kemudian mengirimkannya sebagai header. `x-amz-lex-session-attributes`

Jika Anda mengirim data biner atau terstruktur dalam atribut sesi, Anda harus terlebih dahulu mengubah data menjadi string sederhana. Untuk informasi selengkapnya, lihat [Mengatur Atribut Kompleks](context-mgmt-complex-attributes.md).

# Mengatur Atribut Permintaan
<a name="context-mgmt-request-attribs"></a>

*Atribut permintaan* berisi informasi khusus permintaan dan hanya berlaku untuk permintaan saat ini. Aplikasi klien mengirimkan informasi ini ke Amazon Lex. Gunakan atribut permintaan untuk meneruskan informasi yang tidak perlu bertahan selama seluruh sesi. Anda dapat membuat atribut permintaan Anda sendiri atau Anda dapat menggunakan atribut yang telah ditentukan sebelumnya. Untuk mengirim atribut permintaan, gunakan `x-amz-lex-request-attributes` header dalam [PostContent](API_runtime_PostContent.md) atau `requestAttributes` bidang dalam [PostText](API_runtime_PostText.md) permintaan. Karena atribut permintaan tidak bertahan di seluruh permintaan seperti atribut sesi, atribut tersebut tidak dikembalikan `PostContent` atau ditanggapi`PostText`. 

**catatan**  
Untuk mengirim informasi yang tetap ada di seluruh permintaan, gunakan atribut sesi.

Namespace dicadangkan untuk `x-amz-lex:` atribut permintaan yang telah ditentukan sebelumnya. Jangan membuat atribut permintaan dengan awalan`x-amz-lex:`.

## Mengatur Atribut Permintaan yang Telah Ditetapkan
<a name="context-mgmt-special"></a>

Amazon Lex menyediakan atribut permintaan yang telah ditentukan untuk mengelola cara memproses informasi yang dikirim ke bot Anda. Atribut tidak bertahan untuk seluruh sesi, jadi Anda harus mengirim atribut yang telah ditentukan di setiap permintaan. Semua atribut yang telah ditentukan ada di `x-amz-lex:` namespace.

Selain atribut yang telah ditentukan berikut, Amazon Lex menyediakan atribut yang telah ditentukan untuk platform perpesanan. Untuk daftar atribut tersebut, lihat[Menyebarkan Bot Amazon Lex di Platform Perpesanan](example1.md).

### Mengatur Jenis Respons
<a name="special-response"></a>

Jika Anda memiliki dua aplikasi klien yang memiliki kemampuan berbeda, Anda mungkin perlu membatasi format pesan dalam respons. Misalnya, Anda mungkin ingin membatasi pesan yang dikirim ke klien Web ke teks biasa, tetapi memungkinkan klien seluler untuk menggunakan teks biasa dan Speech Synthesis Markup Language (SSML). Untuk mengatur format pesan yang dikembalikan oleh [PostContent](API_runtime_PostContent.md) dan [PostText](API_runtime_PostText.md) operasi, gunakan atribut `x-amz-lex:accept-content-types"` permintaan. 

Anda dapat mengatur atribut ke kombinasi jenis pesan berikut: 
+ `PlainText`—Pesan berisi teks UTF-8 biasa.
+ `SSML`—Pesan berisi teks yang diformat untuk output suara.
+ `CustomPayload`—Pesan berisi format khusus yang telah Anda buat untuk klien Anda. Anda dapat menentukan payload untuk memenuhi kebutuhan aplikasi Anda.

Amazon Lex hanya mengembalikan pesan dengan jenis yang ditentukan di `Message` bidang respons. Anda dapat mengatur lebih dari satu nilai dengan memisahkan nilai dengan koma. Jika Anda menggunakan grup pesan, setiap grup pesan harus berisi setidaknya satu pesan dari jenis yang ditentukan. Jika tidak, Anda mendapatkan `NoUsableMessageException` kesalahan. Untuk informasi selengkapnya, lihat [Grup Pesan](howitworks-manage-prompts.md#message-groups).

**catatan**  
Atribut `x-amz-lex:accept-content-types` request tidak berpengaruh pada isi body HTML. Isi respon `PostText` operasi selalu teks UTF-8 biasa. Tubuh respons `PostContent` operasi berisi data dalam format yang ditetapkan di `Accept` header dalam permintaan.

### Mengatur Zona Waktu Pilihan
<a name="special-time-zone"></a>

Untuk mengatur zona waktu yang digunakan untuk menyelesaikan tanggal sehingga relatif terhadap zona waktu pengguna, gunakan atribut `x-amz-lex:time-zone` permintaan. Jika Anda tidak menentukan zona waktu dalam `x-amz-lex:time-zone` atribut, default tergantung pada wilayah yang Anda gunakan untuk bot Anda.


| Region | Zona waktu default | 
| --- | --- | 
| AS Timur (Virginia Utara) |  America/New\$1York  | 
| AS Barat (Oregon) |  America/Los\$1Angeles  | 
| Asia Pasifik (Singapura) |  Asia/Singapore  | 
| Asia Pasifik (Sydney) |  Australia/Sydney  | 
| Asia Pasifik (Tokyo) |  Asia/Tokyo  | 
| Eropa (Frankfurt) |  Europe/Berlin  | 
| Eropa (Irlandia) |  Europe/Dublin  | 
| Eropa (London) |  Europe/London  | 

Misalnya, jika pengguna merespons sebagai `tomorrow` tanggapan terhadap prompt “Hari apa Anda ingin paket Anda dikirimkan?” *tanggal* aktual pengiriman paket tergantung pada zona waktu pengguna. Misalnya, ketika pukul 01:00 16 September di New York, saat itu pukul 22:00 15 September di Los Angeles. Jika layanan Anda berjalan di Wilayah AS Timur (Virginia N.) dan seseorang di Los Angeles memesan paket untuk dikirimkan “besok” menggunakan zona waktu default, paket akan dikirimkan pada tanggal 17, bukan tanggal 16. Namun, jika Anda menyetel atribut `x-amz-lex:time-zone` request ke`America/Los_Angeles`, paket akan dikirimkan pada tanggal 16.

Anda dapat mengatur atribut ke salah satu nama zona waktu Internet Assigned Number Authority (IANA). Untuk daftar nama zona waktu, lihat [Daftar zona waktu database tz](https://en.wikipedia.org/wiki/List_of_tz_database_time_zones) di Wikipedia.

## Menyetel Atribut Permintaan yang Ditetapkan Pengguna
<a name="context-mgmt-user"></a>

*Atribut permintaan yang ditentukan pengguna* adalah data yang Anda kirim ke bot Anda di setiap permintaan. Anda mengirim informasi di `amz-lex-request-attributes` header `PostContent` permintaan atau di `requestAttributes` bidang `PostText` permintaan. 

Untuk mengirim atribut permintaan ke Amazon Lex, Anda membuat string-to-string peta atribut. Berikut ini menunjukkan cara memetakan atribut permintaan: 

```
{
   "attributeName": "attributeValue",
   "attributeName": "attributeValue"
}
```

Untuk `PostText` operasi, Anda memasukkan peta ke dalam badan permintaan menggunakan `requestAttributes` bidang, sebagai berikut:

```
"requestAttributes": {
   "attributeName": "attributeValue",
   "attributeName": "attributeValue"
}
```

Untuk `PostContent` operasi, Anda base64 menyandikan peta, dan kemudian mengirimkannya sebagai header. `x-amz-lex-request-attributes`

Jika Anda mengirim data biner atau terstruktur dalam atribut permintaan, Anda harus terlebih dahulu mengubah data menjadi string sederhana. Untuk informasi selengkapnya, lihat [Mengatur Atribut Kompleks](context-mgmt-complex-attributes.md).

# Mengatur Timeout Sesi
<a name="context-mgmt-session-timeout"></a>

Amazon Lex menyimpan informasi konteks—data slot dan atribut sesi—hingga sesi percakapan berakhir. Untuk mengontrol berapa lama sesi berlangsung untuk bot, atur batas waktu sesi. Secara default, durasi sesi adalah 5 menit, tetapi Anda dapat menentukan durasi antara 0 dan 1.440 menit (24 jam). 

Misalnya, Anda membuat `ShoeOrdering` bot yang mendukung maksud seperti `OrderShoes` dan`GetOrderStatus`. Ketika Amazon Lex mendeteksi bahwa maksud pengguna adalah memesan sepatu, ia meminta data slot. Misalnya, ia meminta ukuran sepatu, warna, merek, dll. Jika pengguna menyediakan beberapa data slot tetapi tidak menyelesaikan pembelian sepatu, Amazon Lex mengingat semua data slot dan atribut sesi untuk seluruh sesi. Jika pengguna kembali ke sesi sebelum berakhir, ia dapat memberikan data slot yang tersisa, dan menyelesaikan pembelian.

Di konsol Amazon Lex, Anda mengatur batas waktu sesi saat membuat bot. Dengan antarmuka baris perintah AWS (AWS CLI) atau API, Anda mengatur batas waktu saat membuat atau memperbarui bot dengan [PutBot](API_PutBot.md) operasi dengan menyetel bidang [TTLInIdleSession](https://docs.aws.amazon.com/lex/latest/dg/API_PutBot.html#lex-PutBot-request-idleSessionTTLInSeconds) Seconds.

# Berbagi Informasi Antar Maksud
<a name="context-mgmt-cross-intent"></a>

Amazon Lex mendukung berbagi informasi antar maksud. Untuk berbagi antar maksud, gunakan atribut sesi. 

Misalnya, pengguna `ShoeOrdering` bot memulai dengan memesan sepatu. Bot terlibat dalam percakapan dengan pengguna, mengumpulkan data slot, seperti ukuran sepatu, warna, dan merek. Saat pengguna melakukan pemesanan, fungsi Lambda yang memenuhi urutan akan menetapkan atribut `orderNumber` sesi, yang berisi nomor urut. Untuk mendapatkan status pesanan, pengguna menggunakan `GetOrderStatus` intent. Bot dapat meminta pengguna untuk data slot, seperti nomor pesanan dan tanggal pesanan. Ketika bot memiliki informasi yang diperlukan, bot mengembalikan status pesanan.

Jika Anda berpikir bahwa pengguna Anda mungkin beralih maksud selama sesi yang sama, Anda dapat mendesain bot Anda untuk mengembalikan status pesanan terbaru. Alih-alih meminta pengguna untuk informasi pesanan lagi, Anda menggunakan atribut `orderNumber` session untuk berbagi informasi di seluruh intent dan memenuhi `GetOrderStatus` intent. Bot melakukan ini dengan mengembalikan status pesanan terakhir yang ditempatkan pengguna.

Untuk contoh berbagi informasi lintas maksud, lihat. [Pesan Perjalanan](ex-book-trip.md)

# Mengatur Atribut Kompleks
<a name="context-mgmt-complex-attributes"></a>

Atribut sesi dan permintaan adalah string-to-string peta atribut dan nilai. Dalam banyak kasus, Anda dapat menggunakan peta string untuk mentransfer nilai atribut antara aplikasi klien Anda dan bot. Namun, dalam beberapa kasus, Anda mungkin perlu mentransfer data biner atau struktur kompleks yang tidak dapat dengan mudah dikonversi ke peta string. Misalnya, objek JSON berikut mewakili array dari tiga kota terpadat di Amerika Serikat:

```
{
   "cities": [
      {
         "city": {
            "name": "New York",
            "state": "New York",
            "pop": "8537673"
         }
      },
      {
         "city": {
            "name": "Los Angeles",
            "state": "California",
            "pop": "3976322"
         }
      },
      {
         "city": {
            "name": "Chicago",
            "state": "Illinois",
            "pop": "2704958"
         }
      }
   ]
}
```

Array data ini tidak diterjemahkan dengan baik ke string-to-string peta. Dalam kasus seperti itu, Anda dapat mengubah objek menjadi string sederhana sehingga Anda dapat mengirimkannya ke bot Anda dengan [PostText](API_runtime_PostText.md) operasi [PostContent](API_runtime_PostContent.md) dan. 

Misalnya, jika Anda menggunakan JavaScript, Anda dapat menggunakan `JSON.stringify` operasi untuk mengonversi objek ke JSON, dan `JSON.parse` operasi untuk mengonversi teks JSON menjadi JavaScript objek:

```
// To convert an object to a string.
var jsonString = JSON.stringify(object, null, 2);
// To convert a string to an object.
var obj = JSON.parse(JSON string);
```

Untuk mengirim atribut sesi dengan `PostContent` operasi, Anda harus mengkodekan atribut base64 sebelum Anda menambahkannya ke header permintaan, seperti yang ditunjukkan dalam kode berikut: JavaScript

```
var encodedAttributes = new Buffer(attributeString).toString("base64");
```

Anda dapat mengirim data biner ke `PostContent` dan `PostText` operasi dengan terlebih dahulu mengonversi data ke string yang dikodekan base64, dan kemudian mengirim string sebagai nilai dalam atribut sesi:

```
"sessionAttributes" : {
   "binaryData": "base64 encoded data"
}
```

# Menggunakan Skor Keyakinan
<a name="confidence-scores"></a>

Saat pengguna mengucapkan ucapan, Amazon Lex menggunakan pemahaman bahasa alami (NLU) untuk memahami permintaan pengguna dan mengembalikan maksud yang tepat. Secara default, Amazon Lex mengembalikan maksud yang paling mungkin ditentukan oleh bot Anda.

Dalam beberapa kasus mungkin sulit bagi Amazon Lex untuk menentukan maksud yang paling mungkin. Misalnya, pengguna mungkin membuat ucapan ambigu, atau mungkin ada dua maksud yang serupa. Untuk membantu menentukan maksud yang tepat, Anda dapat menggabungkan pengetahuan domain Anda dengan *skor kepercayaan* dari daftar maksud alternatif. Skor kepercayaan diri adalah peringkat yang diberikan Amazon Lex yang menunjukkan betapa yakinnya bahwa niat adalah niat yang benar.

Untuk menentukan perbedaan antara dua maksud alternatif, Anda dapat membandingkan skor kepercayaan mereka. Misalnya, jika satu niat memiliki skor kepercayaan 0,95 dan yang lain memiliki skor 0,65, maksud pertama mungkin benar. Namun, jika satu maksud memiliki skor 0,75 dan yang lain memiliki skor 0,72, ada ambiguitas antara dua maksud yang mungkin dapat Anda bedakan menggunakan pengetahuan domain dalam aplikasi Anda.

Anda juga dapat menggunakan skor kepercayaan untuk membuat aplikasi pengujian yang menentukan apakah perubahan pada ucapan maksud membuat perbedaan dalam perilaku bot. Misalnya, Anda bisa mendapatkan skor kepercayaan untuk maksud bot menggunakan serangkaian ucapan, lalu memperbarui maksud dengan ucapan baru. Anda kemudian dapat memeriksa skor kepercayaan diri untuk melihat apakah ada peningkatan.

Skor kepercayaan yang dikembalikan Amazon Lex adalah nilai komparatif. Anda tidak harus mengandalkan mereka sebagai skor absolut. Nilai dapat berubah berdasarkan peningkatan Amazon Lex.

Saat Anda menggunakan skor kepercayaan, Amazon Lex mengembalikan maksud yang paling mungkin dan hingga 4 maksud alternatif dengan skor terkait di setiap respons. Jika semua skor kepercayaan kurang dari ambang batas, Amazon Lex menyertakan`AMAZON.FallbackIntent`,`AMAZON.KendraSearchIntent`, atau keduanya, jika Anda mengonfigurasinya. Anda dapat menggunakan ambang batas default atau Anda dapat mengatur ambang batas Anda sendiri.

Kode JSON berikut menunjukkan `alternativeIntents` bidang dalam respon dari [PostText](API_runtime_PostText.md) operasi.

```
   "alternativeIntents": [ 
      { 
         "intentName": "string",
         "nluIntentConfidence": { 
            "score": number
         },
         "slots": { 
            "string" : "string" 
         }
      }
   ],
```

Tetapkan ambang batas saat Anda membuat atau memperbarui bot. Anda dapat menggunakan API atau konsol Amazon Lex. Untuk wilayah yang tercantum di bawah ini, Anda harus ikut serta untuk mengaktifkan peningkatan akurasi dan skor kepercayaan diri. Di konsol, pilih skor kepercayaan di bagian **Opsi Lanjutan**. Menggunakan API, atur `enableModelImprovements` parameter saat Anda memanggil [PutBot](API_PutBot.md) operasi. :
+ US East (N. Virginia) (us-east-1)
+ US West (Oregon) (us-west-2)
+ Asia Pasifik (Sydney) (ap-southeast-2)
+ Eropa (Irlandia) (eu-west-1)

Di semua wilayah lain, peningkatan akurasi dan dukungan skor kepercayaan tersedia secara default.

Untuk mengubah ambang kepercayaan, atur di konsol atau gunakan [PutBot](API_PutBot.md) operasi. Ambang batas harus berupa angka antara 1,00 dan 0,00.

Untuk menggunakan konsol, atur ambang kepercayaan saat Anda membuat atau memperbarui bot Anda.

**Untuk mengatur ambang kepercayaan saat membuat bot (Konsol)**
+ Pada **Buat bot Anda**, masukkan nilai di bidang **ambang skor Keyakinan**.

**Untuk memperbarui ambang kepercayaan (Konsol)**

1. Dari daftar bot Anda, pilih bot yang akan diperbarui.

1. Pilih tab **Pengaturan**.

1. Di navigasi kiri, pilih **Umum**.

1. Perbarui nilai di bidang **ambang skor Keyakinan**.

**Untuk mengatur atau memperbarui ambang kepercayaan (SDK)**
+ Atur `nluIntentConfidenceThreshold` parameter [PutBot](API_PutBot.md) operasi. Kode JSON berikut menunjukkan parameter yang disetel.

  ```
     "nluIntentConfidenceThreshold": 0.75,
  ```

## Manajemen Sesi
<a name="confidence-scores-session-management"></a>

Untuk mengubah maksud yang digunakan Amazon Lex dalam percakapan dengan pengguna, Anda dapat menggunakan respons dari fungsi Lambda kait kode dialog, atau Anda dapat menggunakan APIs manajemen sesi di aplikasi kustom Anda. 

### Menggunakan fungsi Lambda
<a name="session-management-lambda"></a>

Saat Anda menggunakan fungsi Lambda, Amazon Lex memanggilnya dengan struktur JSON yang berisi input ke fungsi tersebut. Struktur JSON berisi bidang bernama `currentIntent` yang berisi maksud yang diidentifikasi Amazon Lex sebagai maksud yang paling mungkin untuk ucapan pengguna. Struktur JSON juga mencakup `alternativeIntents` bidang yang berisi hingga empat intent tambahan yang dapat memenuhi maksud pengguna. Setiap maksud mencakup bidang yang disebut `nluIntentConfidenceScore` yang berisi skor kepercayaan yang ditetapkan Amazon Lex untuk maksud tersebut.

Untuk menggunakan intent alternatif, Anda menentukannya dalam `ConfirmIntent` atau tindakan `ElicitSlot` dialog dalam fungsi Lambda Anda.

Untuk informasi selengkapnya, lihat [Menggunakan Fungsi Lambda](using-lambda.md).

### Menggunakan API Manajemen Sesi
<a name="session-management-API"></a>

Untuk menggunakan intent yang berbeda dari intent saat ini, gunakan operasi. [PutSession](API_runtime_PutSession.md) Misalnya, jika Anda memutuskan bahwa alternatif pertama lebih disukai daripada maksud yang dipilih Amazon Lex, Anda dapat menggunakan `PutSession` operasi untuk mengubah maksud sehingga maksud berikutnya yang berinteraksi dengan pengguna adalah yang Anda pilih.

Untuk informasi selengkapnya, lihat [Mengelola Sesi Dengan Amazon Lex API](how-session-api.md).

# Log Percakapan
<a name="conversation-logs"></a>

Anda mengaktifkan *log percakapan* untuk menyimpan interaksi bot. Anda dapat menggunakan log ini untuk meninjau kinerja bot Anda dan untuk memecahkan masalah dengan percakapan. Anda dapat mencatat teks untuk [PostText](API_runtime_PostText.md) operasi. Anda dapat mencatat teks dan audio untuk [PostContent](API_runtime_PostContent.md) operasi. Dengan mengaktifkan log percakapan, Anda mendapatkan tampilan terperinci tentang percakapan yang dimiliki pengguna dengan bot Anda.

Misalnya, sesi dengan bot Anda memiliki ID sesi. Anda dapat menggunakan ID ini untuk mendapatkan transkrip percakapan termasuk ucapan pengguna dan respons bot yang sesuai. Anda juga mendapatkan metadata seperti nama maksud dan nilai slot untuk ucapan.

**catatan**  
Anda tidak dapat menggunakan log percakapan dengan bot yang tunduk pada Children's Online Privacy Protection Act (COPPA).

Log percakapan dikonfigurasi untuk alias. Setiap alias dapat memiliki pengaturan yang berbeda untuk teks dan log audio mereka. Anda dapat mengaktifkan log teks, log audio, atau keduanya untuk setiap alias. Log teks menyimpan input teks, transkrip input audio, dan metadata terkait di Log. CloudWatch Log audio menyimpan input audio di Amazon S3. Anda dapat mengaktifkan enkripsi log teks dan audio menggunakan AWS KMS pelanggan yang dikelola CMKs.

Untuk mengkonfigurasi logging, gunakan konsol atau [PutBotAlias](API_PutBotAlias.md) operasi. Anda tidak dapat mencatat percakapan untuk `$LATEST` alias bot Anda atau bot uji yang tersedia di konsol Amazon Lex. Setelah mengaktifkan log percakapan untuk alias, [PostContent](API_runtime_PostContent.md) atau [PostText](API_runtime_PostText.md) operasi untuk alias tersebut mencatat ucapan teks atau audio dalam grup log Log yang dikonfigurasi atau bucket CloudWatch S3.

**Topics**
+ [Kebijakan IAM untuk Log Percakapan](conversation-logs-policies.md)
+ [Mengkonfigurasi Log Percakapan](conversation-logs-configure.md)
+ [Mengenkripsi Log Percakapan](conversation-logs-encrypting.md)
+ [Melihat Log Teks di CloudWatch Log Amazon](conversation-logs-cw.md)
+ [Mengakses Log Audio di Amazon S3](conversation-logs-s3.md)
+ [Memantau Status Log Percakapan dengan CloudWatch Metrik](conversation-logs-monitoring.md)

# Kebijakan IAM untuk Log Percakapan
<a name="conversation-logs-policies"></a>

Bergantung pada jenis logging yang Anda pilih, Amazon Lex memerlukan izin untuk menggunakan Amazon CloudWatch Logs dan Amazon Simple Storage Service (S3) bucket untuk menyimpan log Anda. Anda harus membuat AWS Identity and Access Management peran dan izin untuk mengaktifkan Amazon Lex mengakses sumber daya ini. 

## Membuat Peran dan Kebijakan IAM untuk Log Percakapan
<a name="conversation-logs-role-and-policy"></a>

Untuk mengaktifkan log percakapan, Anda harus memberikan izin menulis untuk CloudWatch Log dan Amazon S3. Jika Anda mengaktifkan enkripsi objek untuk objek S3 Anda, Anda perlu memberikan izin akses ke AWS KMS kunci yang digunakan untuk mengenkripsi objek. 

Anda dapat menggunakan IAM Konsol Manajemen AWS, IAM API, atau AWS Command Line Interface untuk membuat peran dan kebijakan. Instruksi ini menggunakan AWS CLI untuk membuat peran dan kebijakan. Untuk informasi tentang membuat kebijakan dengan konsol, lihat [Membuat kebijakan pada tab JSON di](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_create-console.html#access_policies_create-json-editor) *Panduan Pengguna AWS Identity and Access Management*.

**catatan**  
Kode berikut diformat untuk Linux dan macOS. Untuk Windows, ganti karakter kelanjutan baris Linux (\$1) dengan tanda sisipan (^).



**Untuk membuat peran IAM untuk log percakapan**

1. Buat dokumen di direktori saat ini yang disebut**LexConversationLogsAssumeRolePolicyDocument.json**, tambahkan kode berikut ke dalamnya, dan simpan. Dokumen kebijakan ini menambahkan Amazon Lex sebagai entitas tepercaya ke peran tersebut. Hal ini memungkinkan Lex untuk mengambil peran untuk mengirimkan log ke sumber daya yang dikonfigurasi untuk log percakapan.

------
#### [ JSON ]

****  

   ```
   {
     "Version":"2012-10-17",		 	 	 
     "Statement": [
       {
         "Effect": "Allow",
         "Principal": {
           "Service": "lex.amazonaws.com"
         },
         "Action": "sts:AssumeRole"
       }
     ]
   }
   ```

------

1. Dalam AWS CLI, jalankan perintah berikut untuk membuat peran IAM untuk log percakapan.

   ```
   aws iam create-role \
       --role-name role-name \
       --assume-role-policy-document file://LexConversationLogsAssumeRolePolicyDocument.json
   ```

Selanjutnya, buat dan lampirkan kebijakan ke peran yang memungkinkan Amazon Lex menulis ke CloudWatch Log. 

**Untuk membuat kebijakan IAM untuk mencatat teks percakapan ke CloudWatch Log**

1. Buat dokumen di direktori saat ini yang disebut**LexConversationLogsCloudWatchLogsPolicy.json**, tambahkan kebijakan IAM berikut ke dalamnya, dan simpan.

1. Dalam AWS CLI, buat kebijakan IAM yang memberikan izin menulis ke grup CloudWatch log Log.

   ```
   aws iam create-policy \
       --policy-name cloudwatch-policy-name \
       --policy-document file://LexConversationLogsCloudWatchLogsPolicy.json
   ```

1. Lampirkan kebijakan ke peran IAM yang Anda buat untuk log percakapan.

   ```
   aws iam attach-role-policy \
       --policy-arn arn:aws:iam::account-id:policy/cloudwatch-policy-name \
       --role-name role-name
   ```

Jika Anda mencatat audio ke bucket S3, buat kebijakan yang memungkinkan Amazon Lex menulis ke bucket.

**Untuk membuat kebijakan IAM untuk pencatatan audio ke bucket S3**

1. Buat dokumen di direktori saat ini yang disebut**LexConversationLogsS3Policy.json**, tambahkan kebijakan berikut ke dalamnya, dan simpan.

------
#### [ JSON ]

****  

   ```
   {
     "Version":"2012-10-17",		 	 	 
     "Statement": [
         {
             "Effect": "Allow",
             "Action": [
                 "s3:PutObject"
             ],
             "Resource": "arn:aws:s3:::bucket-name/*"
         }
     ]
   }
   ```

------

1. Di dalam AWS CLI, buat kebijakan IAM yang memberikan izin menulis ke bucket S3 Anda.

   ```
   aws iam create-policy \
       --policy-name s3-policy-name \
       --policy-document file://LexConversationLogsS3Policy.json
   ```

1. Lampirkan kebijakan ke peran yang Anda buat untuk log percakapan.

   ```
   aws iam attach-role-policy \
       --policy-arn arn:aws:iam::account-id:policy/s3-policy-name \
       --role-name role-name
   ```

## Memberikan Izin untuk Lulus Peran IAM
<a name="conversation-logs-pass-role"></a>

Saat Anda menggunakan konsol, SDK AWS Command Line Interface, atau AWS SDK untuk menentukan peran IAM yang akan digunakan untuk log percakapan, pengguna yang menentukan peran IAM log percakapan harus memiliki izin untuk meneruskan peran tersebut ke Amazon Lex. Untuk mengizinkan pengguna meneruskan peran ke Amazon Lex, Anda harus memberikan `PassRole` izin kepada pengguna, peran, atau grup. 

Kebijakan berikut menentukan izin untuk diberikan kepada pengguna, peran, atau grup. Anda dapat menggunakan tombol `iam:AssociatedResourceArn` dan `iam:PassedToService` kondisi untuk membatasi ruang lingkup izin. *Untuk informasi selengkapnya, lihat [Memberikan Izin Pengguna untuk Meneruskan Peran ke AWS Layanan](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_use_passrole.html) dan [IAM serta Kunci Konteks AWS STS Kondisi](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_iam-condition-keys.html) di Panduan Pengguna.AWS Identity and Access Management *

------
#### [ JSON ]

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Effect": "Allow",
            "Action": "iam:PassRole",
            "Resource": "arn:aws:iam::111122223333:role/role-name",
            "Condition": {
                "StringEquals": {
                    "iam:PassedToService": "lex.amazonaws.com"
                },
                "StringLike": {
                    "iam:AssociatedResourceARN": "arn:aws:lex:region:123456789012:bot:bot-name:bot-alias"
                }
            }
        }
    ]
}
```

------

# Mengkonfigurasi Log Percakapan
<a name="conversation-logs-configure"></a>

Anda mengaktifkan dan menonaktifkan log percakapan menggunakan konsol atau `conversationLogs` bidang `PutBotAlias` operasi. Anda dapat mengaktifkan atau mematikan log audio, log teks, atau keduanya. Logging dimulai pada sesi bot baru. Perubahan pada setelan log tidak tercermin untuk sesi aktif.

Untuk menyimpan log teks, gunakan grup CloudWatch log Amazon Logs di AWS akun Anda. Anda dapat menggunakan grup log yang valid. Grup log harus berada di wilayah yang sama dengan bot Amazon Lex. Untuk informasi selengkapnya tentang membuat grup CloudWatch log Log, lihat [Bekerja dengan Grup Log dan Aliran Log](https://docs.aws.amazon.com/AmazonCloudWatch/latest/logs/Working-with-log-groups-and-streams.html) di *Panduan Pengguna CloudWatch Log Amazon*.

Untuk menyimpan log audio, gunakan bucket Amazon S3 di akun Anda AWS . Anda dapat menggunakan bucket S3 yang valid. Ember harus berada di wilayah yang sama dengan bot Amazon Lex. Untuk informasi selengkapnya tentang membuat bucket S3, lihat [Membuat Bucket](https://docs.aws.amazon.com/AmazonS3/latest/gsg/CreatingABucket.html) di *Panduan Memulai Layanan Penyimpanan Sederhana Amazon*.

Anda harus memberikan peran IAM dengan kebijakan yang memungkinkan Amazon Lex menulis ke grup log atau bucket yang dikonfigurasi. Untuk informasi selengkapnya, lihat [Membuat Peran dan Kebijakan IAM untuk Log Percakapan](conversation-logs-policies.md#conversation-logs-role-and-policy).

Jika Anda membuat peran terkait layanan menggunakan AWS Command Line Interface, Anda harus menambahkan akhiran kustom ke peran menggunakan `custom-suffix` opsi sebagai berikut:

```
aws iam create-service-linked-role \
    --aws-service-name lex.amazon.aws.com \
    --custom-suffix suffix
```

Peran IAM yang Anda gunakan untuk mengaktifkan log percakapan harus memiliki `iam:PassRole` izin. Kebijakan berikut harus dilampirkan pada peran tersebut.

------
#### [ JSON ]

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Effect": "Allow",
            "Action": "iam:PassRole",
            "Resource": "arn:aws:iam::111122223333:role/role"
        }
    ]
}
```

------

## Mengaktifkan Log Percakapan
<a name="conversation-logs-enable"></a>

**Untuk mengaktifkan log menggunakan konsol**

1. Buka konsol Amazon Lex [https://console.aws.amazon.com/lex](https://console.aws.amazon.com/lex).

1. Dari daftar, pilih bot.

1. Pilih tab **Pengaturan**, lalu dari menu sebelah kiri pilih **Log percakapan**.

1. Dalam daftar alias, pilih ikon pengaturan untuk alias yang ingin Anda konfigurasikan log percakapan.

1. Pilih apakah akan mencatat teks, audio, atau keduanya. 

1. Untuk pencatatan teks, masukkan nama grup CloudWatch log Amazon Logs.

1. Untuk pencatatan audio, masukkan informasi bucket S3.

1. Tidak wajib. Untuk mengenkripsi log audio, pilih AWS KMS kunci yang akan digunakan untuk enkripsi.

1. Pilih peran IAM dengan izin yang diperlukan.

1. Pilih **Simpan** untuk mulai mencatat percakapan.

**Untuk mengaktifkan log teks menggunakan API**

1. Panggil [PutBotAlias](API_PutBotAlias.md) operasi dengan entri di `logSettings` anggota `conversationLogs` lapangan
   + Atur `destination` anggota ke `CLOUDWATCH_LOGS`
   + Atur `logType` anggota ke `TEXT`
   + Mengatur `resourceArn` anggota ke Amazon Resource Name (ARN) dari grup CloudWatch log Log yang merupakan tujuan untuk log

1. Setel `iamRoleArn` anggota `conversationLogs` bidang ke Nama Sumber Daya Amazon (ARN) peran IAM yang memiliki izin yang diperlukan untuk mengaktifkan log percakapan pada sumber daya yang ditentukan.

**Untuk mengaktifkan log audio menggunakan API**

1. Panggil [PutBotAlias](API_PutBotAlias.md) operasi dengan entri di `logSettings` anggota `conversationLogs` lapangan
   + Atur `destination` anggota ke `S3`
   + Atur `logType` anggota ke `AUDIO`
   + Setel `resourceArn` anggota ke ARN bucket Amazon S3 tempat log audio disimpan
   + Tidak wajib. Untuk mengenkripsi log audio dengan AWS KMS kunci tertentu, atur `kmsKeyArn` anggota ARN dari kunci yang digunakan untuk enkripsi.

1. Setel `iamRoleArn` anggota `conversationLogs` bidang ke Nama Sumber Daya Amazon (ARN) peran IAM yang memiliki izin yang diperlukan untuk mengaktifkan log percakapan pada sumber daya yang ditentukan.

## Menonaktifkan Log Percakapan
<a name="conversation-logs-disable"></a>

**Untuk mematikan log menggunakan konsol**

1. Buka konsol Amazon Lex [https://console.aws.amazon.com/lex](https://console.aws.amazon.com/lex).

1. Dari daftar, pilih bot.

1. Pilih tab **Pengaturan**, lalu dari menu sebelah kiri pilih **Log percakapan**.

1. Dalam daftar alias, pilih ikon pengaturan untuk alias yang ingin Anda konfigurasikan log percakapan.

1. Hapus cek dari teks, audio, atau keduanya untuk mematikan logging.

1. Pilih **Simpan** untuk menghentikan pencatatan percakapan.

**Untuk mematikan log menggunakan API**
+ Panggil `PutBotAlias` operasi tanpa `conversationLogs` lapangan.

**Untuk mematikan log teks menggunakan API**
+ 
  + Jika Anda mencatat audio
    + Panggil [PutBotAlias](API_PutBotAlias.md) operasi dengan `logSettings` entri hanya untuk`AUDIO`.
    + Panggilan ke `PutBotAlias` operasi tidak boleh memiliki `logSettings` entri untuk`TEXT`.
  + Jika Anda tidak mencatat audio
    + Panggil [PutBotAlias](API_PutBotAlias.md) operasi tanpa `conversationLogs` lapangan.

**Untuk mematikan log audio menggunakan API**
+ 
  + Jika Anda mencatat teks
    + Panggil [PutBotAlias](API_PutBotAlias.md) operasi dengan `logSettings` entri hanya untuk`TEXT`.
    + Panggilan ke `PutBotAlias` operasi tidak boleh memiliki `logSettings` entri untuk`AUDIO`.
  + Jika Anda tidak mencatat teks
    + Panggil [PutBotAlias](API_PutBotAlias.md) operasi tanpa `conversationLogs` lapangan.

# Mengenkripsi Log Percakapan
<a name="conversation-logs-encrypting"></a>

Anda dapat menggunakan enkripsi untuk membantu melindungi konten log percakapan Anda. Untuk log teks dan audio, Anda dapat menggunakan AWS KMS pelanggan yang dikelola CMKs untuk mengenkripsi data di grup CloudWatch log Log dan bucket S3 Anda.

**catatan**  
Amazon Lex hanya mendukung simetris CMKs. Jangan gunakan CMK asimetris untuk mengenkripsi data Anda.

Anda mengaktifkan enkripsi menggunakan AWS KMS kunci pada grup CloudWatch log Log yang digunakan Amazon Lex untuk log teks. Anda tidak dapat memberikan AWS KMS kunci dalam pengaturan log untuk mengaktifkan AWS KMS enkripsi grup log Anda. Untuk informasi selengkapnya, lihat [Mengenkripsi Data Log di CloudWatch Log Menggunakan AWS KMS](https://docs.aws.amazon.com/AmazonCloudWatch/latest/logs/encrypt-log-data-kms.html) di *Panduan Pengguna Amazon CloudWatch Logs*.

Untuk log audio, Anda menggunakan enkripsi default pada bucket S3 atau menentukan AWS KMS kunci untuk mengenkripsi objek audio Anda. Bahkan jika bucket S3 Anda menggunakan enkripsi default, Anda masih dapat menentukan AWS KMS kunci yang berbeda untuk mengenkripsi objek audio Anda. Untuk informasi selengkapnya, lihat [Enkripsi Default Amazon S3 untuk Bucket S3 di Panduan Pengembang](https://docs.aws.amazon.com/AmazonS3/latest/dev/bucket-encryption.html) Layanan *Penyimpanan Sederhana Amazon*.

Amazon Lex memerlukan AWS KMS izin jika Anda memilih untuk mengenkripsi log audio Anda. Anda perlu melampirkan kebijakan tambahan ke peran IAM yang digunakan untuk log percakapan. Jika Anda menggunakan enkripsi default pada bucket S3, kebijakan Anda harus memberikan akses ke AWS KMS kunci yang dikonfigurasi untuk bucket tersebut. Jika Anda menentukan AWS KMS kunci dalam pengaturan log audio Anda, Anda harus memberikan akses ke kunci itu.

Jika Anda belum membuat peran untuk log percakapan, lihat[Kebijakan IAM untuk Log Percakapan](conversation-logs-policies.md).

**Untuk membuat kebijakan IAM untuk menggunakan AWS KMS kunci untuk mengenkripsi log audio**

1. Buat dokumen di direktori saat ini yang disebut**LexConversationLogsKMSPolicy.json**, tambahkan kebijakan berikut ke dalamnya, dan simpan.

1. Di dalam AWS CLI, buat kebijakan IAM yang memberikan izin untuk menggunakan AWS KMS kunci untuk mengenkripsi log audio.

   ```
   aws iam create-policy \
       --policy-name kms-policy-name \
       --policy-document file://LexConversationLogsKMSPolicy.json
   ```

1. Lampirkan kebijakan ke peran yang Anda buat untuk log percakapan.

   ```
   aws iam attach-role-policy \
       --policy-arn arn:aws:iam::account-id:policy/kms-policy-name \
       --role-name role-name
   ```

# Melihat Log Teks di CloudWatch Log Amazon
<a name="conversation-logs-cw"></a>

Amazon Lex menyimpan log teks untuk percakapan Anda di Amazon CloudWatch Logs. Untuk melihat log, Anda dapat menggunakan konsol CloudWatch Log atau API. Untuk informasi selengkapnya, lihat [Cari Data Log Menggunakan Pola Filter](https://docs.aws.amazon.com/AmazonCloudWatch/latest/logs/SearchDataFilterPattern.html) dan [Sintaks Kueri Wawasan CloudWatch Log](https://docs.aws.amazon.com/AmazonCloudWatch/latest/logs/CWL_QuerySyntax.html) di *Panduan Pengguna Amazon CloudWatch Logs*.

**Untuk melihat log menggunakan konsol Amazon Lex**

1. Buka konsol Amazon Lex [https://console.aws.amazon.com/lex](https://console.aws.amazon.com/lex).

1. Dari daftar, pilih bot.

1. Pilih tab **Pengaturan**, lalu dari menu sebelah kiri pilih **Log percakapan**.

1. Pilih tautan di bawah **Log teks** untuk melihat log untuk alias di CloudWatch konsol.

Anda juga dapat menggunakan CloudWatch konsol atau API untuk melihat entri log Anda. Untuk menemukan entri log, navigasikan ke grup log yang Anda konfigurasikan untuk alias. Anda menemukan awalan aliran log untuk log Anda di konsol Amazon Lex atau dengan menggunakan [GetBotAlias](API_GetBotAlias.md) operasi. 

Entri log untuk ucapan pengguna ada di beberapa aliran log. Ucapan dalam percakapan memiliki entri di salah satu aliran log dengan awalan yang ditentukan. Entri dalam aliran log berisi informasi berikut.

```
{
   "messageVersion": "1.0",
   "botName": "bot name",
   "botAlias": "bot alias",
   "botVersion": "bot version",
   "inputTranscript": "text used to process the request",
   "botResponse": "response from the bot",
   "intent": "matched intent",
   "nluIntentConfidence": "number",
   "slots": {
       "slot name": "slot value",
       "slot name": null,
       "slot name": "slot value"
       ...
   },
   "alternativeIntents": [
       {
           "name": "intent name",
           "nluIntentConfidence": "number",
           "slots": {
               "slot name": slot value,
               "slot name": null,
               "slot name": slot value
               ...
           }
       },
       {
           "name": "intent name",
           "nluIntentConfidence": number,
           "slots": {}
       }
   ],
   "developerOverride": "true" | "false",
   "missedUtterance": true | false,
   "inputDialogMode": "Text" | "Speech",
   "requestId": "request ID",
   "s3PathForAudio": "S3 path to audio file",
   "userId": "user ID",
   "sessionId": "session ID",
   "sentimentResponse": {
       "sentimentScore": "{Positive: number, Negative: number, Neutral: number, Mixed: number}",
       "sentimentLabel": "Positive" | "Negative" | "Neutral" | "Mixed"
   },
   "slotToElicit": "slot name",
   "dialogState": "ElicitIntent" | "ConfirmIntent" | "ElicitSlot" | "Fulfilled" | "ReadyForFulfillment" | "Failed",
   "responseCard": {
       "genericAttachments": [
           ...
       ],
       "contentType": "application/vnd.amazonaws.card.generic",
       "version": 1
    },
   "locale": "locale",
   "timestamp": "ISO 8601 UTC timestamp",
   "kendraResponse": {
      "totalNumberOfResults": number,
      "resultItems": [
          {
              "id": "query ID",
              "type": "DOCUMENT" | "QUESTION_ANSWER" | "ANSWER",
              "additionalAttributes": [
                  {
                     ...
                  }
              ],
              "documentId": "document ID",
              "documentTitle": {
                  "text": "title",
                  "highlights": null
              },
              "documentExcerpt": {
                  "text": "text",
                  "highlights": [
                      {
                          "beginOffset": number,
                          "endOffset": number,
                          "topAnswer": true | false
                      }
                  ]
              },
              "documentURI": "URI",
              "documentAttributes": []
          }  
      ],
      "facetResults": [],
      "sdkResponseMetadata": {
          "requestId": "request ID"
      },
      "sdkHttpMetadata": {
          "httpHeaders": {
              "Content-Length": "number",
              "Content-Type": "application/x-amz-json-1.1",
              "Date": "date and time",
              "x-amzn-RequestId": "request ID"
          },
          "httpStatusCode": 200
      },
      "queryId": "query ID"
   },
   "sessionAttributes": {
       "attribute name": "attribute value"
       ...
    },
   "requestAttributes": {
       "attribute name": "attribute value"
       ...
    }
}
```

Isi entri log tergantung pada hasil transaksi dan konfigurasi bot dan permintaan.
+ `slotToElicit`Bidang `intent``slots`,, dan tidak muncul dalam entri jika `missedUtterance` bidang tersebut`true`.
+ `s3PathForAudio`Bidang tidak muncul jika log audio dinonaktifkan atau jika `inputDialogMode` bidangnya`Text`.
+ `responseCard`Bidang hanya muncul ketika Anda telah menentukan kartu respons untuk bot.
+ `requestAttributes`Peta hanya muncul jika Anda telah menentukan atribut permintaan dalam permintaan.
+ `kendraResponse`Bidang ini hanya ada ketika `AMAZON.KendraSearchIntent` membuat permintaan untuk mencari indeks Amazon Kendra.
+ `developerOverride`Bidang ini benar ketika maksud alternatif ditentukan dalam fungsi Lambda bot.
+ `sessionAttributes`Peta hanya muncul jika Anda telah menentukan atribut sesi dalam permintaan.
+ `sentimentResponse`Peta hanya muncul jika Anda mengonfigurasi bot untuk mengembalikan nilai sentimen.

**catatan**  
Format input dapat berubah tanpa perubahan yang sesuai dalam format`messageVersion`. Kode Anda seharusnya tidak menimbulkan kesalahan jika ada bidang baru.

Anda harus memiliki peran dan kebijakan yang ditetapkan untuk mengaktifkan Amazon Lex menulis ke CloudWatch Log. Untuk mengetahui informasi selengkapnya, lihat [Kebijakan IAM untuk Log Percakapan](conversation-logs-policies.md).

# Mengakses Log Audio di Amazon S3
<a name="conversation-logs-s3"></a>

Amazon Lex menyimpan log audio untuk percakapan Anda dalam ember S3. 

**Untuk mengakses log audio menggunakan konsol**

1. Buka konsol Amazon Lex [https://console.aws.amazon.com/lex](https://console.aws.amazon.com/lex).

1. Dari daftar, pilih bot.

1. Pilih tab **Pengaturan**, lalu dari menu sebelah kiri pilih **Log percakapan**.

1. Pilih tautan di bawah **Log audio** untuk mengakses log untuk alias di konsol Amazon S3.

Anda juga dapat menggunakan konsol Amazon S3 atau API untuk mengakses log audio. Anda dapat melihat awalan key objek S3 dari file audio di konsol Amazon Lex, atau di bidang `resourcePrefix` dalam respons operasi`GetBotAlias`.

# Memantau Status Log Percakapan dengan CloudWatch Metrik
<a name="conversation-logs-monitoring"></a>

Gunakan Amazon CloudWatch untuk memantau metrik pengiriman log percakapan Anda. Anda dapat mengatur alarm pada metrik sehingga Anda mengetahui masalah dengan pencatatan jika terjadi.

Amazon Lex menyediakan empat metrik di `AWS/Lex` namespace untuk log percakapan:
+ `ConversationLogsAudioDeliverySuccess`
+ `ConversationLogsAudioDeliveryFailure`
+ `ConversationLogsTextDeliverySuccess`
+ `ConversationLogsTextDeliveryFailure`

Untuk informasi selengkapnya, lihat [CloudWatch Metrik untuk Log Percakapan](monitoring-aws-lex-cloudwatch.md#cloudwatch-metrics-for-logging).

Metrik keberhasilan menunjukkan bahwa Amazon Lex telah berhasil menulis log audio atau teks Anda ke tujuan mereka. 

Metrik kegagalan menunjukkan bahwa Amazon Lex tidak dapat mengirimkan log audio atau teks ke tujuan yang ditentukan. Biasanya, ini adalah kesalahan konfigurasi. Jika metrik kegagalan Anda di atas nol, periksa hal berikut:
+ Pastikan Amazon Lex adalah entitas tepercaya untuk peran IAM.
+ Untuk pencatatan teks, pastikan grup CloudWatch log Log ada. Untuk pencatatan audio, pastikan bucket S3 ada.
+ Pastikan bahwa peran IAM yang digunakan Amazon Lex untuk mengakses grup CloudWatch log Log atau bucket S3 memiliki izin menulis untuk grup log atau bucket.
+ Pastikan bucket S3 ada di wilayah yang sama dengan bot Amazon Lex dan milik akun Anda.
+ Jika Anda menggunakan AWS KMS kunci untuk enkripsi S3, pastikan tidak ada kebijakan yang mencegah Amazon Lex menggunakan kunci Anda dan pastikan bahwa peran IAM yang Anda berikan memiliki izin yang diperlukan AWS KMS . Lihat informasi yang lebih lengkap di [Kebijakan IAM untuk Log Percakapan](conversation-logs-policies.md).

# Mengelola Sesi Dengan Amazon Lex API
<a name="how-session-api"></a>

Saat pengguna memulai percakapan dengan bot Anda, Amazon Lex membuat *sesi*. Informasi yang dipertukarkan antara aplikasi Anda dan Amazon Lex membentuk status sesi untuk percakapan. Saat Anda membuat permintaan, sesi diidentifikasi dengan kombinasi nama bot dan pengenal pengguna yang Anda tentukan. Untuk informasi selengkapnya tentang pengenal pengguna, lihat `userId` bidang dalam [PostText](API_runtime_PostText.md) operasi [PostContent](API_runtime_PostContent.md) atau.

Respons dari operasi sesi mencakup pengidentifikasi sesi unik yang mengidentifikasi sesi tertentu dengan pengguna. Anda dapat menggunakan pengenal ini selama pengujian atau untuk membantu memecahkan masalah bot Anda.

Anda dapat mengubah status sesi yang dikirim antara aplikasi Anda dan bot Anda. Misalnya, Anda dapat membuat dan memodifikasi atribut sesi yang berisi informasi khusus tentang sesi, dan Anda dapat mengubah alur percakapan dengan menyetel konteks dialog untuk menafsirkan ucapan berikutnya.

Ada dua cara Anda dapat memperbarui status sesi. Yang pertama adalah menggunakan fungsi Lambda dengan `PostContent` atau `PostText` operasi yang dipanggil setelah setiap putaran percakapan. Untuk informasi selengkapnya, lihat [Menggunakan Fungsi Lambda](using-lambda.md). Yang lainnya adalah menggunakan API runtime Amazon Lex di aplikasi Anda untuk membuat perubahan pada status sesi. 

Amazon Lex runtime API menyediakan operasi yang memungkinkan Anda mengelola informasi sesi untuk percakapan dengan bot Anda. Operasi adalah [PutSession](API_runtime_PutSession.md) operasi, [GetSession](API_runtime_GetSession.md) operasi, dan [DeleteSession](API_runtime_DeleteSession.md) operasi. Anda menggunakan operasi ini untuk mendapatkan informasi tentang status sesi pengguna Anda dengan bot Anda, dan untuk memiliki kontrol halus atas status.

Gunakan `GetSession` operasi saat Anda ingin mendapatkan status sesi saat ini. Operasi mengembalikan status sesi saat ini, termasuk status dialog dengan pengguna Anda, atribut sesi apa pun yang telah ditetapkan, dan nilai slot untuk tiga maksud terakhir yang berinteraksi dengan pengguna. 

`PutSession`Operasi ini memungkinkan Anda untuk secara langsung memanipulasi status sesi saat ini. Anda dapat mengatur jenis tindakan dialog yang akan dilakukan bot selanjutnya. Ini memberi Anda kendali atas aliran percakapan dengan bot. Atur `type` bidang tindakan dialog `Delegate` agar Amazon Lex menentukan tindakan selanjutnya untuk bot.

Anda dapat menggunakan `PutSession` operasi untuk membuat sesi baru dengan bot dan mengatur maksud bahwa bot harus memulai. Anda juga dapat menggunakan `PutSession` operasi untuk mengubah dari satu maksud ke maksud lainnya. Saat membuat sesi atau mengubah intent, Anda juga dapat mengatur status sesi, seperti nilai slot dan atribut sesi. Ketika intent baru selesai, Anda memiliki opsi untuk memulai ulang maksud sebelumnya. Anda dapat menggunakan `GetSession` operasi untuk mendapatkan status dialog dari intent sebelumnya dari Amazon Lex dan menggunakan informasi untuk menyetel status dialog maksud.

Respons dari `PutSession` operasi berisi informasi yang sama dengan `PostContent` operasi. Anda dapat menggunakan informasi ini untuk meminta pengguna untuk informasi berikutnya, seperti yang Anda lakukan dengan respons dari `PostContent` operasi.

Gunakan `DeleteSession` operasi untuk menghapus sesi yang ada dan mulai lagi dengan sesi baru. Misalnya, ketika Anda menguji bot Anda, Anda dapat menggunakan `DeleteSession` operasi untuk menghapus sesi pengujian dari bot Anda.

Operasi sesi bekerja dengan fungsi Lambda pemenuhan Anda. Misalnya, jika fungsi Lambda Anda kembali `Failed` sebagai status pemenuhan, Anda dapat menggunakan `PutSession` operasi untuk menyetel jenis tindakan dialog ke `close` dan `fulfillmentState` `ReadyForFulfillment` untuk mencoba lagi langkah pemenuhan.

Berikut adalah beberapa hal yang dapat Anda lakukan dengan operasi sesi:
+ Mintalah bot memulai percakapan alih-alih menunggu pengguna.
+ Beralih maksud selama percakapan.
+ Kembali ke intent sebelumnya.
+ Mulai atau mulai ulang percakapan di tengah interaksi.
+ Validasi nilai slot dan minta bot kembali meminta nilai yang tidak valid.

Masing-masing dijelaskan lebih lanjut di bawah ini.

## Beralih Maksud
<a name="session-switch"></a>

Anda dapat menggunakan `PutSession` operasi untuk beralih dari satu maksud ke maksud lainnya. Anda juga dapat menggunakannya untuk beralih kembali ke intent sebelumnya. Anda dapat menggunakan `PutSession` operasi untuk mengatur atribut sesi atau nilai slot untuk maksud baru.
+ Panggil `PutSession` operasi. Tetapkan nama maksud ke nama maksud baru dan setel tindakan dialog ke. `Delegate` Anda juga dapat mengatur nilai slot atau atribut sesi yang diperlukan untuk maksud baru.
+ Amazon Lex akan memulai percakapan dengan pengguna menggunakan maksud baru.

## Melanjutkan Niat Sebelumnya
<a name="session-return"></a>

Untuk melanjutkan intent sebelumnya, Anda menggunakan `GetSession` operasi untuk mendapatkan ringkasan intent, lalu gunakan `PutSession` operasi untuk menyetel intent ke status dialog sebelumnya.
+ Panggil `GetSession` operasi. Respons dari operasi mencakup ringkasan status dialog dari tiga intent terakhir yang berinteraksi dengan pengguna.
+ Menggunakan informasi dari ringkasan maksud, panggil `PutSession` operasi. Ini akan mengembalikan pengguna ke intent sebelumnya di tempat yang sama dalam percakapan.

Dalam beberapa kasus mungkin perlu untuk melanjutkan percakapan pengguna Anda dengan bot Anda. Misalnya, katakan bahwa Anda telah membuat bot layanan pelanggan. Aplikasi Anda menentukan bahwa pengguna perlu berbicara dengan perwakilan layanan pelanggan. Setelah berbicara dengan pengguna, perwakilan dapat mengarahkan percakapan kembali ke bot dengan informasi yang mereka kumpulkan.

Untuk melanjutkan sesi, gunakan langkah-langkah yang mirip dengan ini:
+ Aplikasi Anda menentukan bahwa pengguna perlu berbicara dengan perwakilan layanan pelanggan.
+ Gunakan `GetSession` operasi untuk mendapatkan status dialog intent saat ini. 
+ Perwakilan layanan pelanggan berbicara kepada pengguna dan menyelesaikan masalah.
+ Gunakan `PutSession` operasi untuk mengatur status dialog maksud. Ini mungkin termasuk menyetel nilai slot, menyetel atribut sesi, atau mengubah maksud.
+ Bot melanjutkan percakapan dengan pengguna.

Anda dapat menggunakan `checkpointLabel` parameter `PutSession` operasi untuk memberi label maksud sehingga Anda dapat menemukannya nanti. Misalnya, bot yang meminta informasi pelanggan mungkin masuk ke `Waiting` intent sementara pelanggan mengumpulkan informasi. Bot membuat label pos pemeriksaan untuk maksud saat ini dan kemudian memulai intent. `Waiting` Ketika pelanggan kembali, bot dapat menemukan maksud sebelumnya menggunakan label pos pemeriksaan dan beralih kembali. 

Maksud harus ada dalam `recentIntentSummaryView` struktur yang dikembalikan oleh `GetSession` operasi. Jika Anda menentukan label pos pemeriksaan dalam permintaan `GetSession` operasi, itu akan mengembalikan maksimum tiga maksud dengan label pos pemeriksaan itu.
+ Gunakan `GetSession` operasi untuk mendapatkan keadaan sesi saat ini.
+ Gunakan `PutSession` operasi untuk menambahkan label pos pemeriksaan ke maksud terakhir. Jika perlu, Anda dapat menggunakan `PutSession` panggilan ini untuk beralih ke maksud yang berbeda.
+ Ketika tiba waktunya untuk beralih kembali ke maksud berlabel, panggil `GetSession` operasi untuk mengembalikan daftar maksud terbaru. Anda dapat menggunakan `checkpointLabelFilter` parameter sehingga Amazon Lex hanya mengembalikan maksud dengan label pos pemeriksaan yang ditentukan.

## Memulai Sesi Baru
<a name="session-start"></a>

Jika Anda ingin bot memulai percakapan dengan pengguna Anda, Anda dapat menggunakan `PutSession` operasi. 
+ Buat maksud selamat datang tanpa slot dan pesan kesimpulan yang meminta pengguna untuk menyatakan maksud. Misalnya, “Apa yang ingin Anda pesan? Anda bisa mengatakan 'Pesan minuman' atau 'Pesan pizza. '”
+ Panggil `PutSession` operasi. Tetapkan nama maksud ke nama maksud selamat datang Anda dan setel tindakan dialog ke. `Delegate` 
+ Amazon Lex akan merespons dengan permintaan dari niat selamat datang Anda untuk memulai percakapan dengan pengguna Anda.

## Memvalidasi Nilai Slot
<a name="session-validation"></a>

Anda dapat memvalidasi tanggapan terhadap bot Anda menggunakan aplikasi klien Anda. Jika respons tidak valid, Anda dapat menggunakan `PutSession` operasi untuk mendapatkan respons baru dari pengguna Anda. Misalnya, bot pemesanan bunga Anda hanya dapat menjual tulip, mawar, dan bunga lili. Jika pengguna memesan anyelir, aplikasi Anda dapat melakukan hal berikut:
+ Periksa nilai slot yang dikembalikan dari `PostContent` respons `PostText` atau.
+ Jika nilai slot tidak valid, hubungi `PutSession` operasi. Aplikasi Anda harus menghapus nilai slot, mengatur `slotToElicit` bidang, dan menetapkan `dialogAction.type` nilainya`elicitSlot`. Secara opsional, Anda dapat mengatur `messageFormat` bidang `message` dan jika Anda ingin mengubah pesan yang digunakan Amazon Lex untuk memperoleh nilai slot.

# Opsi Penerapan Bot
<a name="chatbot-service"></a>

Saat ini, Amazon Lex menyediakan opsi penyebaran bot berikut:
+ [AWS Mobile SDK](https://aws.amazon.com/mobile/sdk/) — Anda dapat membuat aplikasi seluler yang berkomunikasi dengan Amazon Lex menggunakan AWS Mobile SDKs.
+ Facebook Messenger — Anda dapat mengintegrasikan halaman Facebook Messenger Anda dengan bot Amazon Lex Anda sehingga pengguna akhir di Facebook dapat berkomunikasi dengan bot. Dalam implementasi saat ini, integrasi ini hanya mendukung pesan input teks. 
+ Slack — Anda dapat mengintegrasikan bot Amazon Lex Anda dengan aplikasi perpesanan Slack.
+ Twilio — Anda dapat mengintegrasikan bot Amazon Lex Anda dengan Twilio Simple Messaging Service (SMS).

Sebagai contoh, lihat [Menyebarkan Amazon Lex Bots](examples.md).

# Intent dan Jenis Slot Bawaan
<a name="howitworks-builtins"></a>

Untuk membuatnya lebih mudah untuk membuat bot, Amazon Lex memungkinkan Anda untuk menggunakan maksud bawaan standar dan jenis slot. 

**Topics**
+ [Maksud bawaan](howitworks-builtins-intents.md)
+ [Jenis Slot Bawaan](howitworks-builtins-slots.md)

# Maksud bawaan
<a name="howitworks-builtins-intents"></a>

Untuk tindakan umum, Anda dapat menggunakan pustaka maksud bawaan standar. Untuk membuat intent dari intent bawaan, pilih intent bawaan di konsol, dan beri nama baru. Maksud baru memiliki konfigurasi maksud dasar, seperti contoh ucapan. 

Dalam implementasi saat ini, Anda tidak dapat melakukan hal berikut: 
+ Menambahkan atau menghapus contoh ucapan dari maksud dasar
+ Konfigurasikan slot untuk maksud bawaan

**Untuk menambahkan intent bawaan ke bot**

1. Masuk ke Konsol Manajemen AWS dan buka konsol Amazon Lex di [https://console.aws.amazon.com/lex/](https://console.aws.amazon.com/lex/).

1. Pilih bot untuk menambahkan maksud bawaan.

1. Di panel navigasi, pilih plus (\$1) di sebelah **Maksud**.

1. Untuk **Tambah maksud**, pilih **Cari maksud yang ada**.

1. Di kotak **Search intents**, ketikkan nama intent bawaan untuk ditambahkan ke bot Anda.

1. **Untuk **Salin maksud bawaan**, beri nama maksud, lalu pilih Tambah.**

1. Konfigurasikan intent seperti yang diperlukan untuk bot Anda.

**Topics**
+ [AMAZON.CancelIntent](built-in-intent-cancel.md)
+ [AMAZON.FallbackIntent](built-in-intent-fallback.md)
+ [AMAZON.HelpIntent](built-in-intent-help.md)
+ [AMAZON.KendraSearchIntent](built-in-intent-kendra-search.md)
+ [AMAZON.PauseIntent](built-in-intent-pause.md)
+ [AMAZON.RepeatIntent](built-in-intent-repeat.md)
+ [AMAZON.ResumeIntent](built-in-intent-resume.md)
+ [AMAZON.StartOverIntent](built-in-intent-start-over.md)
+ [AMAZON.StopIntent](built-in-intent-stop.md)

**catatan**  
Untuk lokal bahasa Inggris (AS) (en-AS), Amazon Lex mendukung maksud dari intent bawaan standar Alexa. Untuk daftar intent bawaan, lihat [Intent Bawaan Standar](https://developer.amazon.com/docs/custom-skills/standard-built-in-intents.html) di *Alexa* Skills Kit.  
Amazon Lex tidak mendukung maksud berikut:  
`AMAZON.YesIntent`
`AMAZON.NoIntent` 
Maksud di [Built-in Intent Library](https://developer.amazon.com/docs/custom-skills/built-in-intent-library.html) di *Alexa* Skills Kit

# AMAZON.CancelIntent
<a name="built-in-intent-cancel"></a>

Menanggapi kata dan frasa yang menunjukkan pengguna ingin membatalkan interaksi saat ini. Aplikasi Anda dapat menggunakan intent ini untuk menghapus nilai jenis slot dan atribut lainnya sebelum mengakhiri interaksi dengan pengguna.

Ucapan umum:
+ membatalkan
+ tidak pernah keberatan
+ lupakan saja

# AMAZON.FallbackIntent
<a name="built-in-intent-fallback"></a>

*Jika input pengguna ke intent tidak seperti yang diharapkan bot, Anda dapat mengonfigurasi Amazon Lex untuk memanggil maksud fallback.* Misalnya, jika input pengguna “Saya ingin memesan permen” tidak cocok dengan maksud di `OrderFlowers` bot Anda, Amazon Lex memanggil maksud fallback untuk menangani respons.

Anda menambahkan intent fallback dengan menambahkan tipe intent bawaan ke `AMAZON.FallbackIntent` bot Anda. Anda dapat menentukan maksud menggunakan [PutBot](API_PutBot.md) operasi atau dengan memilih intent dari daftar intent bawaan di konsol. 

Memanggil maksud fallback menggunakan dua langkah. Pada langkah pertama maksud fallback dicocokkan berdasarkan input dari pengguna. Ketika maksud fallback dicocokkan, cara bot berperilaku bergantung pada jumlah percobaan ulang yang dikonfigurasi untuk prompt. Misalnya, jika jumlah maksimum upaya untuk menentukan maksud adalah 2, bot mengembalikan prompt klarifikasi bot dua kali sebelum menjalankan maksud fallback.

Amazon Lex cocok dengan maksud mundur dalam situasi ini: 
+ Input pengguna ke intent tidak cocok dengan input yang diharapkan bot
+ Input audio adalah noise, atau input teks tidak dikenali sebagai kata-kata.
+ Masukan pengguna bersifat ambigu dan Amazon Lex tidak dapat menentukan maksud mana yang akan dipanggil.

Maksud fallback dipanggil saat:
+ Bot tidak mengenali input pengguna sebagai maksud setelah jumlah percobaan yang dikonfigurasi untuk klarifikasi saat percakapan dimulai.
+ Intent tidak mengenali input pengguna sebagai nilai slot setelah jumlah percobaan yang dikonfigurasi.
+ Intent tidak mengenali input pengguna sebagai respons terhadap prompt konfirmasi setelah jumlah percobaan yang dikonfigurasi.

Anda dapat menggunakan yang berikut ini dengan maksud fallback:
+ Fungsi Lambda pemenuhan
+ Pernyataan kesimpulan
+ Prompt tindak lanjut

Anda tidak dapat menambahkan yang berikut ini ke intent fallback:
+ Ucapan
+ Slot
+ Fungsi Lambda inisialisasi dan validasi 
+ Prompt konfirmasi

Jika Anda telah mengonfigurasi pernyataan pembatalan dan maksud fallback untuk bot, Amazon Lex menggunakan maksud fallback. Jika Anda membutuhkan bot Anda untuk memiliki pernyataan pembatalan, Anda dapat menggunakan fungsi pemenuhan untuk maksud fallback untuk memberikan perilaku yang sama seperti pernyataan pembatalan. Untuk informasi lebih lanjut, lihat `abortStatement` parameter [PutBot](API_PutBot.md) operasi.

## Menggunakan Prompt Klarifikasi
<a name="fallback-clarification"></a>

Jika Anda memberikan bot Anda dengan prompt klarifikasi, prompt digunakan untuk meminta maksud yang valid dari pengguna. Prompt klarifikasi akan diulang berapa kali yang Anda konfigurasikan. Setelah itu maksud fallback akan dipanggil.

Jika Anda tidak menetapkan prompt klarifikasi saat membuat bot dan pengguna tidak memulai percakapan dengan maksud yang valid, Amazon Lex segera memanggil maksud fallback Anda. 

Saat Anda menggunakan intent fallback tanpa prompt klarifikasi, Amazon Lex tidak memanggil fallback dalam keadaan berikut:
+ Saat pengguna merespons prompt tindak lanjut tetapi tidak memberikan maksud. Misalnya, sebagai tanggapan atas prompt tindak lanjut yang mengatakan “Apakah Anda ingin hal lain hari ini?” , pengguna mengatakan “Ya.” Amazon Lex mengembalikan pengecualian 400 Permintaan Buruk karena tidak memiliki prompt klarifikasi untuk dikirim ke pengguna untuk mendapatkan maksud.
+ Saat menggunakan AWS Lambda fungsi, Anda mengembalikan tipe `ElicitIntent` dialog. Karena Amazon Lex tidak memiliki prompt klarifikasi untuk mendapatkan maksud dari pengguna, Amazon Lex mengembalikan pengecualian 400 Bad Request.
+ Saat menggunakan `PutSession` operasi, Anda mengirim jenis `ElicitIntent` dialog. Karena Amazon Lex tidak memiliki prompt klarifikasi untuk mendapatkan maksud dari pengguna, Amazon Lex mengembalikan pengecualian 400 Bad Request.

## Menggunakan Fungsi Lambda dengan Maksud Fallback
<a name="invoke-fallback"></a>

Ketika maksud fallback dipanggil, respons bergantung pada pengaturan `fulfillmentActivity` parameter ke operasi. [PutIntent](API_PutIntent.md) Bot melakukan salah satu hal berikut:
+ Mengembalikan informasi maksud ke aplikasi klien.
+ Memanggil fungsi Lambda pemenuhan. Ini memanggil fungsi dengan variabel sesi yang diatur untuk sesi.

Untuk informasi selengkapnya tentang menyetel respons saat maksud fallback dipanggil, lihat `fulfillmentActivity` parameter operasi. [PutIntent](API_PutIntent.md) 

Jika Anda menggunakan fungsi Lambda pemenuhan dalam maksud fallback, Anda dapat menggunakan fungsi ini untuk memanggil maksud lain atau untuk melakukan beberapa bentuk komunikasi dengan pengguna, seperti mengumpulkan nomor panggilan balik atau membuka sesi dengan perwakilan layanan pelanggan.

Anda dapat melakukan tindakan apa pun dalam fungsi Lambda intent fallback yang dapat Anda lakukan dalam fungsi pemenuhan untuk maksud lainnya. Untuk informasi selengkapnya tentang membuat fungsi pemenuhan menggunakan AWS Lambda, lihat[Menggunakan Fungsi Lambda](using-lambda.md).

Maksud fallback dapat dipanggil beberapa kali dalam sesi yang sama. Misalnya, fungsi Lambda Anda menggunakan tindakan `ElicitIntent` dialog untuk meminta pengguna untuk maksud yang berbeda. Jika Amazon Lex tidak dapat menyimpulkan maksud pengguna setelah jumlah percobaan yang dikonfigurasi, Amazon Lex akan memanggil maksud fallback lagi. Ini juga memanggil maksud fallback ketika pengguna tidak merespons dengan nilai slot yang valid setelah jumlah percobaan yang dikonfigurasi.

Anda dapat mengonfigurasi fungsi Lambda untuk melacak berapa kali intent fallback dipanggil menggunakan variabel sesi. Fungsi Lambda Anda dapat mengambil tindakan yang berbeda jika dipanggil lebih banyak dari ambang batas yang Anda tetapkan dalam fungsi Lambda Anda. Untuk informasi selengkapnya tentang variabel sesi, lihat[Mengatur Atribut Sesi](context-mgmt-session-attribs.md).

# AMAZON.HelpIntent
<a name="built-in-intent-help"></a>

Menanggapi kata atau frasa yang menunjukkan pengguna membutuhkan bantuan saat berinteraksi dengan bot Anda. Ketika intent ini dipanggil, Anda dapat mengonfigurasi fungsi atau aplikasi Lambda Anda untuk memberikan informasi tentang kemampuan bot Anda, mengajukan pertanyaan lanjutan tentang area bantuan, atau menyerahkan interaksi ke agen manusia. 

Ucapan umum:
+ bantuan
+ tolong aku
+ dapatkah Anda membantu saya

# AMAZON.KendraSearchIntent
<a name="built-in-intent-kendra-search"></a>

Untuk mencari dokumen yang telah Anda indeks dengan Amazon Kendra, gunakan intent. `AMAZON.KendraSearchIntent` Jika Amazon Lex tidak dapat menentukan tindakan selanjutnya dalam percakapan dengan pengguna, Amazon Lex akan memicu maksud pencarian.

`AMAZON.KendraSearchIntent`Ini hanya tersedia di wilayah Inggris (AS) (en-AS) dan di Wilayah AS Timur (Virginia N.), AS Barat (Oregon) dan Eropa (Irlandia).

Amazon Kendra adalah layanan machine-learning-based pencarian yang mengindeks dokumen bahasa alami seperti dokumen PDF atau file Microsoft Word. Ini dapat mencari dokumen yang diindeks dan mengembalikan jenis tanggapan berikut ke pertanyaan:
+ Jawaban 
+ Entri dari FAQ yang mungkin menjawab pertanyaan
+ Dokumen yang terkait dengan pertanyaan

Untuk contoh menggunakan`AMAZON.KendraSearchIntent`, lihat[Contoh: Membuat Bot FAQ untuk Indeks Amazon Kendra](faq-bot-kendra-search.md).

Jika Anda mengonfigurasi `AMAZON.KendraSearchIntent` intent untuk bot Anda, Amazon Lex akan memanggil intent kapan pun intent tidak dapat menentukan ucapan pengguna untuk slot atau intent. Misalnya, jika bot Anda memunculkan respons untuk jenis slot yang disebut “pizza topping” dan pengguna mengatakan “Apa itu pizza? ,” Amazon Lex memanggil `AMAZON.KendraSearchIntent` untuk menangani pertanyaan itu. Jika tidak ada tanggapan dari Amazon Kendra, percakapan berlanjut seperti yang dikonfigurasi di bot.

Saat Anda menggunakan keduanya `AMAZON.KendraSearchIntent` dan `AMAZON.FallbackIntent` di bot yang sama, Amazon Lex menggunakan intent sebagai berikut:

1. Amazon Lex memanggil`AMAZON.KendraSearchIntent`. Maksudnya menyebut operasi Amazon `Query` Kendra.

1. Jika Amazon Kendra mengembalikan respons, Amazon Lex menampilkan hasilnya kepada pengguna.

1. Jika tidak ada tanggapan dari Amazon Kendra, Amazon Lex meminta kembali pengguna. Tindakan selanjutnya tergantung pada respons dari pengguna.
   + Jika respons dari pengguna berisi ucapan yang dikenali Amazon Lex, seperti mengisi nilai slot atau mengonfirmasi maksud, percakapan dengan pengguna dilanjutkan seperti yang dikonfigurasi untuk bot.
   + Jika respons dari pengguna tidak mengandung ucapan yang dikenali Amazon Lex, Amazon Lex membuat panggilan lain ke operasi. `Query`

1. Jika tidak ada respons setelah jumlah percobaan ulang yang dikonfigurasi, Amazon Lex memanggil `AMAZON.FallbackIntent` dan mengakhiri percakapan dengan pengguna.

Ada tiga cara untuk menggunakan `AMAZON.KendraSearchIntent` untuk membuat permintaan ke Amazon Kendra:
+ Biarkan maksud pencarian membuat permintaan untuk Anda. Amazon Lex menyebut Amazon Kendra dengan ucapan pengguna sebagai string pencarian. Saat membuat intent, Anda dapat menentukan string filter kueri yang membatasi jumlah respons yang dikembalikan Amazon Kendra. Amazon Lex menggunakan filter dalam permintaan kueri.
+ Tambahkan parameter kueri tambahan ke permintaan untuk mempersempit hasil pencarian menggunakan fungsi Lambda dialog Anda. Anda menambahkan `kendraQueryFilterString` bidang yang berisi parameter kueri Amazon Kendra ke tindakan `delegate` dialog. Saat Anda menambahkan parameter kueri ke permintaan dengan fungsi Lambda, parameter tersebut lebih diutamakan daripada filter kueri yang Anda tentukan saat Anda membuat maksud.
+ Buat kueri baru menggunakan fungsi dialog Lambda. Anda dapat membuat permintaan kueri Amazon Kendra lengkap yang dikirimkan Amazon Lex. Anda menentukan kueri di `kendraQueryRequestPayload` bidang dalam tindakan `delegate` dialog. `kendraQueryRequestPayload`Lapangan lebih diutamakan di atas lapangan. `kendraQueryFilterString`

Untuk menentukan `queryFilterString` parameter saat Anda membuat bot, atau untuk menentukan `kendraQueryFilterString` bidang saat Anda memanggil `delegate` tindakan dalam dialog fungsi Lambda, Anda menentukan string yang digunakan sebagai filter atribut untuk kueri Amazon Kendra. Jika string bukan filter atribut yang valid, Anda akan mendapatkan `InvalidBotConfigException` pengecualian saat runtime. Untuk informasi selengkapnya tentang filter atribut, lihat [Menggunakan atribut dokumen untuk memfilter kueri](https://docs.aws.amazon.com/kendra/latest/dg/filtering.html#search-filtering) di Panduan Pengembang *Amazon Kendra*.

Untuk memiliki kontrol atas kueri yang dikirimkan Amazon Lex ke Amazon Kendra, Anda dapat menentukan kueri di `kendraQueryRequestPayload` bidang di dialog Anda fungsi Lambda. Jika kueri tidak valid, Amazon Lex mengembalikan `InvalidLambdaResponseException` pengecualian. Untuk informasi selengkapnya, lihat [Operasi kueri](https://docs.aws.amazon.com/kendra/latest/dg/API_Query.html) di Panduan *Pengembang Amazon Kendra*.

Untuk contoh cara menggunakan`AMAZON.KendraSearchIntent`, lihat[Contoh: Membuat Bot FAQ untuk Indeks Amazon Kendra](faq-bot-kendra-search.md).

## Kebijakan IAM untuk Pencarian Amazon Kendra
<a name="kendra-search-iam"></a>

Untuk menggunakan `AMAZON.KendraSearchIntent` intent, Anda harus menggunakan peran yang menyediakan kebijakan AWS Identity and Access Management (IAM) yang memungkinkan Amazon Lex untuk mengambil peran runtime yang memiliki izin untuk memanggil maksud Amazon Kendra. `Query` Pengaturan IAM yang Anda gunakan bergantung pada apakah Anda membuat `AMAZON.KendraSearchIntent` menggunakan konsol Amazon Lex, atau menggunakan AWS SDK atau AWS Command Line Interface ()AWS CLI. Saat menggunakan konsol, Anda dapat memilih antara menambahkan izin untuk memanggil Amazon Kendra ke peran terkait layanan Amazon Lex atau menggunakan peran khusus untuk memanggil operasi Amazon Kendra. `Query` Bila Anda menggunakan AWS CLI atau SDK untuk membuat intent, Anda harus menggunakan peran khusus untuk memanggil operasi. `Query`

### Melampirkan Izin
<a name="kendra-iam-attach"></a>

Anda dapat menggunakan konsol untuk melampirkan izin untuk mengakses operasi Amazon `Query` Kendra ke peran default Amazon Lex terkait layanan. Saat melampirkan izin ke peran terkait layanan, Anda tidak perlu membuat dan mengelola peran runtime secara khusus untuk terhubung ke indeks Amazon Kendra.

Pengguna, peran, atau grup yang Anda gunakan untuk mengakses konsol Amazon Lex harus memiliki izin untuk mengelola kebijakan peran. Lampirkan kebijakan IAM berikut ke peran akses konsol. Saat Anda memberikan izin ini, peran tersebut memiliki izin untuk mengubah kebijakan peran terkait layanan yang ada. 

------
#### [ JSON ]

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Effect": "Allow",
            "Action": [
                "iam:AttachRolePolicy",
                "iam:PutRolePolicy",
                "iam:GetRolePolicy"
            ],
            "Resource": "arn:aws:iam::*:role/aws-service-role/lex.amazonaws.com/AWSServiceRoleForLexBots"
        },
        {
            "Effect": "Allow",
            "Action": "iam:ListRoles",
            "Resource": "*"
        }
    ]
}
```

------

### Menentukan Peran
<a name="kendra-iam-role"></a>

Anda dapat menggunakan konsol, API AWS CLI, atau API untuk menentukan peran runtime yang akan digunakan saat memanggil operasi Amazon `Query` Kendra. 

Pengguna, peran, atau grup yang Anda gunakan untuk menentukan peran runtime harus memiliki `iam:PassRole` izin. Kebijakan berikut mendefinisikan izin. Anda dapat menggunakan kunci konteks `iam:AssociatedResourceArn` dan `iam:PassedToService` kondisi untuk membatasi cakupan izin lebih lanjut. Untuk informasi selengkapnya, lihat [IAM dan AWS STS Condition Context Keys](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_iam-condition-keys.html) di *Panduan AWS Identity and Access Management Pengguna*.

------
#### [ JSON ]

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Effect": "Allow",
            "Action": "iam:PassRole",
            "Resource": "arn:aws:iam::111122223333:role/role"
        }
    ]
}
```

------

Peran runtime yang perlu digunakan Amazon Lex untuk memanggil Amazon Kendra harus memiliki `kendra:Query` izin. Saat Anda menggunakan peran IAM yang ada untuk izin memanggil operasi Amazon `Query` Kendra, peran tersebut harus memiliki kebijakan berikut yang dilampirkan.

Anda dapat menggunakan konsol IAM, API IAM, atau AWS CLI untuk membuat kebijakan dan melampirkannya ke peran. Petunjuk ini menggunakan AWS CLI untuk membuat peran dan kebijakan.

**catatan**  
Kode berikut diformat untuk Linux dan macOS. Untuk Windows, ganti karakter kelanjutan baris Linux (\$1) dengan tanda sisipan (^).

**Untuk menambahkan izin operasi Kueri ke peran**

1. Buat dokumen yang disebut **KendraQueryPolicy.json** di direktori saat ini, tambahkan kode berikut ke dalamnya, dan simpan

1. Dalam AWS CLI, jalankan perintah berikut untuk membuat kebijakan IAM untuk menjalankan operasi Amazon `Query` Kendra.

   ```
   aws iam create-policy \
       --policy-name query-policy-name \
       --policy-document file://KendraQueryPolicy.json
   ```

1. Lampirkan kebijakan ke peran IAM yang Anda gunakan untuk memanggil `Query` operasi.

   ```
   aws iam attach-role-policy \
       --policy-arn arn:aws:iam::account-id:policy/query-policy-name
       --role-name role-name
   ```

Anda dapat memilih untuk memperbarui peran terkait layanan Amazon Lex atau menggunakan peran yang Anda buat saat membuat `AMAZON.KendraSearchIntent` untuk bot Anda. Prosedur berikut menunjukkan bagaimana memilih peran IAM untuk digunakan.

**Untuk menentukan peran runtime untuk AMAZON. KendraSearchIntent**

1. Masuk ke Konsol Manajemen AWS dan buka konsol Amazon Lex di [https://console.aws.amazon.com/lex/](https://console.aws.amazon.com/lex/).

1. Pilih bot yang ingin Anda tambahkan. `AMAZON.KendraSearchIntent`

1. Pilih plus (\$1) di sebelah **Intent.**

1. Di **Tambah maksud**, pilih **Cari maksud yang ada**.

1. Di **Maksud pencarian**, masukkan **AMAZON.KendraSearchIntent** lalu pilih **Tambah**.

1. **Di **Salin maksud bawaan**, masukkan nama untuk maksud, seperti**KendraSearchIntent**, lalu pilih Tambah.**

1. Buka bagian **kueri Amazon Kendra**.

1. Untuk **peran IAM** pilih salah satu opsi berikut:
   + Untuk memperbarui peran terkait layanan Amazon Lex agar bot Anda dapat menanyakan indeks Amazon Kendra, pilih Tambahkan izin **Amazon** Kendra.
   + Untuk menggunakan peran yang memiliki izin untuk memanggil `Query` operasi Amazon Kendra, pilih **Gunakan peran yang ada**.

## Menggunakan Atribut Permintaan dan Sesi sebagai Filter
<a name="kendra-search-filter"></a>

Untuk memfilter respons dari Amazon Kendra ke item yang terkait dengan percakapan saat ini, gunakan atribut sesi dan permintaan sebagai filter dengan menambahkan `queryFilterString` parameter saat Anda membuat bot. Anda menentukan placeholder untuk atribut saat membuat intent, lalu Amazon Lex V2 mengganti nilai sebelum memanggil Amazon Kendra. Untuk informasi selengkapnya tentang atribut permintaan, lihat[Mengatur Atribut Permintaan](context-mgmt-request-attribs.md). Untuk informasi selengkapnya tentang atribut sesi, lihat[Mengatur Atribut Sesi](context-mgmt-session-attribs.md).

Berikut ini adalah contoh `queryFilterString` parameter yang menggunakan string untuk memfilter kueri Amazon Kendra.

```
"{"equalsTo": {"key": "City", "value": {"stringValue": "Seattle"}}}"
```

Berikut ini adalah contoh `queryFilterString` parameter yang menggunakan atribut sesi dipanggil `"SourceURI"` untuk memfilter kueri Amazon Kendra.

```
"{"equalsTo": {"key": "SourceURI","value": {"stringValue": "[FileURL]"}}}"
```

Berikut ini adalah contoh `queryFilterString` parameter yang menggunakan atribut permintaan dipanggil `"DepartmentName"` untuk memfilter kueri Amazon Kendra.

```
"{"equalsTo": {"key": "Department","value": {"stringValue": "((DepartmentName))"}}}"
```

`AMAZON.KendraSearchInteng`Filter menggunakan format yang sama dengan filter pencarian Amazon Kendra. Untuk informasi selengkapnya, lihat [Menggunakan atribut dokumen untuk memfilter hasil penelusuran](https://docs.aws.amazon.com/kendra/latest/dg/filtering.html#search-filtering) di *panduan pengembang Amazon Kendra*.

String filter kueri yang digunakan dengan huruf kecil `AMAZON.KendraSearchIntent` harus menggunakan huruf kecil untuk huruf pertama dari setiap filter. Misalnya, berikut ini adalah filter kueri yang valid untuk file`AMAZON.KendraSearchIntent`.

```
{
    "andAllFilters": [
        {
            "equalsTo": {
                "key": "City",
                "value": {
                    "stringValue": "Seattle"
                }
            }
        },
        {
            "equalsTo": {
                "key": "State",
                "value": {
                    "stringValue": "Washington"
                }
            }
        }
    ]
}
```

## Menggunakan Respon Pencarian
<a name="kendra-search-response"></a>

Amazon Kendra mengembalikan respons ke pencarian dalam pernyataan maksud. `conclusion` Maksud harus memiliki `conclusion` pernyataan kecuali fungsi Lambda pemenuhan menghasilkan pesan kesimpulan.

Amazon Kendra memiliki empat jenis tanggapan. 
+ `x-amz-lex:kendra-search-response-question_answer-question-<N>`— Pertanyaan dari FAQ yang cocok dengan pencarian.
+ `x-amz-lex:kendra-search-response-question_answer-answer-<N>`— Jawaban dari FAQ yang cocok dengan pencarian.
+ `x-amz-lex:kendra-search-response-document-<N>`— Kutipan dari dokumen dalam indeks yang terkait dengan teks ucapan.
+ `x-amz-lex:kendra-search-response-document-link-<N>`— URL dokumen dalam indeks yang terkait dengan teks ucapan.
+ `x-amz-lex:kendra-search-response-answer-<N>`— Kutipan dari dokumen dalam indeks yang menjawab pertanyaan.

Tanggapan dikembalikan dalam `request` atribut. Ada hingga lima tanggapan untuk setiap atribut, bernomor 1 hingga 5. Untuk informasi selengkapnya tentang tanggapan, lihat [Jenis respons](https://docs.aws.amazon.com/kendra/latest/dg/response-types.html) di Panduan *Pengembang Amazon Kendra*. 

`conclusion`Pernyataan harus memiliki satu atau lebih grup pesan. Setiap grup pesan berisi satu atau beberapa pesan. Setiap pesan dapat berisi satu atau beberapa variabel placeholder yang diganti dengan atribut permintaan dalam respons dari Amazon Kendra. Harus ada setidaknya satu pesan dalam grup pesan di mana semua variabel dalam pesan diganti dengan nilai atribut permintaan dalam respons runtime, atau harus ada pesan dalam grup tanpa variabel placeholder. Atribut permintaan diatur dengan tanda kurung ganda (“((” “))”). Pesan grup pesan berikut cocok dengan respons apa pun dari Amazon Kendra:
+ “Saya menemukan pertanyaan FAQ untuk Anda: ((x-amz-lex: kendra-search-response-question \$1jawaban-pertanyaan-1)), dan jawabannya adalah ((: \$1jawaban-jawab-1))” x-amz-lex kendra-search-response-question
+ “Saya menemukan kutipan dari dokumen yang bermanfaat: ((x-amz-lex: kendra-search-response-document -1))”
+ “Saya pikir jawaban atas pertanyaan Anda adalah ((x-amz-lex: kendra-search-response-answer -1))”

## Menggunakan Fungsi Lambda untuk Mengelola Permintaan dan Respons
<a name="kendra-search-lambda"></a>

`AMAZON.KendraSearchIntent`Maksud dapat menggunakan hook kode dialog dan hook kode pemenuhan untuk mengelola permintaan ke Amazon Kendra dan responsnya. Gunakan fungsi Lambda kait kode dialog saat Anda ingin memodifikasi kueri yang Anda kirim ke Amazon Kendra, dan kode pemenuhan mengaitkan fungsi Lambda saat Anda ingin memodifikasi respons.

### Membuat Query dengan Hook Kode Dialog
<a name="kendra-search-lambda-dialog"></a>

Anda dapat menggunakan hook kode dialog untuk membuat kueri untuk dikirim ke Amazon Kendra. Menggunakan hook kode dialog adalah opsional. Jika Anda tidak menentukan hook kode dialog, Amazon Lex akan membuat kueri dari ucapan pengguna dan menggunakan `queryFilterString` yang Anda berikan saat mengonfigurasi intent, jika Anda memberikannya.

Anda dapat menggunakan dua bidang dalam respons kait kode dialog untuk memodifikasi permintaan ke Amazon Kendra:
+ `kendraQueryFilterString`— Gunakan string ini untuk menentukan filter atribut untuk permintaan Amazon Kendra. Anda dapat memfilter kueri menggunakan salah satu bidang indeks yang ditentukan dalam indeks Anda. Untuk struktur string filter, lihat [Menggunakan atribut dokumen untuk memfilter kueri di Panduan](https://docs.aws.amazon.com/kendra/latest/dg/filtering.html#search-filtering) Pengembang *Amazon Kendra*. Jika string filter yang ditentukan tidak valid, Anda akan mendapatkan `InvalidLambdaResponseException` pengecualian. `kendraQueryFilterString`String mengesampingkan string kueri apa pun yang ditentukan dalam `queryFilterString` konfigurasi untuk maksud.
+ `kendraQueryRequestPayload`— Gunakan string ini untuk menentukan kueri Amazon Kendra. Kueri Anda dapat menggunakan salah satu fitur Amazon Kendra. Jika Anda tidak menentukan kueri yang valid, Anda mendapatkan `InvalidLambdaResponseException` pengecualian. Untuk informasi selengkapnya, lihat [Kueri](https://docs.aws.amazon.com/kendra/latest/dg/API_Query.html) di Panduan *Pengembang Amazon Kendra*.

Setelah Anda membuat string filter atau kueri, Anda mengirim respons ke Amazon Lex dengan `dialogAction` bidang respons yang disetel ke`delegate`. Amazon Lex mengirimkan kueri ke Amazon Kendra dan kemudian mengembalikan respons kueri ke hook kode pemenuhan.

### Menggunakan Hook Kode Pemenuhan untuk Respons
<a name="kendra-search-lambda-fulfillment"></a>

Setelah Amazon Lex mengirim kueri ke Amazon Kendra, respons kueri dikembalikan ke fungsi Lambda `AMAZON.KendraSearchIntent` pemenuhan. Acara input ke kait kode berisi respons lengkap dari Amazon Kendra. Data kueri berada dalam struktur yang sama dengan yang dikembalikan oleh operasi Amazon Kendra`Query`. Untuk informasi selengkapnya, lihat [Sintaks respons kueri](https://docs.aws.amazon.com/kendra/latest/dg/API_Query.html#API_Query_ResponseSyntax) di Panduan Pengembang *Amazon Kendra*.

Kait kode pemenuhan adalah opsional. Jika tidak ada, atau jika kait kode tidak mengembalikan pesan dalam respons, Amazon Lex menggunakan `conclusion` pernyataan tersebut untuk tanggapan.

# Contoh: Membuat Bot FAQ untuk Indeks Amazon Kendra
<a name="faq-bot-kendra-search"></a>

Contoh ini membuat bot Amazon Lex yang menggunakan indeks Amazon Kendra untuk memberikan jawaban atas pertanyaan pengguna. Bot FAQ mengelola dialog untuk pengguna. Ini menggunakan `AMAZON.KendraSearchIntent` maksud untuk menanyakan indeks dan menyajikan respons kepada pengguna. Untuk membuat bot, Anda: 

1. Buat bot yang akan berinteraksi dengan pelanggan Anda untuk mendapatkan jawaban dari bot Anda.

1. Buat maksud khusus. Bot Anda membutuhkan setidaknya satu maksud dengan setidaknya satu ucapan. Maksud ini memungkinkan bot Anda untuk membangun, tetapi tidak digunakan sebaliknya.

1. Tambahkan `KendraSearchIntent` intent ke bot Anda dan konfigurasikan agar berfungsi dengan indeks Amazon Kendra Anda.

1. Uji bot dengan mengajukan pertanyaan yang dijawab oleh dokumen yang disimpan dalam indeks Amazon Kendra Anda.

Sebelum Anda dapat menggunakan contoh ini, Anda perlu membuat indeks Amazon Kendra. Untuk informasi selengkapnya, lihat [Memulai bucket (konsol) S3](https://docs.aws.amazon.com/kendra/latest/dg/gs-console.html) di Panduan Pengembang *Amazon Kendra*.

**Untuk membuat bot FAQ**

1. Masuk ke Konsol Manajemen AWS dan buka konsol Amazon Lex di [https://console.aws.amazon.com/lex/](https://console.aws.amazon.com/lex/).

1. Di panel navigasi, pilih **Bots**. 

1. Pilih **Buat**.

1. Pilih **Bot khusus**. Konfigurasikan bot sebagai berikut:
   + **Nama bot** — Berikan bot nama yang menunjukkan tujuannya, seperti**KendraTestBot**.
   + **Suara keluaran** - Pilih **Tidak Ada**.
   + **Waktu tunggu sesi — Masuk****5**.
   + **Analisis sentimen** - Pilih **No**.
   + **COPPA** — Pilih **No**.
   + **Penyimpanan ucapan pengguna** — Pilih **Jangan** simpan.

1. Pilih **Buat**.

Agar berhasil membangun bot, Anda harus membuat setidaknya satu maksud dengan setidaknya satu contoh ucapan. Maksud ini diperlukan untuk membangun bot Amazon Lex Anda, tetapi tidak digunakan untuk respons FAQ. Ucapan untuk maksud tersebut tidak boleh berlaku untuk pertanyaan apa pun yang diajukan pelanggan Anda.

**Untuk membuat maksud yang diperlukan**

1. Pada halaman **Memulai dengan bot Anda**, pilih **Buat maksud.**

1. Untuk **Tambah maksud**, pilih **Buat maksud**.

1. Di kotak dialog **Create intent**, beri maksud nama, seperti. **RequiredIntent**

1. Untuk **ucapan Sampel**, ketikkan ucapan, seperti. **Required utterance**

1. Pilih **Simpan maksud.**

Sekarang, buat maksud untuk mencari indeks Amazon Kendra dan pesan respons yang harus dikembalikan.

**Untuk membuat AMAZON. KendraSearchIntent pesan maksud dan respons**

1. Di panel navigasi, pilih plus (\$1) di sebelah **Maksud**.

1. Untuk **Tambah maksud**, pilih **Cari maksud yang ada**.

1. Di kotak **Maksud pencarian**, masukkan**AMAZON.KendraSearchIntent**, lalu pilih dari daftar.

1. **Untuk **Salin maksud bawaan**, beri maksud nama, seperti**KendraSearchIntent**, lalu pilih Tambah.** 

1. Di editor maksud, pilih kueri **Amazon Kendra** untuk membuka opsi kueri.

1. Dari menu **indeks Amazon Kendra**, pilih indeks yang ingin Anda cari.

1. Di bagian **Respons**, tambahkan tiga pesan berikut:

   ```
   I found a FAQ question for you: ((x-amz-lex:kendra-search-response-question_answer-question-1)) and the answer is ((x-amz-lex:kendra-search-response-question_answer-answer-1)).
   I found an excerpt from a helpful document: ((x-amz-lex:kendra-search-response-document-1)).
   I think the answer to your questions is ((x-amz-lex:kendra-search-response-answer-1)).
   ```

1. Pilih **Simpan maksud**, lalu pilih **Build** untuk membangun bot.

Terakhir, gunakan jendela pengujian konsol untuk menguji respons dari bot Anda. Pertanyaan Anda harus berada di domain yang didukung indeks Anda.

**Untuk menguji bot FAQ Anda**

1. Di jendela pengujian konsol, ketikkan pertanyaan untuk indeks Anda.

1. Verifikasi jawabannya di bagian respons jendela pengujian.

1. Untuk mengatur ulang jendela pengujian untuk pertanyaan lain, pilih **Hapus riwayat obrolan**.

# AMAZON.PauseIntent
<a name="built-in-intent-pause"></a>

Menanggapi kata dan frasa yang memungkinkan pengguna untuk menjeda interaksi dengan bot sehingga mereka dapat kembali ke sana nanti. Fungsi atau aplikasi Lambda Anda perlu menyimpan data maksud dalam variabel sesi, atau Anda perlu menggunakan [GetSession](API_runtime_GetSession.md) operasi untuk mengambil data maksud saat melanjutkan maksud saat ini.

Ucapan umum:
+ jeda
+ jeda itu

# AMAZON.RepeatIntent
<a name="built-in-intent-repeat"></a>

Menanggapi kata dan frasa yang memungkinkan pengguna untuk mengulangi pesan sebelumnya. Aplikasi Anda perlu menggunakan fungsi Lambda untuk menyimpan informasi intent sebelumnya dalam variabel sesi, atau Anda perlu menggunakan [GetSession](API_runtime_GetSession.md) operasi untuk mendapatkan informasi intent sebelumnya.

Ucapan umum:
+ ulangi
+ katakan itu lagi
+ ulangi itu

# AMAZON.ResumeIntent
<a name="built-in-intent-resume"></a>

Menanggapi kata dan frasa yang memungkinkan pengguna untuk melanjutkan maksud yang dijeda sebelumnya. Fungsi atau aplikasi Lambda Anda harus mengelola informasi yang diperlukan untuk melanjutkan maksud sebelumnya.

Ucapan umum:
+ melanjutkan
+ terus
+ terus berjalan

# AMAZON.StartOverIntent
<a name="built-in-intent-start-over"></a>

Menanggapi kata dan frasa yang memungkinkan pengguna untuk berhenti memproses maksud saat ini dan memulai dari awal. Anda dapat menggunakan fungsi Lambda Anda atau `PutSession` operasi untuk mendapatkan nilai slot pertama lagi.

Ucapan umum:
+ mulai dari awal
+ restart
+ mulai lagi

# AMAZON.StopIntent
<a name="built-in-intent-stop"></a>

Menanggapi kata dan frasa yang menunjukkan bahwa pengguna ingin berhenti memproses maksud saat ini dan mengakhiri interaksi dengan bot. Fungsi atau aplikasi Lambda Anda harus menghapus atribut dan nilai jenis slot yang ada dan kemudian mengakhiri interaksi.

Ucapan umum:
+ berhenti
+ off
+ diam

# Jenis Slot Bawaan
<a name="howitworks-builtins-slots"></a>

Amazon Lex mendukung tipe slot built-in yang menentukan bagaimana data dalam slot dikenali dan ditangani. Anda dapat membuat slot jenis ini dalam maksud Anda. Ini menghilangkan kebutuhan untuk membuat nilai enumerasi untuk data slot yang umum digunakan seperti tanggal, waktu, dan lokasi. Jenis slot bawaan tidak memiliki versi. 


| Jenis Slot | Deskripsi Singkat | Lokal yang Didukung | 
| --- | --- | --- | 
| [Amazon.Bandara](built-in-slot-airport.md) | Mengakui kata-kata yang mewakili bandara. | Semua lokal | 
| [AMAZON. AlphaNumeric](built-in-slot-alphanumeric.md) | Mengenali kata-kata yang terdiri dari huruf dan angka. | Semua lokal kecuali Korea (Ko-kr) | 
| [Amazon.kota](built-in-slot-city.md) | Mengakui kata-kata yang mewakili kota. | Semua lokal | 
| [Amazon.negara](built-in-slot-country.md) | Mengakui kata-kata yang mewakili suatu negara. | Semua lokal | 
| [AMAZON.DATE](built-in-slot-date.md) | Mengenali kata-kata yang mewakili tanggal dan mengubahnya menjadi format standar. | Semua lokal | 
| [AMAZON.DURASI](built-in-slot-duration.md) | Mengenali kata-kata yang mewakili durasi dan mengubahnya menjadi format standar. | Semua lokal | 
| [AMAZON. EmailAddress](built-in-slot-email.md) | Mengenali kata-kata yang mewakili alamat email dan mengubahnya menjadi alamat email standar. | Semua lokal | 
| [AMAZON. FirstName](built-in-slot-first-name.md) | Mengenali kata-kata yang mewakili nama depan. | Semua lokal | 
| [AMAZON. LastName](built-in-slot-last-name.md) | Mengenali kata-kata yang mewakili nama belakang. | Semua lokal | 
| [AMAZON.NUMBER](built-in-slot-number.md) | Mengenali kata-kata numerik dan mengubahnya menjadi digit. | Semua lokal | 
| [Amazon.persentase](built-in-slot-percent.md) | Mengenali kata-kata yang mewakili persentase dan mengubahnya menjadi angka dan tanda persen (%). | Semua lokal | 
| [AMAZON. PhoneNumber](built-in-slot-phone.md) | Mengenali kata-kata yang mewakili nomor telepon dan mengubahnya menjadi string numerik. | Semua lokal | 
| [AMAZON. SpeedUnit](built-in-slot-speed.md) | Mengenali kata-kata yang mewakili unit kecepatan dan mengubahnya menjadi singkatan standar. | Inggris (AS) (en-US) | 
| [Amazon.state](built-in-slot-state.md) | Mengakui kata-kata yang mewakili suatu negara. | Semua lokal | 
| [AMAZON. StreetName](built-in-slot-street-name.md) | Mengenali kata-kata yang mewakili nama jalan. | Semua lokal kecuali Inggris (AS) (en-US) | 
| [AMAZON.TIME](built-in-slot-time.md) | Mengenali kata-kata yang menunjukkan waktu dan mengubahnya menjadi format waktu. | Semua lokal | 
| [AMAZON. WeightUnit](built-in-slot-weight.md) | Mengenali kata-kata yang mewakili satuan berat dan mengubahnya menjadi singkatan standar  | Inggris (AS) (en-US) | 

**catatan**  
Untuk lokal bahasa Inggris (AS) (en-AS), Amazon Lex mendukung jenis slot dari Alexa Skill Kit. Untuk daftar jenis slot bawaan yang tersedia, lihat [Referensi Jenis Slot](https://developer.amazon.com/docs/custom-skills/slot-type-reference.html) dalam dokumentasi Alexa Skills Kit.   
Amazon Lex tidak mendukung `AMAZON.LITERAL` atau jenis slot `AMAZON.SearchQuery` bawaan. 

# Amazon.Bandara
<a name="built-in-slot-airport"></a>

Menyediakan daftar bandara. Contohnya termasuk:
+ Bandara Internasional John F. Kennedy
+ Bandara Melbourne

# AMAZON. AlphaNumeric
<a name="built-in-slot-alphanumeric"></a>

Mengenali string yang terdiri dari huruf dan angka, seperti. **APQ123**

Jenis slot ini tidak tersedia di lokal Korea (KO-KR).

Anda dapat menggunakan jenis `AMAZON.AlphaNumeric` slot untuk string yang berisi: 
+ Karakter abjad, seperti **ABC**
+ Karakter numerik, seperti **123**
+ Kombinasi karakter alfanumerik, seperti **ABC123**

Anda dapat menambahkan ekspresi reguler ke jenis `AMAZON.AlphaNumeric` slot untuk memvalidasi nilai yang dimasukkan untuk slot. Misalnya, Anda dapat menggunakan ekspresi reguler untuk memvalidasi:
+ Kode pos Britania Raya atau Kanada
+ Nomor SIM
+ Nomor identifikasi kendaraan

Gunakan ekspresi reguler standar. Amazon Lex mendukung karakter berikut dalam ekspresi reguler:
+ A-Z, a-z
+ 0-9

Amazon Lex juga mendukung karakter Unicode dalam ekspresi reguler. Bentuknya adalah`\uUnicode`. Gunakan empat digit untuk mewakili karakter Unicode. Misalnya, `[\u0041-\u005A]` setara dengan [A-Z].

Operator ekspresi reguler berikut tidak didukung:
+ Repeater tak terbatas: \$1, \$1, atau \$1x,\$1 tanpa batas atas.
+ Kartu liar (.)

Panjang maksimum ekspresi reguler adalah 300 karakter. Panjang maksimum string yang disimpan di AMAZON. AlphaNumeric Jenis slot yang menggunakan ekspresi reguler adalah 30 karakter.

Berikut ini adalah beberapa contoh ekspresi reguler.
+ String alfanumerik, seperti **APQ123** atau**APQ1**: `[A-Z]{3}[0-9]{1,3}` atau yang lebih dibatasi `[A-DP-T]{3} [1-5]{1,3}`
+ Format Internasional Surat Prioritas Layanan Pos AS, seperti**CP123456789US**: `CP[0-9]{9}US`
+ Nomor routing bank, seperti**123456789**: `[0-9]{9}`

Untuk mengatur ekspresi reguler untuk jenis slot, gunakan konsol atau [PutSlotType](API_PutSlotType.md) operasi. Ekspresi reguler divalidasi saat Anda menyimpan jenis slot. Jika ekspresi tidak valid, Amazon Lex mengembalikan pesan kesalahan.

Saat Anda menggunakan ekspresi reguler dalam jenis slot, Amazon Lex memeriksa input ke slot jenis itu terhadap ekspresi reguler. Jika input cocok dengan ekspresi, nilai diterima untuk slot. Jika input tidak cocok, Amazon Lex meminta pengguna untuk mengulangi input. 

# Amazon.kota
<a name="built-in-slot-city"></a>

Menyediakan daftar kota lokal dan dunia. Jenis slot mengenali variasi umum nama kota. Amazon Lex tidak mengonversi dari variasi ke nama resmi.

Contoh:
+ New York
+ Reykjavik
+ Tokyo
+ Versailles

# Amazon.negara
<a name="built-in-slot-country"></a>

Nama-nama negara di seluruh dunia. Contoh:
+ Australia
+ Germany
+ Jepang
+ Amerika Serikat
+ Uruguay

# AMAZON.DATE
<a name="built-in-slot-date"></a>

Mengonversi kata-kata yang mewakili tanggal menjadi format tanggal.

Tanggal diberikan sesuai maksud Anda dalam format tanggal ISO-8601. Tanggal yang diterima niat Anda di slot dapat bervariasi tergantung pada frasa spesifik yang diucapkan oleh pengguna.
+ Ucapan yang dipetakan ke tanggal tertentu, seperti “hari ini,” “sekarang,” atau “dua puluh lima November,” dikonversi ke tanggal lengkap:. `2020-11-25` Ini default ke tanggal *pada atau setelah tanggal saat* ini.
+ Ucapan yang dipetakan ke minggu tertentu, seperti “minggu ini,” atau “minggu depan,” dikonversi ke tanggal hari pertama dalam seminggu. Dalam format ISO-8601, minggu dimulai pada hari Senin dan berakhir pada hari Minggu. Misalnya, jika hari ini 2020-11-25, “minggu depan” dikonversi menjadi. `2020-11-30`
+ Ucapan yang dipetakan menjadi satu bulan, tetapi bukan hari tertentu, seperti “bulan depan,” dikonversi ke hari terakhir bulan itu. Misalnya, jika hari ini 2020-11-25, “bulan depan” dikonversi menjadi. `2020-12-31`
+ Ucapan yang dipetakan menjadi satu tahun, tetapi bukan bulan atau hari tertentu, seperti “tahun depan,” dikonversi ke hari terakhir tahun berikutnya. Misalnya, jika hari ini 2020-11-25, “tahun depan” dikonversi menjadi. `2021-12-31`

# AMAZON.DURASI
<a name="built-in-slot-duration"></a>

Mengkonversi kata-kata yang menunjukkan durasi menjadi durasi numerik.

Durasi diselesaikan ke format berdasarkan format durasi [ISO-8601](https://en.wikipedia.org/wiki/ISO_8601#Durations),. `PnYnMnWnDTnHnMnS` Ini `P` menunjukkan bahwa ini adalah durasi, `n` adalah nilai numerik, dan huruf kapital yang mengikuti `n` adalah elemen tanggal atau waktu tertentu. Misalnya, `P3D` berarti 3 hari. A `T` digunakan untuk menunjukkan bahwa nilai yang tersisa mewakili elemen waktu daripada elemen tanggal.

Contoh:
+ “sepuluh menit”: `PT10M`
+ “lima jam”: `PT5H`
+ “tiga hari”: `P3D`
+ “empat puluh lima detik”: `PT45S`
+ “delapan minggu”: `P8W`
+ “tujuh tahun”: `P7Y`
+ “lima jam sepuluh menit”: `PT5H10M`
+ “dua tahun tiga jam sepuluh menit”: `P2YT3H10M`

# AMAZON. EmailAddress
<a name="built-in-slot-email"></a>

Mengenali kata-kata yang mewakili alamat email yang diberikan sebagai nama pengguna @domain. Alamat dapat menyertakan karakter khusus berikut dalam nama pengguna: garis bawah (\$1), tanda hubung (-), titik (.), dan tanda plus (\$1).

# AMAZON. FirstName
<a name="built-in-slot-first-name"></a>

Nama depan yang umum digunakan. Jenis slot ini mengenali nama formal dan nama panggilan informal. Nama yang dikirim ke intent Anda adalah nilai yang dikirim oleh pengguna. Amazon Lex tidak mengonversi dari nama panggilan ke nama resmi.

Untuk nama depan yang terdengar sama tetapi dieja berbeda, Amazon Lex mengirimkan maksud Anda satu bentuk umum.

Dalam bahasa Inggris (AS) (en-US) lokal, gunakan nama slot Amazon.us\$1first\$1name.

Contoh:
+ Emily
+ John
+ Sophie

# AMAZON. LastName
<a name="built-in-slot-last-name"></a>

Nama belakang yang umum digunakan. Untuk nama yang terdengar sama yang dieja berbeda, Amazon Lex mengirimkan maksud Anda satu bentuk umum.

Dalam bahasa Inggris (AS) (en-US) lokal, gunakan nama slot Amazon.us\$1last\$1name.

Contoh:
+ Brosky
+ Dasher
+ Evers
+ Parres
+ Welt

# AMAZON.NUMBER
<a name="built-in-slot-number"></a>

Mengkonversi kata atau angka yang mengekspresikan angka menjadi digit, termasuk angka desimal. Tabel berikut menunjukkan bagaimana jenis `AMAZON.NUMBER` slot menangkap kata-kata numerik.


| Input | Respons | 
| --- | --- | 
| seratus dua puluh tiga poin empat lima | 123.45 | 
| seratus dua puluh tiga titik empat lima | 123.45 | 
| titik empat dua | 0,42 | 
| poin empat puluh dua | 0,42 | 
| 232.998 | 232.998 | 
| 50 | 50 | 

# Amazon.persentase
<a name="built-in-slot-percent"></a>

Mengkonversi kata dan simbol yang mewakili persentase menjadi nilai numerik dengan tanda persen (%).

Jika pengguna memasukkan angka tanpa tanda persen atau kata “persen,” nilai slot diatur ke nomor tersebut. Tabel berikut menunjukkan bagaimana jenis `AMAZON.Percentage` slot menangkap persentase.


| Input | Respons | 
| --- | --- | 
| 50 persen | 50% | 
| 0,4 persen | 0,4% | 
| 23,5% | 23,5% | 
| dua puluh lima persen | 25% | 

# AMAZON. PhoneNumber
<a name="built-in-slot-phone"></a>

Mengkonversi angka atau kata-kata yang mewakili nomor telepon ke dalam format string tanpa tanda baca sebagai berikut.


| Tipe | Deskripsi | Input | Hasil | 
| --- | --- | --- | --- | 
| Nomor internasional dengan tanda plus (\$1) terkemuka | Nomor 11 digit dengan tanda plus terkemuka. | \$161 7 4445 1061 \$11 (509) 555-1212 | `+61744431061` `+15095551212` | 
| Nomor internasional tanpa tanda plus (\$1) terkemuka | Nomor 11 digit tanpa tanda plus utama | 1 (509) 555-1212 61 7 4445 1061 | `15095551212` `61744451061` | 
| Nomor nasional | 10 digit nomor tanpa kode internasional | (03) 5115 4444 (509) 555-1212 | `0351154444` `5095551212` | 
| Nomor lokal | 7 digit nomor telepon tanpa kode internasional atau kode area | 555-1212 | 5551212 | 

# AMAZON. SpeedUnit
<a name="built-in-slot-speed"></a>

Mengubah kata-kata yang mewakili satuan kecepatan menjadi singkatan yang sesuai. Misalnya, “mil per jam” dikonversi menjadi`mph`.

Jenis slot ini hanya tersedia di bahasa Inggris (AS) (en-AS) lokal.

Contoh berikut menunjukkan bagaimana jenis `AMAZON.SpeedUnit` slot menangkap unit kecepatan.


| Satuan kecepatan | Singkatan | 
| --- | --- | 
|  mil per jam, mph, MPH, m/jam  | mph | 
|  kilometer per jam, km per jam, kmph, KMPH, km/jam  | kmph | 
|  meter per detik, mps, MPS, m/s  | anggota parlemen | 
| mil laut per jam, simpul, simpul | simpul | 

# Amazon.state
<a name="built-in-slot-state"></a>

Nama-nama wilayah geografis dan politik di dalam negara. 

Contoh:
+ Bayern
+ Prefektur Fukushima
+ Pasifik Barat Laut
+ Queensland
+ Wales

# AMAZON. StreetName
<a name="built-in-slot-street-name"></a>

Nama-nama jalan dalam alamat jalan yang khas. Ini hanya termasuk nama jalan, bukan nomor rumah.

Jenis slot ini tidak tersedia di lokal Inggris (AS) (en-AS).

Contoh:
+ Jalan Canberra
+ Jalan Depan
+ Jalan Pasar

# AMAZON.TIME
<a name="built-in-slot-time"></a>

Mengubah kata-kata yang mewakili waktu menjadi nilai waktu. Termasuk resolusi untuk waktu yang ambigu. Saat pengguna memasukkan waktu yang ambigu, Amazon Lex menggunakan `slotDetails` atribut peristiwa Lambda untuk meneruskan resolusi untuk waktu ambigu ke fungsi Lambda Anda. Misalnya, jika bot Anda meminta pengguna untuk waktu pengiriman, pengguna dapat merespons dengan mengatakan “jam 10.” Kali ini ambigu. Itu berarti 10:00 AM atau 10:00 PM. Dalam hal ini, nilai dalam `slots` peta adalah`null`, dan `slotDetails` entitas berisi dua kemungkinan resolusi saat itu. Amazon Lex memasukkan yang berikut ini ke dalam fungsi Lambda:

```
"slots": {
   "deliveryTime": null
},
"slotDetails": {
   "deliveryTime": {
      "resolutions": [
         {
            "value": "10:00"
         },
         {
            "value": "22:00"
         }
      ]
   }
}
```

Ketika pengguna merespons dengan waktu yang tidak ambigu, Amazon Lex mengirimkan waktu ke fungsi Lambda Anda dalam atribut `slots` peristiwa Lambda dan atribut kosong. `slotDetails` Misalnya, jika pengguna Anda merespons prompt untuk waktu pengiriman dengan "10:00 PM,” Amazon Lex memasukkan hal berikut ke dalam fungsi Lambda:

```
"slots": {
   "deliveryTime": "22:00"
}
```

Untuk informasi selengkapnya tentang data yang dikirim dari Amazon Lex ke fungsi Lambda, lihat. [Format Peristiwa Masukan](lambda-input-response-format.md#using-lambda-input-event-format)

# AMAZON. WeightUnit
<a name="built-in-slot-weight"></a>

Mengubah kata-kata yang mewakili satuan berat menjadi singkatan yang sesuai. Misalnya, “kilogram” dikonversi menjadi`kg`. 

Jenis slot ini hanya tersedia di bahasa Inggris (AS) (en-AS) lokal.

Contoh berikut menunjukkan bagaimana jenis `AMAZON.WeightUnit` slot menangkap satuan berat:


| Satuan berat | Singkatan | 
| --- | --- | 
| kilogram, kilo, kg, KGS | kg | 
| gram, gms, gm, GMS, g | g | 
| miligram, mg, mg | mg | 
| pound, lbs, lbs | lbs | 
| ons, ons, OZ | ons | 
| ton, ton, t | t | 
| kiloton, kt | kt | 

# Jenis Slot Kustom
<a name="howitworks-custom-slots"></a>

Untuk setiap intent, Anda dapat menentukan parameter yang menunjukkan informasi yang dibutuhkan intent untuk memenuhi permintaan pengguna. Parameter ini, atau slot, memiliki tipe. *Jenis slot* adalah daftar nilai yang digunakan Amazon Lex untuk melatih model pembelajaran mesin untuk mengenali nilai slot. Misalnya, Anda dapat menentukan jenis slot yang disebut "`Genres.`" Setiap nilai dalam jenis slot adalah nama genre, “komedi,” “petualangan,” “dokumenter,” dll. Anda dapat menentukan sinonim untuk nilai jenis slot. Misalnya, Anda dapat mendefinisikan sinonim “lucu” dan “lucu” untuk nilai “komedi.” 

Anda dapat mengonfigurasi jenis slot untuk membatasi resolusi ke nilai slot. Nilai slot akan digunakan sebagai enumerasi dan nilai yang dimasukkan oleh pengguna akan diselesaikan ke nilai slot hanya jika sama dengan salah satu nilai slot atau sinonim. Sinonim diselesaikan dengan nilai slot yang sesuai. Misalnya, jika pengguna memasukkan “lucu” itu akan menyelesaikan nilai slot “komedi.”

Bergantian, Anda dapat mengonfigurasi jenis slot untuk memperluas nilai. Nilai slot akan digunakan sebagai data pelatihan dan slot diselesaikan dengan nilai yang diberikan oleh pengguna jika mirip dengan nilai slot dan sinonim. Ini adalah perilaku default.

Amazon Lex menyimpan daftar kemungkinan resolusi untuk slot. Setiap entri dalam daftar memberikan *nilai resolusi* yang diakui Amazon Lex sebagai kemungkinan tambahan untuk slot. Nilai resolusi adalah upaya terbaik untuk mencocokkan nilai slot. Daftar ini berisi hingga lima nilai.

Ketika nilai yang dimasukkan oleh pengguna adalah sinonim, entri pertama dalam daftar nilai resolusi adalah nilai jenis slot. Misalnya, jika pengguna memasukkan “lucu,” `slots` bidang berisi “lucu” dan entri pertama di `slotDetails` lapangan adalah “komedi.” Anda dapat mengkonfigurasi `valueSelectionStrategy` ketika Anda membuat atau memperbarui jenis slot dengan [PutSlotType](API_PutSlotType.md) operasi sehingga nilai slot diisi dengan nilai pertama dalam daftar resolusi.

 Jika Anda menggunakan fungsi Lambda, peristiwa input ke fungsi tersebut menyertakan daftar resolusi yang disebut. `slotDetails` Contoh berikut menunjukkan bagian detail slot dan slot dari input ke fungsi Lambda:

```
   "slots": {
      "MovieGenre": "funny";
   },
   "slotDetails": {
      "Movie": {
         "resolutions": [
            "value": "comedy"
         ]
      }
   }
```

Untuk setiap jenis slot, Anda dapat menentukan maksimum 10.000 nilai dan sinonim. Setiap bot dapat memiliki jumlah total 50.000 nilai jenis slot dan sinonim. Misalnya, Anda dapat memiliki 5 jenis slot, masing-masing dengan 5.000 nilai dan 5.000 sinonim, atau Anda dapat memiliki 10 jenis slot, masing-masing dengan 2.500 nilai dan 2.500 sinonim. Jika Anda melebihi batas ini, Anda akan mendapatkan `LimitExceededException` ketika Anda memanggil [PutBot](API_PutBot.md) operasi.

# Slot Obfuscation
<a name="how-obfuscate"></a>

Amazon Lex memungkinkan Anda untuk mengaburkan, atau menyembunyikan, isi slot sehingga konten tidak terlihat. Untuk melindungi data sensitif yang diambil sebagai nilai slot, Anda dapat mengaktifkan slot obfuscation untuk menutupi nilai-nilai tersebut dalam log percakapan.

Ketika Anda memilih untuk mengaburkan nilai slot, Amazon Lex menggantikan nilai slot dengan nama slot di log percakapan. Untuk slot yang disebut`full_name`, nilai slot akan dikaburkan sebagai berikut:

```
Before obfuscation:
    My name is John Stiles
After obfuscation:
    My name is {full_name}
```

Jika ucapan berisi karakter braket (\$1\$1) Amazon Lex lolos dari karakter braket dengan dua garis miring belakang (\$1\$1). Misalnya, teks `{John Stiles}` dikaburkan sebagai berikut:

```
Before obfuscation:
    My name is {John Stiles}
After obfuscation:
    My name is \\{{full_name}\\}
```

Nilai slot dikaburkan dalam log percakapan. Nilai slot masih tersedia dalam respons dari `PostContent` dan `PostText` operasi, dan nilai slot tersedia untuk validasi dan pemenuhan fungsi Lambda Anda. Jika Anda menggunakan nilai slot dalam permintaan atau tanggapan Anda, nilai slot tersebut tidak dikaburkan dalam log percakapan.

Pada giliran pertama percakapan, Amazon Lex mengaburkan nilai slot jika mengenali nilai slot dan slot dalam ucapan. Jika tidak ada nilai slot yang dikenali, Amazon Lex tidak mengaburkan ucapannya.

Pada putaran kedua dan kemudian, Amazon Lex tahu slot yang akan diperoleh dan apakah nilai slot harus dikaburkan. Jika Amazon Lex mengenali nilai slot, nilainya dikaburkan. Jika Amazon Lex tidak mengenali nilai, seluruh ucapan dikaburkan. Nilai slot apa pun dalam ucapan yang terlewat tidak akan dikaburkan.

Amazon Lex juga tidak mengaburkan nilai slot yang Anda simpan dalam atribut permintaan atau sesi. Jika Anda menyimpan nilai slot yang harus dikaburkan sebagai atribut, Anda harus mengenkripsi atau mengaburkan nilainya.

Amazon Lex tidak mengaburkan nilai slot dalam audio. Itu mengaburkan nilai slot dalam transkripsi audio.

Anda tidak perlu mengaburkan semua slot di bot. Anda dapat memilih slot mana yang dikaburkan menggunakan konsol atau dengan menggunakan Amazon Lex API. Di konsol, pilih **Slot obfuscation** di pengaturan untuk slot. Jika Anda menggunakan API, atur `obfuscationSetting` bidang slot ke `DEFAULT_OBFUSCATION` saat Anda memanggil [PutIntent](API_PutIntent.md) operasi.

# Analisis Sentimen
<a name="sentiment-analysis"></a>

Anda dapat menggunakan analisis sentimen untuk menentukan sentimen yang diungkapkan dalam ucapan pengguna. Dengan informasi sentimen Anda dapat mengelola alur percakapan atau melakukan analisis pasca-panggilan. Misalnya, jika sentimen pengguna negatif, Anda dapat membuat aliran untuk menyerahkan percakapan ke agen manusia.

Amazon Lex terintegrasi dengan Amazon Comprehend untuk mendeteksi sentimen pengguna. Respons dari Amazon Comprehend menunjukkan apakah sentimen keseluruhan teks positif, netral, negatif, atau campuran. Respons berisi sentimen yang paling mungkin untuk ucapan pengguna dan skor untuk masing-masing kategori sentimen. Skor mewakili kemungkinan bahwa sentimen terdeteksi dengan benar.

 Anda mengaktifkan analisis sentimen untuk bot menggunakan konsol atau dengan menggunakan Amazon Lex API. Di konsol Amazon Lex, pilih tab **Pengaturan** untuk bot Anda, lalu atur opsi **Analisis Sentimen** ke **Ya**. Jika Anda menggunakan API, panggil [PutBot](API_PutBot.md) operasi dengan `detectSentiment` bidang yang disetel ke`true`. 

Ketika analisis sentimen diaktifkan, respons dari [PostContent](API_runtime_PostContent.md) dan [PostText](API_runtime_PostText.md) operasi mengembalikan bidang yang disebut `sentimentResponse` dalam respons bot dengan metadata lainnya. `sentimentResponse`Bidang ini memiliki dua bidang`SentimentScore`, `SentimentLabel` dan, yang berisi hasil analisis sentimen. Jika Anda menggunakan fungsi Lambda, `sentimentResponse` bidang tersebut disertakan dalam data peristiwa yang dikirim ke fungsi Anda.

Berikut ini adalah contoh `sentimentResponse` bidang yang dikembalikan sebagai bagian dari `PostText` atau `PostContent` respons. `SentimentScore`Bidang adalah string yang berisi skor untuk respons.

```
{
    "SentimentScore": 
        "{
        Mixed: 0.030585512690246105,
        Positive: 0.94992071056365967,
        Neutral: 0.0141543131828308,
        Negative: 0.00893945890665054
        }",
    "SentimentLabel": "POSITIVE"
}
```

Amazon Lex memanggil Amazon Comprehend atas nama Anda untuk menentukan sentimen dalam setiap ucapan yang diproses oleh bot. Dengan mengaktifkan analisis sentimen, Anda menyetujui persyaratan dan perjanjian layanan untuk Amazon Comprehend. Untuk informasi selengkapnya tentang harga Amazon Comprehend, [lihat](https://aws.amazon.com/comprehend/pricing/) Harga Amazon Comprehend.

*Untuk informasi selengkapnya tentang cara kerja analisis sentimen Amazon Comprehend, [lihat Menentukan Sentimen di Panduan Pengembang](https://docs.aws.amazon.com/comprehend/latest/dg/how-sentiment.html) Amazon Comprehend.*

# Menandai Sumber Daya Amazon Lex Anda
<a name="how-it-works-tags"></a>

*Untuk membantu mengelola bot Amazon Lex, alias bot, dan saluran bot, Anda dapat menetapkan metadata ke setiap sumber daya sebagai tag.* Tag adalah label yang Anda tetapkan ke AWS sumber daya. Setiap tanda terdiri dari sebuah kunci dan sebuah nilai.

Tag memungkinkan Anda untuk mengkategorikan sumber daya AWS Anda dengan berbagai cara, misalnya, berdasarkan tujuan, pemilik, atau aplikasi. Tanda membantu Anda untuk:
+ Identifikasi dan atur AWS sumber daya Anda. Banyak AWS sumber daya mendukung penandaan, sehingga Anda dapat menetapkan tag yang sama ke sumber daya di layanan yang berbeda untuk menunjukkan bahwa sumber daya terkait. Misalnya, Anda dapat menandai bot dan fungsi Lambda yang digunakannya dengan tag yang sama.
+ Alokasikan biaya. Anda mengaktifkan tag di AWS Manajemen Penagihan dan Biaya dasbor. AWS menggunakan tag untuk mengkategorikan biaya Anda dan mengirimkan laporan alokasi biaya bulanan kepada Anda. Untuk Amazon Lex, Anda dapat mengalokasikan biaya untuk setiap alias menggunakan tag khusus untuk alias, kecuali untuk alias. `$LATEST` Anda mengalokasikan biaya untuk `$LATEST` alias menggunakan tag untuk bot Amazon Lex Anda. Untuk informasi selengkapnya, lihat [Menggunakan Tag Alokasi Biaya](https://docs.aws.amazon.com/awsaccountbilling/latest/aboutv2/cost-alloc-tags.html) di *Panduan AWS Manajemen Penagihan dan Biaya Pengguna*.
+ Mengendalikan akses ke sumber daya Anda. Anda dapat menggunakan tag ke Amazon Lex untuk membuat kebijakan untuk mengontrol akses ke sumber daya Amazon Lex. Kebijakan ini dapat dilampirkan ke peran IAM atau pengguna untuk mengaktifkan kontrol akses berbasis tag. Untuk informasi selengkapnya, lihat [ABAC dengan Amazon Lex](security_iam_service-with-iam.md#security_iam_service-with-iam-tags). Untuk melihat contoh kebijakan berbasis identitas untuk membatasi akses ke sumber daya berdasarkan tag pada sumber daya tersebut, lihat [Menggunakan Tag untuk Mengakses Sumber Daya](security_iam_id-based-policy-examples.md#security_iam_id-based-policy-examples-tag). 

Anda dapat bekerja dengan tag menggunakan Konsol Manajemen AWS, AWS Command Line Interface, atau Amazon Lex API.



## Menandai Sumber Daya Anda
<a name="tagging-resources"></a>

Jika Anda menggunakan konsol Amazon Lex, Anda dapat menandai sumber daya saat membuatnya, atau Anda dapat menambahkan tag nanti. Anda juga dapat menggunakan konsol untuk memperbarui atau menghapus tag yang ada. 

Jika Anda menggunakan AWS CLI atau Amazon Lex API, Anda menggunakan operasi berikut untuk mengelola tag untuk sumber daya Anda:
+  [ListTagsForResource](API_ListTagsForResource.md)— lihat tag yang terkait dengan sumber daya.
+ [PutBot](API_PutBot.md)dan [PutBotAlias](API_PutBotAlias.md) — terapkan tag saat Anda membuat bot atau alias bot.
+  [TagResource](API_TagResource.md)— menambahkan dan memodifikasi tag pada sumber daya yang ada.
+  [UntagResource](API_UntagResource.md)— hapus tag dari sumber daya. 

Sumber daya berikut di Amazon Lex mendukung penandaan:
+ Bot - gunakan Amazon Resource Name (ARN) seperti berikut:
  + `arn:${partition}:lex:${region}:${account}:bot:${bot-name}`
+ Alias bot - gunakan ARN seperti berikut ini:
  + `arn:${partition}:lex:${region}:${account}:bot:${bot-name}:${bot-alias}`
+ Saluran bot - gunakan ARN seperti berikut ini:
  + `arn:${partition}:lex:${region}:${account}:bot-channel:${bot-name}:${bot-alias}:${channel-name}`

## Pembatasan Tag
<a name="tags-restrictions"></a>

Pembatasan dasar berikut berlaku untuk tag di sumber daya Amazon Lex:
+ Jumlah tag maksimum - 50
+ Panjang kunci maksimum – 128 karakter
+ Panjang nilai maksimum – 256 karakter
+ Karakter yang valid untuk kunci dan nilai — a—z, A-Z, 0—9, spasi, dan karakter berikut: \$1.:/= \$1 - dan @
+ Kunci dan nilai peka huruf besar dan kecil.
+ Jangan gunakan `aws:` sebagai awalan untuk kunci; itu dicadangkan untuk penggunaan AWS.

# Sumber Daya Penandaan (Konsol)
<a name="tags-console"></a>

Anda dapat menggunakan konsol untuk mengelola tag pada bot, alias bot, atau sumber daya saluran bot. Anda dapat menambahkan tag saat membuat sumber daya, atau menambahkan, memodifikasi, atau menghapus tag dari sumber daya yang ada.

**Untuk menambahkan tag saat Anda membuat bot**

1. Masuk ke Konsol Manajemen AWS dan buka konsol Amazon Lex di [https://console.aws.amazon.com/lex/](https://console.aws.amazon.com/lex/).

1. Pilih **Buat** untuk membuat bot baru.

1. Di bagian bawah halaman **Buat bot Anda**, pilih **Tag**.

1. Pilih **Tambahkan tag** dan tambahkan satu atau beberapa tag ke bot. Anda dapat menambahkan hingga 50 tanda.

**Untuk menambahkan tag saat Anda membuat alias bot**

1. Masuk ke Konsol Manajemen AWS dan buka konsol Amazon Lex di [https://console.aws.amazon.com/lex/](https://console.aws.amazon.com/lex/).

1. Pilih bot yang ingin Anda tambahkan alias bot.

1. Pilih **Pengaturan**.

1. Tambahkan nama alias, pilih versi bot, lalu pilih **Tambahkan tag**.

1. Pilih **Tambahkan tag** dan tambahkan satu atau beberapa tag ke alias bot. Anda dapat menambahkan hingga 50 tanda.

**Untuk menambahkan tag saat Anda membuat saluran bot**

1. Masuk ke Konsol Manajemen AWS dan buka konsol Amazon Lex di [https://console.aws.amazon.com/lex/](https://console.aws.amazon.com/lex/).

1. Pilih bot yang ingin Anda tambahkan saluran bot.

1. Pilih **Saluran** dan kemudian pilih saluran yang ingin Anda tambahkan.

1. Tambahkan detail untuk saluran bot, lalu pilih **Tag**.

1. Pilih **Tambahkan tag** dan tambahkan satu atau beberapa tag ke saluran bot. Anda dapat menambahkan hingga 50 tanda.

**Untuk menambahkan tag saat Anda mengimpor bot**

1. Masuk ke Konsol Manajemen AWS dan buka konsol Amazon Lex di [https://console.aws.amazon.com/lex/](https://console.aws.amazon.com/lex/).

1. Pilih **Tindakan** dan kemudian pilih **Impor**.

1. Pilih file zip untuk mengimpor bot.

1. Pilih **Tag**, lalu pilih **Tambahkan tag** untuk menambahkan satu atau beberapa tag ke bot. Anda dapat menambahkan hingga 50 tanda.

**Untuk menambah, menghapus, atau memodifikasi tag pada bot yang ada**

1. Masuk ke Konsol Manajemen AWS dan buka konsol Amazon Lex di [https://console.aws.amazon.com/lex/](https://console.aws.amazon.com/lex/).

1. Dari menu sebelah kiri, pilih **Bots** lalu pilih bot yang ingin Anda modifikasi.

1. Pilih **Pengaturan** dan kemudian dari menu kiri pilih **Umum**.

1. Pilih **Tag** lalu tambahkan, ubah, atau hapus tag untuk bot.

**Untuk menambah, menghapus, atau memodifikasi tag pada alias bot**

1. Masuk ke Konsol Manajemen AWS dan buka konsol Amazon Lex di [https://console.aws.amazon.com/lex/](https://console.aws.amazon.com/lex/).

1. Dari menu sebelah kiri, pilih **Bots** lalu pilih bot yang ingin Anda modifikasi.

1. Pilih **Pengaturan** dan kemudian dari menu kiri pilih **Alias**.

1. Pilih **Kelola tag** untuk alias yang ingin Anda ubah, lalu tambahkan, ubah, atau hapus tag untuk alias bot.

**Untuk menambah, menghapus, atau memodifikasi tag pada saluran bot yang ada**

1. Masuk ke Konsol Manajemen AWS dan buka konsol Amazon Lex di [https://console.aws.amazon.com/lex/](https://console.aws.amazon.com/lex/).

1. Dari menu sebelah kiri, pilih **Bots** lalu pilih bot yang ingin Anda modifikasi.

1. Pilih **Saluran**.

1. Pilih **Tag** lalu tambahkan, ubah, atau hapus tag untuk saluran bot.

# Sumber Daya Penandaan ()AWS CLI
<a name="tags-cli"></a>

Anda dapat menggunakan AWS CLI untuk mengelola tag pada bot, alias bot, atau sumber daya saluran bot. Anda dapat menambahkan tag saat membuat bot atau alias bot, atau Anda dapat menambahkan, memodifikasi, atau menghapus tag dari bot, alias bot, atau saluran bot.

Semua contoh diformat untuk Linux dan macOS. Untuk menggunakan perintah di Windows, ganti karakter kelanjutan Linux (\$1) dengan tanda sisipan (^).

**Untuk menambahkan tag saat Anda membuat bot**
+ `put-bot` AWS CLI Perintah singkat berikut menunjukkan parameter yang harus Anda gunakan untuk menambahkan tag saat Anda membuat bot. Untuk benar-benar membuat bot, Anda harus menyediakan parameter lain. Untuk informasi selengkapnya, lihat [Langkah 4: Memulai (AWS CLI)](gs-cli.md).

  ```
  aws lex-models put-bot \
      --tags '[{"key": "key1", "value": "value1"}, \
               {"key": "key2", "value": "value2"}]'
  ```

**Untuk menambahkan tag saat Anda membuat alias bot**
+ `put-bot-alias` AWS CLI Perintah singkat berikut menunjukkan parameter yang harus Anda gunakan untuk menambahkan tag saat Anda membuat alias bot. Untuk benar-benar membuat alias bot, Anda harus menyediakan parameter lain. Untuk informasi selengkapnya, lihat [Latihan 5: Buat Alias ()AWS CLI](gs-cli-create-alias.md).

  ```
  aws lex-models put-bot \
      --tags '[{"key": "key1", "value": "value1"}, \
               {"key": "key2", "value": "value2"}]"
  ```

**Untuk membuat daftar tag pada sumber daya**
+ Gunakan `list-tags-for-resource` AWS CLI perintah untuk menunjukkan sumber daya yang terkait dengan bot, alias bot, saluran bot. 

  ```
  aws lex-models list-tags-for-resource \
      --resource-arn bot, bot alias, or bot channel ARN
  ```

**Untuk menambah atau memodifikasi tag pada sumber daya**
+ Gunakan `tag-resource` AWS CLI perintah untuk menambah atau memodifikasi bot, alias bot, atau saluran bot.

  ```
  aws lex-models tag-resource \
      --resource-arn bot, bot alias, or bot channel ARN \
      --tags '[{"key": "key1", "value": "value1"}, \
               {"key": "key2", "value": "value2"}]'
  ```

**Untuk menghapus tag dari sumber daya**
+ Gunakan `untag-resource` AWS CLI perintah untuk menghapus tag dari bot, alias bot, atau saluran bot.

  ```
  aws lex-models untag-resource \
      --resource-arn bot, bot alias, or bot channel ARN \
      --tag-keys '["key1", "key2"]'
  ```