Memigrasi fungsi Lambda dari Amazon Lex V1 ke Amazon Lex V2 - Amazon Lex V1

Jika Anda menggunakan Amazon Lex V2, lihat panduan Amazon Lex V2 sebagai gantinya.

 

Jika Anda menggunakan Amazon Lex V1, kami sarankan untuk meningkatkan bot Anda ke Amazon Lex V2. Kami tidak lagi menambahkan fitur baru ke V1 dan sangat menyarankan menggunakan V2 untuk semua bot baru.

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

Memigrasi fungsi Lambda dari Amazon Lex V1 ke Amazon Lex V2

Amazon Lex V2 hanya mengizinkan satu fungsi Lambda untuk setiap bahasa dalam bot. Fungsi Lambda dan pengaturannya dikonfigurasi untuk alias bot yang Anda gunakan saat runtime.

Fungsi Lambda dipanggil untuk semua maksud dalam bahasa tersebut jika kait kode dialog dan pemenuhan diaktifkan untuk maksud tersebut.

Fungsi Amazon Lex V2 Lambda memiliki format pesan input dan output yang berbeda dari Amazon Lex V1. Ini adalah perbedaan dalam format input fungsi Lambda.

  • Amazon Lex V2 menggantikancurrentIntent danalternativeIntents struktur denganinterpretations struktur. Setiap interpretasi berisi maksud, skor kepercayaan NLU untuk maksud, dan analisis sentimen opsional.

  • Amazon Lex V2 memindahkanactiveContexts,sessionAttributes di Amazon Lex V1 kesessionState struktur terpadu. Struktur ini memberikan informasi tentang keadaan percakapan saat ini, termasuk ID permintaan asal.

  • Amazon Lex V2 tidak mengembalikanrecentIntentSummaryView. Gunakan informasi dalamsessionState struktur sebagai gantinya.

  • Input Amazon Lex V2 menyediakanbotId danlocaleId dalambot atribut.

  • Struktur input berisiinputMode atribut yang menyediakan informasi tentang jenis input: teks, ucapan, atau DTMF.

Ini adalah perbedaan dalam format output fungsi Lambda:

  • sessionAttributesStrukturactiveContexts dan di Amazon Lex V1 digantikan olehsessionState struktur di Amazon Lex V2.

  • recentIntentSummaryViewTidak termasuk dalam output.

  • dialogActionStruktur Amazon Lex V1 dibagi menjadi dua struktur,dialogAction yaitu bagian darisessionState struktur, danmessages itu diperlukan ketikadialogAction.type isElicitIntent. Amazon Lex memilih pesan dari struktur ini untuk ditampilkan kepada pengguna.

Saat Anda membuat bot dengan API Amazon Lex V2, hanya ada satu fungsi Lambda per alias bot per bahasa, bukan fungsi Lambda untuk setiap maksud. Jika Anda ingin terus menggunakan fungsi terpisah, Anda dapat membuat fungsi router yang mengaktifkan fungsi terpisah untuk setiap intent. Berikut ini adalah fungsi router yang dapat Anda gunakan atau modifikasi untuk aplikasi Anda.

import os import json import boto3 # reuse client connection as global client = boto3.client('lambda') def router(event): intent_name = event['sessionState']['intent']['name'] fn_name = os.environ.get(intent_name) print(f"Intent: {intent_name} -> Lambda: {fn_name}") if (fn_name): # invoke lambda and return result invoke_response = client.invoke(FunctionName=fn_name, Payload = json.dumps(event)) print(invoke_response) payload = json.load(invoke_response['Payload']) return payload raise Exception('No environment variable for intent: ' + intent_name) def lambda_handler(event, context): print(event) response = router(event) return response

Daftar bidang yang diperbarui

Tabel berikut memberikan informasi terperinci tentang bidang yang diperbarui dalam permintaan dan respons Amazon Lex V2 Lambda. Anda dapat menggunakan tabel ini untuk memetakan bidang antara versi.

Permintaan

Bidang berikut telah diperbarui dalam format permintaan fungsi Lambda.

Konteks aktif

activeContextsStrukturnya sekarang menjadi bagian darisessionState struktur.

Struktur V1 Struktur V2

ActiveContext

SessionState.ActiveContexts

ActiveContext [*]. timeToLive

SessionState.ActiveContexts [*]. timeToLive

ActiveContext [*]. timeToLive. timeToLiveInSeconds

SessionState.ActiveContexts [*]. timeToLive. timeToLiveInSeconds

ActiveContext [*]. timeToLive. turnsToLive

SessionState.ActiveContexts [*]. timeToLive. turnsToLive

ActiveContexts [*] .nama

SessionState.ActiveContexts [*] .nama

ActiveContexts [*] .parameter

SessionState.ActiveContexts [*] .ContextAttributes

Maksud alternatif

Daftar interpretasi dari indeks 1 hingga N berisi daftar maksud alternatif yang diprediksi oleh Amazon Lex V2, bersama dengan skor kepercayaan mereka. recentIntentSummaryViewItu dihapus dari struktur permintaan di Amazon Lex V2. Untuk melihat detail darirecentIntentSummaryView, gunakanGetSession operasi.

Struktur V1 Struktur V2

AlternatifMaksud

interpretasi [1: *]

recentIntentSummaryLihat

T/A

Bot

Di Amazon Lex V2, bot dan alias memiliki pengenal. ID bot adalah bagian dari masukan codehook. ID alias disertakan, tetapi bukan nama alias. Amazon Lex V2 mendukung beberapa lokal untuk bot yang sama sehingga ID lokal disertakan.

Struktur V1 Struktur V2

bot

bot

bot.name

bot.name

T/A

bot.id

alias

T/A

T/A

Bot.aliasid

bot.version

bot.version

T/A

Bot.localeid

Niat saat ini

sessionState.intentStruktur berisi rincian maksud aktif. Amazon Lex V2 juga mengembalikan daftar semua maksud, termasuk maksud alternatif, dalaminterpretations struktur. Elemen pertama dalam daftar interpretasi selalu sama dengansessionState.intent.

Struktur V1 Struktur V2

currentIntent

SessionState.intent ATAU interpretasi [0] .maksud

CurrentIntent.name

SessionState.intent.name ATAU interpretasi [0] .intent.name

currentIntent. nluConfidenceScore

interpretasi [0] .nluconfidence.Score

Tindakan dialog

confirmationStatusBidang sekarang menjadi bagian darisessionState struktur.

Struktur V1 Struktur V2

CurrentIntent.ConfirmationStatus

SessionState.Intent.ConfirmationState ATAU interpretasi [0] .intent.confirmationState

T/A

SessionState.intent.state ATAU interpretasi [*] .intent.state

Amazon Kendra

kendraResponseBidang sekarang bagian darisessionState daninterpretations struktur.

Struktur V1 Struktur V2

KendraResponse

SessionState.Intent.KendraResponse ATAU interpretasi [0] .Intent.kendraResponse

Sentimen

sentimentResponseStruktur dipindahkan keinterpretations struktur baru.

Struktur V1 Struktur V2

sentimentResponse

interpretasi [0] .sentimentResponse

sentimentResponse.sentimentLabel

interpretasi [0] .sentimentResponse.Sentimen

sentimentresponse.sentimentScore

interpretasi [0] .sentimentResponse.sentimentScore

Slot

Amazon Lex V2 menyediakan satuslots objek di dalamsessionState.intent struktur yang berisi nilai yang diselesaikan, nilai yang ditafsirkan, dan nilai asli dari apa yang dikatakan pengguna. Amazon Lex V2 juga mendukung slot multi-nilai dengan mengaturslotShape asList dan mengaturvalues daftar. Slot nilai tunggal didukung olehvalue lapangan, bentuknya diasumsikanScalar.

Struktur V1 Struktur V2

CurrentIntent.slot

SessionState.Intent.Slots ATAU interpretasi [0] .intent.slots

CurrentIntent.slot [*] .nilai

SessionState.Intent.Slots [*] .value.interpretedValue ATAU interpretasi [0] .intent.slots [*] .value.interpretedValue

T/A

SessionState.intent.slots [*] .value.shape ATAU interpretasi [0] .intent.slots [*] .shape

T/A

SessionState.intent.slots [*] .values ATAU interpretasi [0] .intent.slots [*] .values

CurrentIntent.slotDetails

SessionState.Intent.Slots ATAU interpretasi [0] .intent.slots

CurrentIntent.slotDetails [*] .resolusi

SessionState.intent.slots [*] .terselesaikanNilai ATAU interpretasi [0] .intent.slots [*] .terselesaikanNilai

currentIntent.slotDetails [*] .originalValue

SessionState.intent.slots [*] .originalValue ATAU interpretasi [0] .intent.slots [*] .originalValue

Lainnya

sessionIdBidang Amazon Lex V2 sama denganuserId bidang di Amazon Lex V1. Amazon Lex V2 juga mengirimkaninputMode pemanggil: teks, DTMF, atau pidato.

Struktur V1 Struktur V2

userId

sessionId

inputTranscript

inputTranscript

invocationSource

invocationSource

outputDialogMode

responseContentType

messageVersion

messageVersion

SessionAttributes

SessionState.SessionAttributes

requestAttributes

requestAttributes

T/A

Mode masukan

T/A

originatingRequestId

Response

Bidang berikut telah diubah dalam format pesan respons fungsi Lambda.

Konteks aktif

activeContextsStruktur pindah kesessionState struktur.

Struktur V1 Struktur V2

ActiveContext

SessionState.ActiveContexts

ActiveContext [*]. timeToLive

SessionState.ActiveContexts [*]. timeToLive

ActiveContext [*]. timeToLive. timeToLiveInSeconds

SessionState.ActiveContexts [*]. timeToLive. timeToLiveInSeconds

ActiveContext [*]. timeToLive. turnsToLive

SessionState.ActiveContexts [*]. timeToLive. turnsToLive

ActiveContexts [*] .nama

SessionState.ActiveContexts [*] .nama

ActiveContexts [*] .parameter

SessionState.ActiveContexts [*] .ContextAttributes

Tindakan dialog

dialogActionStruktur pindah kesessionState struktur. Anda sekarang dapat menentukan beberapa pesan dalam tindakan dialog, dangenericAttachments struktur sekarangimageResponseCard struktur.

Struktur V1 Struktur V2

dialogAction

SessionState.DialogAction

Dialogaction.type

SessionState.dialogaction.type

dialogAction. slotToElicit

SessionState.Intent.DialogAction. slotToElicit

dialogaction.type.fulfillmentState

SessionState.Intent.State

Dialogaction.message

pesan

DialogAction.message.contentType

pesan [*] .contentType

Dialogaction.message.content

pesan [*] .konten

Dialogaction.responseCard

pesan [*]. imageResponseCard

Dialogaction.responseCard.version

T/A

dialogaction.responseCard.contentType

pesan [*] .contentType

dialogaction.responsecard.genericlampiran

T/A

Dialogaction.responseCard.genericAttachments [*] .title

pesan [*]. imageResponseCard.judul

Dialogaction.responseCard.genericAttachments [*] .subtitle

pesan [*]. imageResponseCard.subjudul

Dialogaction.responseCard.genericAttachments [*] .imageUrl

pesan [*]. imageResponseCard.imageUrl

Dialogaction.responseCard.genericAttachments [*] .tombol

pesan [*]. imageResponseCard.tombol

Dialogaction.responseCard.genericAttachments [*] .buttons [*] .nilai

pesan [*]. imageResponseCard.buttons [*] .nilai

Dialogaction.responseCard.genericAttachments [*] .buttons [*] .text

pesan [*]. imageResponseCard.buttons [*] .text

dialogAction. kendraQueryRequestMuatan

dialogAction. kendraQueryRequestMuatan

dialogAction. kendraQueryFilterString

dialogAction. kendraQueryFilterString

Maksud dan slot

Bidang maksud dan slot yang merupakan bagian daridialogAction struktur sekarang menjadi bagian darisessionState struktur.

Struktur V1 Struktur V2

Dialogaction.IntentName

SessionState.Intent.name

Dialogaction.slot

SessionState.Intent.Slots

DialogAction.slot [*] .kunci

SessionState.intent.slots [*] .kunci

DialogAction.slot [*] .nilai

SessionState.Intent.Slots [*] .value.interpretedValue

T/A

SessionState.intent.slots [*] .value.shape

T/A

SessionState.intent.slots [*] .nilai

Lainnya

sessionAttributesStrukturnya sekarang menjadi bagian darisessionState struktur. recentIntentSummaryReviewStruktur telah dihapus.

Struktur V1 Struktur V2

SessionAttributes

SessionState.SessionAttributes

recentIntentSummaryLihat

T/A