Menggunakan operasi API - Amazon Lex

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

Menggunakan operasi API

Lampirkan fungsi Lambda ke alias bot

Jika Anda membuat alias bot baru, gunakan CreateBotAliasoperasi untuk melampirkan fungsi Lambda. Untuk melampirkan fungsi Lambda ke alias bot yang ada, gunakan operasi. UpdateBotAlias Ubah botAliasLocaleSettings bidang untuk memuat pengaturan yang benar:

{ "botAliasLocaleSettings" : { locale: { "codeHookSpecification": { "lambdaCodeHook": { "codeHookInterfaceVersion": "1.0", "lambdaARN": "arn:aws:lambda:region:account-id:function:function-name" } }, "enabled": true }, ... } }
  1. botAliasLocaleSettingsBidang memetakan ke objek yang kuncinya adalah lokal di mana Anda ingin melampirkan fungsi Lambda. Lihat Bahasa dan lokal yang didukung daftar lokal yang didukung dan kode yang merupakan kunci yang valid.

  2. Untuk menemukan fungsi lambdaARN for Lambda, buka AWS Lambda konsol di https://console.aws.amazon.com/lambda/home, pilih Fungsi di bilah sisi kiri, dan pilih fungsi yang akan dikaitkan dengan alias bot. Di sisi kanan ikhtisar Fungsi, temukan di lambdaARN bawah Fungsi ARN. Ini harus berisi wilayah, ID akun, dan nama fungsi.

  3. Untuk mengizinkan Amazon Lex V2 memanggil fungsi Lambda untuk alias, setel enabled bidang ke. true

Tetapkan maksud untuk menjalankan fungsi Lambda

Untuk mengatur pemanggilan fungsi Lambda selama intent, gunakan CreateIntentoperasi jika Anda membuat intent baru, atau UpdateIntentoperasi jika Anda menjalankan fungsi dalam intent yang ada. Bidang yang mengontrol pemanggilan fungsi Lambda dalam operasi intent adalahdialogCodeHook,, dan. initialResponseSetting intentConfirmationSetting fulfillmentCodeHook

Jika Anda menjalankan fungsi selama elisitasi slot, gunakan CreateSlotoperasi jika Anda membuat slot baru, atau UpdateSlotoperasi untuk memanggil fungsi di slot yang ada. Bidang yang mengontrol pemanggilan fungsi Lambda dalam operasi slot adalah objek. slotCaptureSetting valueElicitationSetting

  1. Untuk mengatur hook kode dialog Lambda agar berjalan setelah setiap putaran percakapan, atur enabled bidang DialogCodeHookSettingsobjek berikut di dialogCodeHook bidang menjadi: true

    "dialogCodeHook": { "enabled": boolean }
  2. Atau, Anda dapat mengatur hook kode dialog Lambda agar berjalan hanya pada titik-titik tertentu dalam percakapan dengan memodifikasi codeHook dan/atau elicitationCodeHook bidang dalam struktur yang sesuai dengan tahapan percakapan di mana Anda ingin menjalankan fungsi tersebut. Untuk menggunakan hook kode dialog Lambda untuk pemenuhan maksud, gunakan fulfillmentCodeHook bidang dalam operasi atau. CreateIntentUpdateIntent Struktur dan penggunaan ketiga jenis kait kode ini adalah sebagai berikut:

codeHookBidang mendefinisikan pengaturan untuk hook kode untuk dijalankan pada tahap tertentu dalam percakapan. Ini adalah DialogCodeHookInvocationSettingobjek dengan struktur berikut:

"codeHook": { "active": boolean, "enableCodeHookInvocation": boolean, "invocationLabel": string, "postCodeHookSpecification": PostDialogCodeHookInvocationSpecification object, }
  • Ubah active bidang menjadi true Amazon Lex V2 untuk memanggil kait kode pada saat itu dalam percakapan.

  • Ubah enableCodeHookInvocation bidang menjadi true Amazon Lex V2 untuk memungkinkan hook kode berjalan normal. Jika Anda menandainyafalse, Amazon Lex V2 bertindak seolah-olah pengait kode berhasil dikembalikan.

  • invocationLabelIni menunjukkan langkah dialog dari mana kode hook dipanggil.

  • Gunakan postCodeHookSpecification bidang untuk menentukan tindakan dan pesan yang terjadi setelah hook kode berhasil, gagal, atau habis waktu.

elicitationCodeHookBidang mendefinisikan pengaturan untuk hook kode untuk dijalankan jika slot atau slot perlu ditimbulkan kembali. Skenario ini dapat terjadi jika elisitasi slot gagal atau konfirmasi maksud ditolak. elicitationCodeHookBidang adalah ElicitationCodeHookInvocationSettingobjek dengan struktur berikut:

"elicitationCodeHook": { "enableCodeHookInvocation": boolean, "invocationLabel": string }
  • Ubah enableCodeHookInvocation bidang menjadi true Amazon Lex V2 untuk memungkinkan hook kode berjalan normal. Jika Anda menandainyafalse, Amazon Lex V2 bertindak seolah-olah pengait kode berhasil dikembalikan.

  • invocationLabelIni menunjukkan langkah dialog dari mana kode hook dipanggil.

fulfillmentCodeHookBidang mendefinisikan pengaturan untuk hook kode yang akan dijalankan untuk memenuhi maksud. Ini memetakan ke FulfillmentCodeHookSettingsobjek berikut:

"fulfillmentCodeHook": { "active": boolean, "enabled": boolean, "fulfillmentUpdatesSpecification": FulfillmentUpdatesSpecification object, "postFulfillmentStatusSpecification": PostFulfillmentStatusSpecification object }
  • Ubah active bidang menjadi true Amazon Lex V2 untuk memanggil kait kode pada saat itu dalam percakapan.

  • Ubah enabled bidang menjadi true Amazon Lex V2 untuk memungkinkan hook kode berjalan normal. Jika Anda menandainyafalse, Amazon Lex V2 bertindak seolah-olah pengait kode berhasil dikembalikan.

  • Gunakan fulfillmentUpdatesSpecification bidang untuk menentukan pesan yang muncul untuk memperbarui pengguna selama pemenuhan maksud dan waktu yang terkait dengannya.

  • Gunakan postFulfillmentStatusSpecification bidang untuk menentukan pesan dan tindakan yang terjadi setelah hook kode berhasil, gagal, atau habis waktu.

Anda dapat memanggil hook kode Lambda pada titik-titik berikut dalam percakapan dengan menyetel bidang enableCodeHookInvocation andenabled/activeke: true

Untuk memanggil fungsi Lambda dalam respons awal setelah maksud dikenali, gunakan struktur codeHook di initialResponse bidang operasi atau. CreateIntentUpdateIntent initialResponseBidang memetakan ke InitialResponseSettingobjek berikut:

"initialResponse": { "codeHook": { "active": boolean, "enableCodeHookInvocation": boolean, "invocationLabel": string, "postCodeHookSpecification": PostDialogCodeHookInvocationSpecification object, }, "initialResponse": FulfillmentUpdatesSpecification object, "nextStep": PostFulfillmentStatusSpecification object, "conditional": ConditionalSpecification object }

Untuk memanggil fungsi Lambda setelah memunculkan nilai slot, gunakan bidang slotCaptureSetting dalam bidang operasi valueElicitation atau. CreateSlotUpdateSlot slotCaptureSettingBidang memetakan ke SlotCaptureSettingobjek berikut:

"slotCaptureSetting": { "captureConditional": ConditionalSpecification object, "captureNextStep": DialogState object, "captureResponse": ResponseSpecification object, "codeHook": { "active": true, "enableCodeHookInvocation": true, "invocationLabel": string, "postCodeHookSpecification": PostDialogCodeHookInvocationSpecification object, }, "elicitationCodeHook": { "enableCodeHookInvocation": boolean, "invocationLabel": string }, "failureConditional": ConditionalSpecification object, "failureNextStep": DialogState object, "failureResponse": ResponseSpecification object }
  • Untuk menjalankan fungsi Lambda setelah elisitasi slot berhasil, gunakan bidang. codeHook

  • Untuk menjalankan fungsi Lambda setelah elisitasi slot gagal dan Amazon Lex V2 mencoba lagi elisitasi slot, gunakan bidang tersebut. elicitationCodeHook

Untuk memanggil fungsi Lambda saat mengonfirmasi maksud, gunakan bidang intentConfirmationSetting operasi atau. CreateIntentUpdateIntent intentConfirmationBidang memetakan ke IntentConfirmationSettingobjek berikut:

"intentConfirmationSetting": { "active": boolean, "codeHook": { "active": boolean, "enableCodeHookInvocation": boolean, "invocationLabel": string, "postCodeHookSpecification": PostDialogCodeHookInvocationSpecification object, }, "confirmationConditional": ConditionalSpecification object, "confirmationNextStep": DialogState object, "confirmationResponse": ResponseSpecification object, "declinationConditional": ConditionalSpecification object, "declinationNextStep": FulfillmentUpdatesSpecification object, "declinationResponse": PostFulfillmentStatusSpecification object, "elicitationCodeHook": { "enableCodeHookInvocation": boolean, "invocationLabel": string, }, "failureConditional": ConditionalSpecification object, "failureNextStep": DialogState object, "failureResponse": ResponseSpecification object, "promptSpecification": PromptSpecification object }
  • Untuk menjalankan fungsi Lambda setelah pengguna mengonfirmasi maksud dan slotnya, gunakan bidang tersebut. codeHook

  • Untuk menjalankan fungsi Lambda setelah pengguna menolak konfirmasi maksud dan Amazon Lex V2 mencoba lagi elicitation slot, gunakan bidang tersebut. elicitationCodeHook

Untuk memanggil fungsi Lambda untuk memenuhi maksud, gunakan bidang dalam fulfillmentCodeHook CreateIntentoperasi atau. UpdateIntent fulfillmentCodeHookBidang memetakan ke FulfillmentCodeHookSettingsobjek berikut:

{ "active": boolean, "enabled": boolean, "fulfillmentUpdatesSpecification": FulfillmentUpdatesSpecification object, "postFulfillmentStatusSpecification": PostFulfillmentStatusSpecification object }

3. Setelah Anda mengatur tahapan percakapan untuk menjalankan fungsi Lambda, gunakan BuildBotLocale operasi untuk membangun kembali bot untuk menguji fungsi.