本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
準則和最佳實務
請參閱下列準則和最佳做法,以最佳化機器人的行為以及與客戶的互動。
簽署請求
API 參考中的所有 Amazon Lex V2 模型建置和執行階段請求都使用簽章 V4 來驗證請求。如需有關驗證要求的詳細資訊,請參閱. AWS 一般參考
保護機密資訊
運行時 API 操作,RecognizeText並RecognizeUtterance採取會話 ID 作為必要參數。開發人員可以將此設定為符合 API 中所述之限制的任何值。我們建議您不要使用此參數傳送任何機密資訊,例如使用者登入資訊、電子郵件或社會安全號碼。此 ID 主要用於唯一識別與機器人的對話。
從用戶話語中捕獲插槽值
Amazon Lex V2 會使用您在插槽類型定義中提供的列舉值來訓練其機器學習模型。假設您定義了使用下列範例語調GetPredictionIntent
用的意圖:
"Tell me the prediction for {sign}"
其中 {sign} 是具有 12 個枚舉值的自定義類型ZodiacSign
的插槽:Aries
通過Pisces
。現在假設用戶說「告訴我對地球的預測」:
-
如果您執行下列其中一個動作,Amazon Lex V2 會推斷出「地球」是一個ZodiacSign值:
-
將
valueSelectionStrategy
欄位設定為ORIGINAL_VALUE
使用CreateSlotType操作 -
在主控台中選取 [擴充值]
-
-
如果您透過執行下列其中一個動作,將辨識限制為您針對插槽類型定義的值,Amazon Lex V2 無法辨識「地球」值:
-
將
valueSelectionStrategy
欄位設定為TOP_RESOLUTION
使用CreateSlotType
操作 -
在主控台中選取 [限制為插槽值和同義字]
-
當您定義槽值的同義字時,它們會被識別為與槽值相同。不過,會傳回槽值,而不是同義字。
由於 Amazon Lex V2 會將此值傳遞給您的用戶端應用程式或 Lambda 函數,因此您應該先檢查插槽值是否為有效值,然後再將其用於履行活動。
當 Amazon Lex V2 呼叫 Lambda 函數或傳回與用戶端之間的語音互動結果時,無法保證插槽值的情況。在文字互動中,槽值的大小寫會符合輸入的文字或槽值,端視 valueResolutionStrategy
欄位的值而定。
插槽值中的首字母縮寫
定義包含縮寫的槽值時,請使用下列模式:
-
以句點分隔的大寫字母 (V.D.)
-
以空格分隔的大寫字母 (D V D)
用於日期和時間的內置插槽
亞馬遜。日期和亞馬遜時間內置插槽類型捕獲日期和時間(絕對和相對)。相對日期和時間會在 Amazon Lex V2 接收請求的時間和日期以及處理請求的區域中解決。
對於AMAZON.Time
內置插槽類型,如果用戶未指定時間在中午之前或之後,則時間不明確。在這種情況下,亞馬遜 Lex V2 將再次提示用戶。我們建議提示引出絕對的時間。例如,使用如「您希望比薩何時送達? 您可以說下午 6 點或傍晚 6 點」的提示。
避免機器人訓練資料中的模糊
在機器人中提供混淆的訓練資料,可降低 Amazon Lex V2 瞭解使用者輸入的能力。假設您的機器人中有兩個意圖(OrderPizza
和OrderDrink
),並且包含「我想訂購」作為示例語句。當您建置機器人時,Amazon Lex V2 無法將此語音對應到特定意圖。因此,當使用者在執行階段輸入此語音時,Amazon Lex V2 無法挑選具有高度信心的意圖。
如果您有兩個意圖具有相同的範例語調,請使用輸入內容協助 Amazon Lex V2 在執行階段區分兩個意圖。如需詳細資訊,請參閱設定意圖前後關聯。
使用標準別名
-
您的機器人的 TSTALIASID 別名指向草稿版本,只能用於手動測試。Amazon Lex 會限制您可以對機器人的 TSTALIASID 別名發出的執行時間請求數量。
-
當您更新機器人的草稿版本時,Amazon Lex 會使用機器人的 TSTALIASID 別名關閉任何用戶端應用程式的任何進行中交談。一般而言,您不應在生產環境中使用機器人的 TSTALIASID 別名,因為草稿版本可以更新。您應該發布一個版本和一個別名,並使用它們來代替。
-
當您更新別名時,Amazon Lex 需要幾分鐘的時間來取得變更。當您修改機器人的草稿版本時,TSTALIASID 別名會立即挑選變更。