Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.
Lampirkan AWS Lambda fungsi ke bot menggunakan operasi API
Anda harus terlebih dahulu melampirkan fungsi Lambda ke alias bot Anda sebelum Anda dapat memanggilnya. Anda hanya dapat mengaitkan satu fungsi Lambda dengan setiap alias bot. Lakukan langkah-langkah ini untuk melampirkan fungsi Lambda menggunakan operasi API.
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 }, ... } }
-
botAliasLocaleSettings
Bidang 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. -
Untuk menemukan fungsi
lambdaARN
for Lambda, buka AWS Lambda konsol di https://console.aws.amazon.com/lambda/rumah, 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. -
Untuk mengizinkan Amazon Lex V2 memanggil fungsi Lambda untuk alias, setel
enabled
bidang ke.true
Menyetel maksud untuk menjalankan fungsi Lambda menggunakan operasi API
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
-
Untuk mengatur hook kode dialog Lambda agar berjalan setelah setiap putaran percakapan, atur
enabled
bidang DialogCodeHookSettingsobjek berikut didialogCodeHook
bidang menjadi:true
"dialogCodeHook": { "enabled":
boolean
} -
Atau, Anda dapat mengatur hook kode dialog Lambda agar berjalan hanya pada titik-titik tertentu dalam percakapan dengan memodifikasi
codeHook
dan/atauelicitationCodeHook
bidang dalam struktur yang sesuai dengan tahapan percakapan di mana Anda ingin menjalankan fungsi tersebut. Untuk menggunakan hook kode dialog Lambda untuk pemenuhan maksud, gunakanfulfillmentCodeHook
bidang dalam operasi atau. CreateIntentUpdateIntent Struktur dan penggunaan ketiga jenis kait kode ini adalah sebagai berikut:
codeHook
Bidang 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 menjaditrue
Amazon Lex V2 untuk memanggil kait kode pada saat itu dalam percakapan. -
Ubah
enableCodeHookInvocation
bidang menjaditrue
Amazon Lex V2 untuk memungkinkan hook kode berjalan normal. Jika Anda menandainyafalse
, Amazon Lex V2 bertindak seolah-olah pengait kode berhasil dikembalikan. -
invocationLabel
Ini 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.
elicitationCodeHook
Bidang 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. elicitationCodeHook
Bidang adalah ElicitationCodeHookInvocationSettingobjek dengan struktur berikut:
"elicitationCodeHook": { "enableCodeHookInvocation":
boolean
, "invocationLabel":string
}
-
Ubah
enableCodeHookInvocation
bidang menjaditrue
Amazon Lex V2 untuk memungkinkan hook kode berjalan normal. Jika Anda menandainyafalse
, Amazon Lex V2 bertindak seolah-olah pengait kode berhasil dikembalikan. -
invocationLabel
Ini menunjukkan langkah dialog dari mana kode hook dipanggil.
fulfillmentCodeHook
Bidang 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 menjaditrue
Amazon Lex V2 untuk memanggil kait kode pada saat itu dalam percakapan. -
Ubah
enabled
bidang menjaditrue
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
/active
ke: true
Untuk memanggil fungsi Lambda dalam respons awal setelah maksud dikenali, gunakan struktur codeHook
di initialResponse
bidang operasi atau. CreateIntentUpdateIntent initialResponse
Bidang 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 slotCaptureSetting
Bidang 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 intentConfirmation
Bidang 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 fulfillmentCodeHook
Bidang 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.