如果您使用的是 Amazon Lex V2,請改參閱 Amazon Lex V2 指南。
如果您使用的是 Amazon Lex V1,我們建議您將機器人升級至 Amazon Lex V2。我們不再將新功能新增至 V1,並強烈建議對所有新機器人使用 V2。
本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
使用可信度分數
當用户發言時,Amazon Lex 使用自然語言理解 (NLU) 來理解用户的請求並返回正確的意圖。默認情況下,Amazon Lex 會返回您的機器人定義的最有可能的意圖。
在某些情況下,Amazon Lex 可能難以確定最可能的意圖。例如,用户可能會發表模糊的言論,或者可能有兩種相似的意圖。為了幫助確定正確的意圖,您可以將您的域知識與可信度分數替代意圖清單。置信度分數是 Amazon Lex 提供的評級,表明意圖是正確意圖是否具有多大的信心。
要確定兩種備選方法之間的差異,您可以比較它們的置信度分數。例如,如果一個意圖的置信度得分為 0.95,而另一個意圖的得分為 0.65,則第一個意圖可能是正確的。但是,如果一個意圖的得分為 0.75,而另一個意圖的分數為 0.72,則兩種意圖之間存在模糊性,即您可能能夠在應用程序中使用域知識進行區分。
您還可以使用置信度分數創建測試應用程序,以確定對意圖語音的更改是否會對機器人的行為產生影響。例如,您可以使用一組語音獲取機器人意圖的置信度分數,然後用新的語音更新意圖。然後,您可以檢查置信度分數,以查看是否有改善。
Amazon Lex 返回的置信度分數是比較值。你不應該依靠他們作為一個絕對分數。這些值可能會根據 Amazon Lex 的改進而發生變化。
當您使用置信度分數時,Amazon Lex 會在每個響應中返回最有可能的意圖和最多 4 個備選意圖及其相關分數。如果所有置信度得分都小於閾值,則 Amazon Lex 將包含AMAZON.FallbackIntent
,AMAZON.KendraSearchIntent
,或者兩者(如果您已配置它們)。您可以使用默認閾值,或設定您自己的閾值。
下列程式碼顯示alternativeIntents
區段中的PostTextoperation.
"alternativeIntents": [ { "intentName": "string", "nluIntentConfidence": { "score": number }, "slots": { "string" : "string" } } ],
在創建或更新自動程序時設置閾值。您可以使用 API 或 Amazon Lex 控台。對於下面列出的區域,您需要選擇加入才能提高準確度和置信度分數。在控制台中,選擇進階選項區段。使用 API,將enableModelImprovements
參數時調用PutBotoperation. :
-
美國東部 (維吉尼亞北部) (us-east-1)
-
美國西部 (奧勒岡) (us-west-2)
-
亞太區域 (雪梨) (ap-southeast-2)
-
歐洲 (愛爾蘭) (eu-west-1)
在所有其他區域,默認情況下可用精度改進和置信度分數支持。
要更改置信閾值,請在控制台中設置該閾值,或使用PutBotoperation. 閾值必須是 1.00 和 0.00 之間的數字。
要使用控制台,請在創建或更新自動程序時設置置信度閾值。
在創建機器人時設置置信閾值(控制台)
-
在 上建立機器人中,在可信度分數閾值欄位。
更新置信閾值(控制台)
-
從機器人清單中,選擇要更新的機器人。
-
選擇 Settings (設定) 索引標籤。
-
在左側導覽中,選擇將軍。
-
更新可信度分數閾值欄位。
設置或更新置信閾值 (SDK)
-
將
nluIntentConfidenceThreshold
參數PutBotoperation. 以下 JSON 代碼顯示了正在設置的參數。"nluIntentConfidenceThreshold": 0.75,
工作期管理
要更改 Amazon Lex 在與用户對話中使用的意圖,您可以使用對話框代碼鈎子 Lambda 函數中的響應,也可以在自定義應用程序中使用會話管理 API。
使用 Lambda 函數
當您使用 Lambda 函數時,Amazon Lex 會使用包含函數輸入的 JSON 結構調用它。JSON 結構包含一個名為currentIntent
,其中包含 Amazon Lex 確定為用户發言的最可能意圖的意圖。JSON 結構還包括alternativeIntents
字段,該字段包含最多四個可能滿足用户意圖的附加意圖。每個意圖都包含一個名為nluIntentConfidenceScore
,其中包含 Amazon Lex 分配給意圖的置信度。
要使用替代意圖,您可以在ConfirmIntent
或ElicitSlot
對話框操作。
如需詳細資訊,請參閱 使用 Lambda 函數。
使用工作區段管理 API
要使用與當前意圖不同的意圖,請使用PutSessionoperation. 例如,如果您決定第一個替代方案比 Amazon Lex 選擇的意圖更可取,則可以使用PutSession
操作來更改意圖,以便用户與之交互的下一個意圖是您選擇的目的。
如需詳細資訊,請參閱使用 Amazon Lex API 管理工作階段。