設定請求屬性 - Amazon Lex V1

如果您使用的是 Amazon Lex V2,請改參閱 Amazon Lex V2 指南

 

如果您使用的是 Amazon Lex V1,建議您將機器人升級至 Amazon Lex V2。我們不再將新功能新增至 V1,強烈建議所有新機器人都使用 V2。

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

設定請求屬性

請求屬性包含請求特定的資訊並且僅適用於目前的請求。用戶端應用程式會將此資訊傳送至 Amazon Lex。使用請求屬性來傳遞不需要在整個工作階段內保留的資訊。您可以建立自己的請求屬性,也可以使用預先定義的屬性。若要傳送請求屬性,請在 x-amz-lex-request-attributes 中使用 PostContent 標頭,或在 requestAttributes 請求中使用 PostText 欄位。請求屬性並不像工作階段屬性會在請求之間保留,因此 PostContentPostText 回應中不會傳回請求屬性。

注意

若要傳送在請求之間保留的資訊,請使用工作階段屬性。

命名空間 x-amz-lex: 是預留給預先定義的請求屬性。請勿建立以 x-amz-lex: 為字首的請求屬性。

設定預先定義的請求屬性

Amazon Lex 提供預先定義的請求屬性,以管理其處理傳送至機器人之資訊的方式。該屬性不會在整個工作階段內保留,因此您必須在每個請求中傳送預先定義的屬性。預先定義的屬性全都位於 x-amz-lex: 命名空間中。

除了下列預先定義的屬性之外,Amazon Lex 還為簡訊平台提供預先定義的屬性。如需該些屬性的清單,請參閱在簡訊平台上部署 Amazon Lex 機器人

設定回應類型

如果您有兩個具有不同功能的用戶端應用程式,可能需要限制回應中的訊息格式。例如,您可能想要將傳送到 Web 用戶端的訊息限制為純文字,但是讓行動用戶端可以同時使用純文字和語音合成標記語言 (SSML)。若要設定 PostContentPostText 操作傳回的訊息格式,請使用 x-amz-lex:accept-content-types" 請求屬性。

您可以將屬性設定為以下訊息類型的任何組合:

  • PlainText郵件包含純 UTF-8 文字。

  • SSML訊息包含為語音輸出格式化的文字。

  • CustomPayload訊息包含您為用戶端建立的自訂格式。您可以定義承載,以符合應用程式的需求。

Amazon Lex 只會傳回回應Message欄位中具有指定類型的訊息。您可以用逗號分隔各值來設定多個值。如果您使用訊息群組,那麼每個訊息群組都必須至少包含一個指定類型的訊息。否則,您會收到 NoUsableMessageException 錯誤。如需詳細資訊,請參閱訊息群組

注意

x-amz-lex:accept-content-types 請求屬性不會影響 HTML 本文的內容。PostText 操作回應的內容一律是 UTF-8 純文字。PostContent 操作回應的本文在請求中包含的資料具備 Accept 標頭中所設定的格式。

設定偏好的時區

若要設定用於解析日期的時區,以便與使用者的時區相關,請使用 x-amz-lex:time-zone 請求屬性。如果您在 x-amz-lex:time-zone 屬性中沒有指定時區,預設值會依您使用機器人的區域而定。

區域 預設時區
美國東部 (維吉尼亞北部) America/New_York
美國西部 (奧勒岡) America/Los_Angeles
亞太區域 (新加坡) Asia/Singapore
亞太區域 (雪梨) Australia/Sydney
亞太區域 (東京) Asia/Tokyo
歐洲 (法蘭克福) Europe/Berlin
歐洲 (愛爾蘭) Europe/Dublin
歐洲 (倫敦) Europe/London

例如,如果用戶響應提示「您希望包裹tomorrow在哪一天交付?」 封裝遞送的實際日期取決於使用者的時區。例如,紐約的 9 月 16 日 01:00 是洛杉磯 9 月 15 日的 22:00。如果您的服務在美國東部 (維吉尼亞北部) 區域執行,而洛杉磯的人員使用預設時區「明天」訂購要遞送的包裹,則包裹將在 17 日遞送,而非 16 日遞送。不過,如果您將 x-amz-lex:time-zone 請求屬性設定為 America/Los_Angeles,則包裹會在 16 日送達。

您可以將屬性設定為任何網際網路號碼分配局 (IANA) 時區名稱。如需時區名稱的清單,請參閱 Wikipedia 上的 tz 資料庫時區清單

設定使用者定義的請求屬性

使用者定義的請求屬性是您在每個請求中傳送給機器人的資料。您在 amz-lex-request-attributes 請求中的 PostContent 標頭,或在 requestAttributes 請求中 PostText 欄位傳送資訊。

若要將請求屬性傳送至 Amazon Lex,您必須建立屬性 string-to-string 對應。以下說明如何對應請求屬性:

{ "attributeName": "attributeValue", "attributeName": "attributeValue" }

對於 PostText 操作,您使用 requestAttributes 欄位將對應插入請求的本文,如下所示:

"requestAttributes": { "attributeName": "attributeValue", "attributeName": "attributeValue" }

對於 PostContent 操作,您用 base64 來編碼對應,然後將其做為 x-amz-lex-request-attributes 標頭傳送。

如果您在請求屬性中傳送二進位或結構化資料,必須先將資料轉換為簡單的字串。如需詳細資訊,請參閱設定複雜屬性