AMAZON.KendraSearchIntent - Amazon Lex

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

AMAZON.KendraSearchIntent

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

AMAZON.KendraSearchIntentIni 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 menggunakanAMAZON.KendraSearchIntent, lihatContoh: Membuat Bot FAQ untuk Indeks Amazon Kendra.

Jika Anda mengonfigurasi AMAZON.KendraSearchIntent intent untuk bot Anda, Amazon Lex V2 akan memanggil intent kapan pun intent tidak dapat menentukan ucapan pengguna untuk maksud. Jika tidak ada tanggapan dari Amazon Kendra, percakapan berlanjut seperti yang dikonfigurasi di bot.

catatan

Amazon Lex V2 saat ini tidak mendukung elisitasi slot AMAZON.KendraSearchIntent selama. Jika Amazon Lex V2 tidak dapat menentukan ucapan pengguna untuk slot, itu memanggil. AMAZON.FallbackIntent

Saat Anda menggunakan AMAZON.KendraSearchIntent with AMAZON.FallbackIntent di bot yang sama, Amazon Lex V2 menggunakan intent sebagai berikut:

  1. Amazon Lex V2 menyebutAMAZON.KendraSearchIntent. Maksudnya menyebut operasi Amazon Query Kendra.

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

  3. Jika tidak ada tanggapan dari Amazon Kendra, Amazon Lex V2 meminta kembali pengguna. Tindakan selanjutnya tergantung pada respons dari pengguna.

    • Jika respons dari pengguna berisi ucapan yang dikenali Amazon Lex V2, seperti mengisi nilai slot atau mengonfirmasi maksud, percakapan dengan pengguna dilanjutkan seperti yang dikonfigurasi untuk bot.

    • Jika respons dari pengguna tidak berisi ucapan yang dikenali Amazon Lex V2, Amazon Lex V2 akan melakukan panggilan lain ke operasi tersebut. Query

  4. Jika tidak ada respons setelah jumlah percobaan ulang yang dikonfigurasi, Amazon Lex V2 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 V2 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 V2 menggunakan filter dalam permintaan kueri.

  • Tambahkan parameter kueri tambahan ke permintaan untuk mempersempit hasil pencarian menggunakan fungsi Lambda 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 Lambda. Anda dapat membuat permintaan kueri Amazon Kendra lengkap yang dikirimkan Amazon Lex V2. Anda menentukan kueri di kendraQueryRequestPayload bidang dalam tindakan delegate dialog. kendraQueryRequestPayloadLapangan 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 di Panduan Pengembang Amazon Kendra.

Untuk memiliki kontrol atas kueri yang dikirimkan Amazon Lex V2 ke Amazon Kendra, Anda dapat menentukan kueri di kendraQueryRequestPayload bidang di fungsi Lambda Anda. Jika kueri tidak valid, Amazon Lex V2 mengembalikan InvalidLambdaResponseException pengecualian. Untuk informasi selengkapnya, lihat Operasi kueri di Panduan Pengembang Amazon Kendra.

Untuk contoh cara menggunakanAMAZON.KendraSearchIntent, lihatContoh: Membuat Bot FAQ untuk Indeks Amazon Kendra.

Kebijakan IAM untuk Pencarian Amazon Kendra

Untuk menggunakan AMAZON.KendraSearchIntent intent, Anda harus menggunakan peran yang menyediakan kebijakan AWS Identity and Access Management (IAM) yang memungkinkan Amazon Lex V2 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 V2, 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 V2 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

Anda dapat menggunakan konsol untuk melampirkan izin untuk mengakses operasi Amazon Query Kendra ke peran default Amazon Lex V2 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 V2 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.

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

Menentukan Peran

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 di Panduan AWS Identity and Access Management Pengguna.

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

Peran runtime yang perlu digunakan Amazon Lex V2 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 (\) 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

    { "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "kendra:Query" ], "Resource": [ "arn:aws:kendra:region:account:index/index ID" ] } ] }
  2. 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
  3. 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 V2 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 AMAZON.KendraSearchIntent
  1. Masuk ke AWS Management Console dan buka konsol Amazon Lex di https://console.aws.amazon.com/lex/.

  2. Pilih bot yang ingin Anda tambahkan. AMAZON.KendraSearchIntent

  3. Pilih plus (+) di sebelah Intent.

  4. Di Tambah maksud, pilih Cari maksud yang ada.

  5. Di Maksud pencarian, masukkan AMAZON.KendraSearchIntent lalu pilih Tambah.

  6. Di Salin maksud bawaan, masukkan nama untuk maksud, sepertiKendraSearchIntent, lalu pilih Tambah.

  7. Buka bagian kueri Amazon Kendra.

  8. Untuk peran IAM pilih salah satu opsi berikut:

    • Untuk memperbarui peran terkait layanan Amazon Lex V2 untuk mengaktifkan bot Anda 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

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, lihatMengatur atribut permintaan. Untuk informasi selengkapnya tentang atribut sesi, lihatMengatur atribut sesi.

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.KendraSearchIntengFilter menggunakan format yang sama dengan filter pencarian Amazon Kendra. Untuk informasi selengkapnya, lihat Menggunakan atribut dokumen untuk memfilter hasil penelusuran 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 fileAMAZON.KendraSearchIntent.

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

Menggunakan Respon Pencarian

Amazon Kendra mengembalikan respons ke pencarian sebagai tanggapan dari pernyataan niat. IntentClosingSetting Maksud harus memiliki closingResponse pernyataan kecuali fungsi Lambda menghasilkan pesan respons penutup.

Amazon Kendra memiliki lima jenis tanggapan.

  • Dua tanggapan berikut memerlukan FAQ yang akan disiapkan untuk indeks Amazon Kendra Anda. Untuk detail selengkapnya, lihat Menambahkan pertanyaan dan jawaban langsung ke indeks.

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

  • Tiga tanggapan berikut memerlukan sumber data yang akan disiapkan untuk indeks Amazon Kendra Anda. Untuk detail selengkapnya, lihat Membuat sumber data.

    • 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 di Panduan Pengembang Amazon Kendra.

closingResponsePernyataan 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 _jawaban-pertanyaan-1)), dan jawabannya adalah ((: _jawaban-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

AMAZON.KendraSearchIntentMaksud 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

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 V2 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 Pengembang Amazon Kendra. Jika string filter yang ditentukan tidak valid, Anda akan mendapatkan InvalidLambdaResponseException pengecualian. kendraQueryFilterStringString 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 di Panduan Pengembang Amazon Kendra.

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

Menggunakan Hook Kode Pemenuhan untuk Respons

Setelah Amazon Lex V2 mengirimkan 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 KendraQuery. Untuk informasi selengkapnya, lihat Sintaks respons kueri di Panduan Pengembang Amazon Kendra.

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