如果您使用的是 Amazon Lex V2,請改參閱 Amazon Lex V2 指南。
如果您使用的是 Amazon Lex V1,建議您將機器人升級至 Amazon Lex V2。我們不再將新功能新增至 V1,強烈建議所有新機器人都使用 V2。
本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
設定請求屬性
請求屬性包含請求特定的資訊並且僅適用於目前的請求。用戶端應用程式會將此資訊傳送至 Amazon Lex。使用請求屬性來傳遞不需要在整個工作階段內保留的資訊。您可以建立自己的請求屬性,也可以使用預先定義的屬性。若要傳送請求屬性,請在 x-amz-lex-request-attributes
中使用 PostContent 標頭,或在 requestAttributes
請求中使用 PostText 欄位。請求屬性並不像工作階段屬性會在請求之間保留,因此 PostContent
或 PostText
回應中不會傳回請求屬性。
注意
若要傳送在請求之間保留的資訊,請使用工作階段屬性。
命名空間 x-amz-lex:
是預留給預先定義的請求屬性。請勿建立以 x-amz-lex:
為字首的請求屬性。
設定預先定義的請求屬性
Amazon Lex 提供預先定義的請求屬性,以管理其處理傳送至機器人之資訊的方式。該屬性不會在整個工作階段內保留,因此您必須在每個請求中傳送預先定義的屬性。預先定義的屬性全都位於 x-amz-lex:
命名空間中。
除了下列預先定義的屬性之外,Amazon Lex 還為簡訊平台提供預先定義的屬性。如需該些屬性的清單,請參閱在簡訊平台上部署 Amazon Lex 機器人。
設定回應類型
如果您有兩個具有不同功能的用戶端應用程式,可能需要限制回應中的訊息格式。例如,您可能想要將傳送到 Web 用戶端的訊息限制為純文字,但是讓行動用戶端可以同時使用純文字和語音合成標記語言 (SSML)。若要設定 PostContent 和 PostText 操作傳回的訊息格式,請使用 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
標頭傳送。
如果您在請求屬性中傳送二進位或結構化資料,必須先將資料轉換為簡單的字串。如需詳細資訊,請參閱設定複雜屬性。