如果您使用的是 Amazon Lex V2,請改參閱 Amazon Lex V2 指南。
如果您使用的是 Amazon Lex V1,我們建議您將機器人升級至 Amazon Lex V2。我們不再將新功能新增至 V1,並強烈建議對所有新機器人使用 V2。
本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
將 Lambda 函數從 Amazon Lex V1 遷移到 Amazon Lex V2
Amazon Lex V2 只允許一個機器人中的每種語言使用一個 Lambda 函數。Lambda 函數及其設定是針對您在執行階段使用的機器人別名進行設定。
如果針對意圖啟用對話方塊和履行程式碼掛接,則會針對該語言的所有意圖叫用 Lambda 函數。
Amazon Lex V2 Lambda 函數具有與 Amazon Lex V1 不同的輸入和輸出消息格式。這些都是 Lambda 函數輸入格式的差異。
-
Amazon Lex V2 替換
currentIntent
與結alternativeIntents
構與結interpretations
構。每個解譯都包含意圖、意圖的 NLU 信賴度分數,以及選用的情緒分析。 -
Amazon Lex V2 移動
activeContexts
,sessionAttributes
在 Amazon Lex V1 到統一的sessionState
結構。此結構會提供有關交談的目前狀態的相關資訊,包括原始請求 ID。 -
Amazon Lex V2 不返回
recentIntentSummaryView
. 請改用sessionState
結構中的資訊。 -
Amazon Lex V2 輸入提供
bot
屬性localeId
中的botId
和。 -
輸入結構包含提供輸入類型資訊的
inputMode
屬性:文字、語音或 DTMF。
以下是 Lambda 函數輸出格式的差異:
-
Amazon Lex V1 中的
activeContexts
和結sessionAttributes
構被亞馬 Amazon Lex V2 中的sessionState
結構所取代。 -
輸出中
recentIntentSummaryView
未包含在輸出中。 -
Amazon Lex V1
dialogAction
結構分為兩個結構,dialogAction
這是sessionState
結構的一部分,messages
這是必要的dialogAction.type
ElicitIntent
。Amazon Lex 從這個結構中選擇訊息來顯示給使用者。
使用 Amazon Lex V2 API 建立機器人時,每種語言的每個機器人別名只有一個 Lambda 函數,而不是針對每個意圖使用 Lambda 函數。如果你想繼續使用單獨的功能,你可以創建一個路由器功能,為每個意圖激活一個單獨的功能。以下是您可以在應用程式中使用或修改的路由器功能。
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
更新的欄位清單
下表提供 Amazon Lex V2 Lambda 請求和回應中更新欄位的詳細資訊。您可以使用這些表格來對應版本之間的欄位。
要求
下列欄位已更新為 Lambda 函數請求格式。
使用中內容
結activeContexts
構現在是結sessionState
構的一部分。
v1 結構 | v1 結構 |
---|---|
主動式環境 |
工作階段狀態. 主動上下文 |
主動式上下文 [*]。 timeToLive |
工作階段狀態。主動式上下文 [*]。 timeToLive |
主動式上下文 [*]。 timeToLive。 timeToLiveInSeconds |
工作階段狀態。主動式上下文 [*]。 timeToLive。 timeToLiveInSeconds |
主動式上下文 [*]。 timeToLive。 turnsToLive |
工作階段狀態。主動式上下文 [*]。 timeToLive。 turnsToLive |
主動式上下文 [*]. 名稱 |
工作階段狀態. 主動式上下文 [*]. 名稱 |
主動式上下文 [*]. 參數 |
工作階段狀態. 主動式上下文 [*]. 上下文屬性 |
替代意圖
索引 1 到 N 的解釋清單包含 Amazon Lex V2 預測的替代意圖清單,以及其可信度分數。recentIntentSummaryView
已從 Amazon Lex V2 中的請求結構中移除。若要查看中的詳細資訊recentIntentSummaryView
,請使用GetSession作業。
v1 結構 | v1 結構 |
---|---|
替代意圖 |
解釋 [1:*] |
recentIntentSummary檢視 |
N/A |
機器人
在 Amazon Lex V2 中,機器人和別名具有識別碼。機器人 ID 是程式碼掛接輸入的一部分。別名 ID 會包含在內,但不包含別名名稱。Amazon Lex V2 支援相同機器人的多個語言環境,因此包含地區設定 ID。
v1 結構 | v1 結構 |
---|---|
機器人 |
機器人 |
機器人名 |
機器人名 |
N/A |
機器人識別碼 |
機器人別名 |
N/A |
N/A |
不良病毒 |
機器人版 |
機器人版 |
N/A |
植物学 |
目前的意圖
結sessionState.intent
構包含使用中意圖的詳細資訊。Amazon Lex V2 也會傳回interpretations
結構中所有意圖的清單,包括替代意圖。解釋列表中的第一個元素始終與相同sessionState.intent
。
v1 結構 | v1 結構 |
---|---|
currentIntent |
會話狀態。意圖或解釋 [0]. 意圖 |
目前意圖名稱 |
工作階段狀態。意圖名稱或解釋 [0]。 |
currentIntent。 nluConfidenceScore |
解釋 [0]. 無信心. 得分 |
對話框動作
confirmationStatus
欄位現在是sessionState
結構的一部分。
v1 結構 | v1 結構 |
---|---|
目前意圖. 確認狀態 |
會話狀態. 意圖. 確認狀態或解釋 [0]. 意圖. |
N/A |
會話狀態。意圖。狀態或解釋 [*] .intent.state |
Amazon Kendra
kendraResponse
欄位現在是sessionState
和interpretations
結構的一部分。
v1 結構 | v1 結構 |
---|---|
kendraResponse |
會話狀態. 意圖. 肯德拉響應或解釋 [0]. |
Inmo
結sentimentResponse
構即會移至新interpretations
結構。
v1 結構 | v1 結構 |
---|---|
sentimentResponse 持 |
詮釋 [0]. Intion |
情緒支持. 情緒標籤 |
解釋 [0]. 情緒自發. 情緒 |
情緒支持。感情分數 |
解釋 [0]. 情緒自發. 情緒分數 |
槽
Amazon Lex V2 在sessionState.intent
結構內提供單一slots
物件,其中包含已解析的值、解譯值和使用者所說的原始值。Amazon Lex V2 也透過設定slotShape
為List
和設定values
清單來支援多值插槽。單值槽由value
字段支持,它們的形狀被假定為Scalar
。
v1 結構 | v1 結構 |
---|---|
目前意向插槽 |
會話狀態. 意圖插槽或解釋 [0]. |
目前意圖。插槽 [*]. 值 |
值. 解釋值或解釋 [0]. 意圖插槽 [*]. 值. |
N/A |
插槽 [*]. 值. 形狀或解釋 [0]. 意圖插槽 [*]. |
N/A |
插槽 [*]. 值或解釋 [0]. 意圖插槽 [*]. |
目前意圖。插槽詳細資訊 |
會話狀態. 意圖插槽或解釋 [0]. |
目前意圖。插槽詳細資訊 [*]. |
插槽 [*]. 解析值或解釋 [0]. 意圖插槽 [*]. 已解析值 |
目前意圖。插槽詳細資訊 [*]. 原始值 |
插槽 [*]. 原始值或解釋 [0]. 意圖插槽 [*]. 原始值 |
其他
Amazon Lex V2sessionId
欄位與亞 Amazon Lex V1 中的userId
欄位相同。Amazon Lex V2 還發送呼叫者inputMode
的:文本,DTMF 或語音。
v1 結構 | v1 結構 |
---|---|
userId |
sessionId |
inputTranscript |
inputTranscript |
invocationSource |
invocationSource |
outputDialogMode |
responseContentType |
messageVersion |
messageVersion |
sessionAttributes |
階段作業狀態. 工作階段屬性 |
requestAttributes |
requestAttributes |
N/A |
輸入模式 |
N/A |
originatingRequestId |
回應
Lambda 函數回應訊息格式中的下列欄位已變更。
使用中內容
結activeContexts
構已移至結sessionState
構。
v1 結構 | v1 結構 |
---|---|
主動式環境 |
工作階段狀態. 主動上下文 |
主動式上下文 [*]。 timeToLive |
工作階段狀態。主動式上下文 [*]。 timeToLive |
主動式上下文 [*]。 timeToLive。 timeToLiveInSeconds |
工作階段狀態。主動式上下文 [*]。 timeToLive。 timeToLiveInSeconds |
主動式上下文 [*]。 timeToLive。 turnsToLive |
工作階段狀態。主動式上下文 [*]。 timeToLive。 turnsToLive |
主動式上下文 [*]. 名稱 |
工作階段狀態. 主動式上下文 [*]. 名稱 |
主動式上下文 [*]. 參數 |
工作階段狀態. 主動式上下文 [*]. 上下文屬性 |
對話框動作
結dialogAction
構已移至結sessionState
構。您現在可以在對話方塊動作中指定多個訊息,而genericAttachments
結構現在就是結imageResponseCard
構。
v1 結構 | v1 結構 |
---|---|
dialogAction |
工作階段狀態. 對話 |
對話動作. 類型 |
工作階段狀態. 對話. 類型 |
dialogAction。 slotToElicit |
會話狀態。意圖。對話。 slotToElicit |
對話. 類型. 履行狀態 |
工作階段狀態. 意圖. 狀態 |
對話動作. 訊息 |
messages |
對話動作. 訊息. 內容類型 |
訊息 [*]. 內容類型 |
對話動作. 訊息. 內容 |
消息 [*]. 內容 |
對話. 回應卡 |
消息 [*]。 imageResponseCard |
對話. 回應卡. 版本 |
N/A |
對話. 回應卡. 內容類型 |
訊息 [*]. 內容類型 |
對話框. 回應卡. 一般附件 |
N/A |
對話框. 回應卡. 一般附件 [*]. 標題 |
消息 [*]。 imageResponseCard. 標題 |
對話. 回應卡. 一般附件 [*]. |
消息 [*]。 imageResponseCard. 字幕。 |
對話框. 回應卡. 一般附件 [* imageUrl |
消息 [*]。 imageResponseCard. imageUrl |
對話框. 回應卡. 一般附件 [*]. 按鈕 |
消息 [*]。 imageResponseCard. 按鈕。 |
一般附件 [*]. 按鈕 [*]. |
消息 [*]。 imageResponseCard. 按鈕 [*]. 值 |
通用附件 [*]. 按鈕 [*]. |
消息 [*]。 imageResponseCard. 按鈕 [*]. 文字 |
dialogAction。 kendraQueryRequest酬載 |
dialogAction。 kendraQueryRequest酬載 |
dialogAction。 kendraQueryFilter字符串 |
dialogAction。 kendraQueryFilter字符串 |
意圖和槽
屬於dialogAction
結構一部分的意圖和槽欄位現在已成為sessionState
結構的一部分。
v1 結構 | v1 結構 |
---|---|
對話動作. 意圖名稱 |
工作階段狀態. 意圖名稱 |
對話. 插槽 |
工作階段狀態. 意圖槽 |
對話。插槽 [*]. 鍵 |
工作階段狀態。意圖插槽 [*] .key |
對話框. 插槽 [*]. 值 |
工作階段狀態。意圖插槽 [*]. 值. |
N/A |
工作階段狀態。意圖插槽 [*]. |
N/A |
工作階段狀態. 意圖插槽 [*]. 值 |
其他
結sessionAttributes
構現在是結sessionState
構的一部分。結recentIntentSummaryReview
構已經移除。
v1 結構 | v1 結構 |
---|---|
sessionAttributes |
階段作業狀態. 工作階段屬性 |
recentIntentSummary檢視 |
N/A |