

本文為英文版的機器翻譯版本，如內容有任何歧義或不一致之處，概以英文版為準。

# 改善對話中具有執行時間提示的槽值辨識
<a name="using-hints"></a>

透過*執行時間提示*，您可以根據內容為 Amazon Lex V2 提供一組槽值，以在音訊對話中獲得更好的辨識，並改善槽解析度。您可以使用執行時間提示來提供執行時間的片語清單，這些片語會成為解決槽值的候選項目。

例如，如果與航班保留機器人互動的使用者經常前往舊金山、雅加達、首爾和莫斯科，您可以在引出目的地時，使用這四個城市的清單來設定執行時間提示，以改善經常旅行城市的辨識。

執行時間提示僅提供英文 （美國） 和英文 （英國） 語言。它們可以與下列槽類型搭配使用：
+ 自訂插槽類型
+ AMAZON.City
+ AMAZON.Country
+ AMAZON.FirstName
+ AMAZON.LastName
+ AMAZON.State
+ AMAZON.StreetName

**執行時間提示基本概念**
+ 只有在從使用者引出槽值時，才會使用執行期提示。
+ 當您使用執行時間提示時，提示的值會優先於類似的值。例如，對於食品訂購機器人，您可以將選單項目的清單設定為執行時間提示，同時在自訂槽中引出食品項目，以偏好 “fillet” 而非類似的響亮 “fella”。
+ 如果使用者輸入與執行時間提示中提供的值不同，則會將原始使用者輸入用於插槽。
+ 對於自訂插槽類型，提供做為執行期提示的值將用於解析插槽，即使它們在機器人建立期間不屬於自訂插槽。
+ 執行時間提示僅支援 8 kHz 音訊輸入。它們適用於 Amazon Lex V2 支援的[聯絡中心整合](https://docs.aws.amazon.com/lexv2/latest/dg/contact-center.html)。Amazon Lex V2 主控台上的[測試視窗](https://docs.aws.amazon.com/lexv2/latest/dg/test-bot.html)不會提供音訊輸入的執行期提示，因為它使用 16 kHz 音訊輸入。

**注意**  
您必須先重建機器人，才能將執行時間提示與現有機器人搭配使用。現有版本的機器人不支援執行時間提示。您必須建立新的機器人版本才能使用它們。

您可以使用 [PutSession](https://docs.aws.amazon.com/lexv2/latest/APIReference/API_runtime_PutSession.html)、[RecognizeText](https://docs.aws.amazon.com/lexv2/latest/APIReference/API_runtime_RecognizeText.html)、[RecognizeUtterance](https://docs.aws.amazon.com/lexv2/latest/APIReference/API_runtime_RecognizeUtterance.html) 或 [StartConversation](https://docs.aws.amazon.com/lexv2/latest/APIReference/API_runtime_StartConversation.html) 操作，將執行時間提示傳送至 Amazon Lex V2。您也可以使用 Lambda 函數新增執行時間提示。

您可以在對話開始時傳送執行時間提示，以設定機器人中使用的每個槽的提示，也可以在對話期間傳送提示做為工作階段狀態的一部分。`runtimeHints` 屬性會將插槽映射至該插槽的提示。

將執行期提示傳送至 Amazon Lex V2 後，它們會在對話的每個回合中持續存在，直到工作階段結束為止。如果您傳送 null `runtimeHints`結構，則會使用現有的提示。您可以透過以下方式修改提示：
+ 將新`runtimeHints`結構傳送至機器人。新結構的內容會取代現有的結構內容。
+ 將空`runtimeHints`結構傳送至機器人。這會清除機器人的執行時間提示。

## 在內容中新增槽值
<a name="hints-context"></a>

當您的應用程式具有有關使用者下一個可能表達用語的資訊時，透過提供預期的槽值作為執行期提示來新增機器人的內容。將 Lambda 對話方塊程式碼掛勾新增至您的機器人 （如需[將 AWS Lambda函數整合到您的 Amazon Lex V2 機器人](lambda.md)詳細資訊，請參閱 )，並使用 中的 **proposedNextState** 欄位[AWS LambdaLex V2 的輸入事件格式](lambda-input-format.md)來判斷您應該包含的執行時間提示，以改善與使用者的對話。

 例如，在銀行應用程式中，您可以為特定使用者產生帳戶暱稱清單，然後在引出使用者想要存取的帳戶時使用清單。

當您有內容協助機器人解譯使用者輸入時，請在對話開始時傳送執行時間提示。例如，如果您有使用者的電話號碼，您可以使用此資訊來查詢使用者，以便如果您要請求使用者的名稱來驗證其登入資料，您可以使用 `PutSession`或 `StartConversation`操作將名字和姓氏提示傳遞給機器人。

在對話期間，您可能會從一個槽值收集資訊，有助於處理另一個槽值。例如，在擁有使用者帳號的汽車維護應用程式中，您可以進行查詢以尋找客戶擁有的汽車，並將其作為提示傳遞到另一個位置。

輸入縮寫或其他字母應個別發音的單字，以句點和空格分隔。請勿使用個別字母，除非它們是片語的一部分，例如「J. P.Morgan」或「A.W.S」。您可以使用大寫或小寫字母來定義縮寫。

## 將提示新增至插槽
<a name="hints-adding"></a>

若要將執行時間提示新增至插槽，您可以使用屬於`runtimeHints`結構一部分的`sessionState`結構。以下是 `runtimeHints`結構的範例。它為「MakeAppointment」意圖提供兩個槽的提示：「FirstName」和「LastName」。

```
{
    "sessionState": {
        "intent": {},
        "activeContexts": [],
        "dialogAction": {},
        "originatingRequestId": {},
        "sessionAttributes": {},
        "runtimeHints": {
            "slotHints": {
                "MakeAppointment": {
                    "FirstName": {
                        "runtimeHintValues": [
                            {
                                "phrase": "John"
                            },
                            {
                                "phrase": "Mary"
                            }
                        ]
                    },
                    "LastName": {
                        "runtimeHintValues": [
                            {
                                "phrase": "Stiles"
                            },
                            {
                                "phrase": "Major"
                            }
                        ]
                    }
                }
            }
        }
    }
}
```

您也可以使用 Lambda 函數在對話期間新增執行時間提示。若要新增執行時間提示，請將`runtimeHints`結構新增至 Lambda 函數傳送至 Amazon Lex V2 之回應的工作階段狀態。如需詳細資訊，請參閱[AWS LambdaLex V2 的回應格式](lambda-response-format.md)。

您必須在請求`slotName`中指定有效的 `intentName`和 ，否則 Amazon Lex V2 會傳回執行時間錯誤。