PutIntent - Amazon Lex V1

支援終止通知:在 2025 年 9 月 15 日, AWS 將停止對 Amazon Lex V1 的支援。2025 年 9 月 15 日之後,您將無法再存取 Amazon Lex V1 主控台或 Amazon Lex V1 資源。如果您使用的是 Amazon Lex V2,請改參閱 Amazon Lex V2 指南

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

PutIntent

建立意圖或取代現有的意圖。

若要定義使用者和機器人之間的互動,您可以使用一或多個意圖。例如,對於披薩訂購機器人,您可以建立OrderPizza意圖。

若要建立意圖或取代現有的意圖,您必須提供下列項目:

  • 意圖名稱。例如:OrderPizza

  • 範例表達用語。例如,「我可以訂購披薩,請。」 和「我想要訂購比薩。」

  • 要收集的資訊。您可以為機器人向使用者請求的資訊指定槽類型。您可以指定標準槽類型,例如日期或時間,或自訂槽類型,例如比薩的大小和地殼。

  • 如何實現意圖。您可以提供 Lambda 函數或設定意圖,將意圖資訊傳回至用戶端應用程式。如果您使用 Lambda 函數,當所有意圖資訊都可用時,Amazon Lex 會叫用您的 Lambda 函數。如果您將意圖設定為將意圖資訊傳回至用戶端應用程式。

您可以在請求中指定其他選用資訊,例如:

  • 確認提示,要求使用者確認意圖。例如,「Shall I order your披薩?」

  • 滿足意圖後傳送給使用者的結論陳述式。例如,「我下了您的比薩訂單。」

  • 後續提示,要求使用者進行其他活動。例如,詢問「是否要使用披薩來訂購飲料?」

如果您指定現有的意圖名稱來更新意圖,Amazon Lex 會將意圖$LATEST版本中的值取代為請求中的值。Amazon Lex 會移除您在請求中未提供的欄位。如果您未指定必要欄位,Amazon Lex 會擲回例外狀況。當您更新意圖$LATEST版本時,任何使用意圖$LATEST版本之機器人status的欄位都會設定為 NOT_BUILT

如需詳細資訊,請參閱Amazon Lex:運作方式

這項操作需要 lex:PutIntent 動作的許可。

請求語法

PUT /intents/name/versions/$LATEST HTTP/1.1 Content-type: application/json { "checksum": "string", "conclusionStatement": { "messages": [ { "content": "string", "contentType": "string", "groupNumber": number } ], "responseCard": "string" }, "confirmationPrompt": { "maxAttempts": number, "messages": [ { "content": "string", "contentType": "string", "groupNumber": number } ], "responseCard": "string" }, "createVersion": boolean, "description": "string", "dialogCodeHook": { "messageVersion": "string", "uri": "string" }, "followUpPrompt": { "prompt": { "maxAttempts": number, "messages": [ { "content": "string", "contentType": "string", "groupNumber": number } ], "responseCard": "string" }, "rejectionStatement": { "messages": [ { "content": "string", "contentType": "string", "groupNumber": number } ], "responseCard": "string" } }, "fulfillmentActivity": { "codeHook": { "messageVersion": "string", "uri": "string" }, "type": "string" }, "inputContexts": [ { "name": "string" } ], "kendraConfiguration": { "kendraIndex": "string", "queryFilterString": "string", "role": "string" }, "outputContexts": [ { "name": "string", "timeToLiveInSeconds": number, "turnsToLive": number } ], "parentIntentSignature": "string", "rejectionStatement": { "messages": [ { "content": "string", "contentType": "string", "groupNumber": number } ], "responseCard": "string" }, "sampleUtterances": [ "string" ], "slots": [ { "defaultValueSpec": { "defaultValueList": [ { "defaultValue": "string" } ] }, "description": "string", "name": "string", "obfuscationSetting": "string", "priority": number, "responseCard": "string", "sampleUtterances": [ "string" ], "slotConstraint": "string", "slotType": "string", "slotTypeVersion": "string", "valueElicitationPrompt": { "maxAttempts": number, "messages": [ { "content": "string", "contentType": "string", "groupNumber": number } ], "responseCard": "string" } } ] }

URI 請求參數

請求會使用下列 URI 參數。

name

意圖的名稱。名稱區分大小寫。

名稱無法比對內建意圖名稱,或內建意圖名稱與 "AMAZON"。已移除。例如,由於有名為 的內建意圖AMAZON.HelpIntent,因此您無法建立名為 的自訂意圖HelpIntent

如需內建意圖清單,請參閱 Alexa Skills Kit 中的標準內建意圖

長度限制:長度下限為 1。長度上限為 100。

模式:^([A-Za-z]_?)+$

必要:是

請求主體

請求接受採用 JSON 格式的下列資料。

checksum

識別 $LATEST版本的特定修訂。

當您建立新的意圖時,請將checksum欄位保留空白。如果您指定檢查總和,您會收到BadRequestException例外狀況。

當您想要更新意圖時,請將 checksum 欄位設定為最新版本的檢查總和$LATEST。如果您未指定 checksum 欄位,或者檢查總和與$LATEST版本不相符,則會收到PreconditionFailedException例外狀況。

類型:字串

必要:否

conclusionStatement

您希望 Amazon Lex 在 Lambda 函數成功滿足意圖之後,將 傳送給使用者的陳述式。

只有在您在 中提供 Lambda 函數時,此元素才相關fulfillmentActivity。如果您將意圖傳回用戶端應用程式,則無法指定此元素。

注意

followUpPromptconclusionStatement是互斥的。您只能指定一個。

類型:Statement 物件

必要:否

confirmationPrompt

提示使用者確認意圖。這個問題應該有「是」或「否」的答案。

Amazon Lex 使用此提示來確保使用者確認意圖已準備好履行。例如,使用 OrderPizza意圖,您可能想要先確認順序是否正確,再放置。對於其他意圖,例如僅回應使用者問題的意圖,您可能不需要在提供資訊之前要求使用者確認。

注意

您必須同時提供 rejectionStatementconfirmationPrompt,或兩者皆不提供。

類型:Prompt 物件

必要:否

createVersion

當設定為true新的編號版本的意圖時,即會建立。這與呼叫 CreateIntentVersion操作相同。如果您未指定 createVersion,則預設為 false

類型:布林值

必要:否

description

意圖的描述。

類型:字串

長度限制:長度下限為 0。長度上限為 200。

必要:否

dialogCodeHook

指定要為每個使用者輸入調用的 Lambda 函數。您可以叫用此 Lambda 函數來個人化使用者互動。

例如,假設您的機器人判斷使用者是 John。您的 Lambda 函數可能會從後端資料庫擷取 John 的資訊,並預先填入一些值。例如,如果您發現 John 不耐受膠體,您可以將對應的意圖槽 GlutenIntolerant設為 true。您可能會找到 John 的電話號碼,並設定對應的工作階段屬性。

類型:CodeHook 物件

必要:否

followUpPrompt

Amazon Lex 會使用此提示在滿足意圖之後請求其他活動。例如,在滿足OrderPizza意圖之後,您可能會提示使用者訂購飲料。

Amazon Lex 採取的動作取決於使用者的回應,如下所示:

  • 如果使用者說「是」,則會使用為機器人設定的釐清提示來回應。

  • 如果使用者說「是」,且繼續表達觸發意圖的表達式,則會開始針對意圖的對話。

  • 如果使用者說「否」,則會回應為後續提示設定的拒絕陳述式。

  • 如果無法辨識表達式,則會再次重複後續提示。

followUpPrompt 欄位和 conclusionStatement 欄位是互斥的。您只能指定一個。

類型:FollowUpPrompt 物件

必要:否

fulfillmentActivity

必要。描述如何實現意圖。例如,在使用者提供披薩訂單的所有資訊後, 會fulfillmentActivity定義機器人如何向本機披薩存放區下訂單。

您可以設定 Amazon Lex 將所有意圖資訊傳回至用戶端應用程式,或指示它叫用可處理意圖的 Lambda 函數 (例如,使用披薩下訂單)。

類型:FulfillmentActivity 物件

必要:否

inputContexts

物件陣列InputContext,列出 Amazon Lex 在與使用者對話時必須處於作用中狀態的情境,以選擇意圖。

類型:InputContext 物件陣列

陣列成員:項目數下限為 0。項目數上限為 5。

必要:否

kendraConfiguration

使用 AMAZON.KendraSearchIntent 意圖連線到 Amazon Kendra 索引所需的組態資訊。如需詳細資訊,請參閱 AMAZON.KendraSearchIntent

類型:KendraConfiguration 物件

必要:否

outputContexts

物件陣列OutputContext,列出意圖在滿足意圖時啟用的內容。

類型:OutputContext 物件陣列

陣列成員:項目數下限為 0。項目數上限為 10。

必要:否

parentIntentSignature

要作為此意圖基礎的內建意圖的唯一識別碼。若要尋找意圖的簽章,請參閱 Alexa Skills Kit 中的標準內建意圖

類型:字串

必要:否

rejectionStatement

當使用者對 中定義的問題回答「否」時confirmationPrompt,Amazon Lex 會回應此陳述式,以確認意圖已取消。

注意

您必須同時提供 rejectionStatementconfirmationPrompt,或兩者皆不提供。

類型:Statement 物件

必要:否

sampleUtterances

使用者可能表示表示意圖的表達用語 (字串) 陣列。例如,「我想要 {PizzaSize} 比薩」、「訂單 {Quantity} {PizzaSize} 比薩」。

在每個表達式中,槽名稱是以大括號括住。

類型:字串陣列

陣列成員:項目數下限為 0。最多 1500 個項目。

長度限制:長度下限為 1。長度上限為 200。

必要:否

slots

意圖槽陣列。在執行時間,Amazon Lex 會使用槽中定義的提示,從使用者取得所需的槽值。如需詳細資訊,請參閱Amazon Lex:運作方式

類型:Slot 物件陣列

陣列成員:項目數下限為 0。項目數上限為 100。

必要:否

回應語法

HTTP/1.1 200 Content-type: application/json { "checksum": "string", "conclusionStatement": { "messages": [ { "content": "string", "contentType": "string", "groupNumber": number } ], "responseCard": "string" }, "confirmationPrompt": { "maxAttempts": number, "messages": [ { "content": "string", "contentType": "string", "groupNumber": number } ], "responseCard": "string" }, "createdDate": number, "createVersion": boolean, "description": "string", "dialogCodeHook": { "messageVersion": "string", "uri": "string" }, "followUpPrompt": { "prompt": { "maxAttempts": number, "messages": [ { "content": "string", "contentType": "string", "groupNumber": number } ], "responseCard": "string" }, "rejectionStatement": { "messages": [ { "content": "string", "contentType": "string", "groupNumber": number } ], "responseCard": "string" } }, "fulfillmentActivity": { "codeHook": { "messageVersion": "string", "uri": "string" }, "type": "string" }, "inputContexts": [ { "name": "string" } ], "kendraConfiguration": { "kendraIndex": "string", "queryFilterString": "string", "role": "string" }, "lastUpdatedDate": number, "name": "string", "outputContexts": [ { "name": "string", "timeToLiveInSeconds": number, "turnsToLive": number } ], "parentIntentSignature": "string", "rejectionStatement": { "messages": [ { "content": "string", "contentType": "string", "groupNumber": number } ], "responseCard": "string" }, "sampleUtterances": [ "string" ], "slots": [ { "defaultValueSpec": { "defaultValueList": [ { "defaultValue": "string" } ] }, "description": "string", "name": "string", "obfuscationSetting": "string", "priority": number, "responseCard": "string", "sampleUtterances": [ "string" ], "slotConstraint": "string", "slotType": "string", "slotTypeVersion": "string", "valueElicitationPrompt": { "maxAttempts": number, "messages": [ { "content": "string", "contentType": "string", "groupNumber": number } ], "responseCard": "string" } } ], "version": "string" }

回應元素

如果動作成功,則服務傳回 HTTP 200 回應。

服務會傳回下列 JSON 格式的資料。

checksum

已建立或更新的意圖$LATEST版本總和檢查碼。

類型:字串

conclusionStatement

fulfillmentActivity意圖中指定的 Lambda 函數滿足意圖之後,Amazon Lex 會將此陳述式傳遞給使用者。

類型:Statement 物件

confirmationPrompt

如果在意圖中定義,Amazon Lex 會提示使用者先確認意圖,再履行意圖。

類型:Prompt 物件

createdDate

建立意圖的日期。

類型:Timestamp

createVersion

True 如果建立了新版本的意圖。如果請求中未指定 createVersion 欄位,則回應中的 createVersion 欄位會設為 false。

類型:布林值

description

意圖的描述。

類型:字串

長度限制:長度下限為 0。長度上限為 200。

dialogCodeHook

如果在意圖中定義,Amazon Lex 會為每個使用者輸入調用此 Lambda 函數。

類型:CodeHook 物件

followUpPrompt

如果在意圖中定義,Amazon Lex 會使用此提示,在意圖實現之後請求額外的使用者活動。

類型:FollowUpPrompt 物件

fulfillmentActivity

如果在意圖中定義,Amazon Lex 會在使用者提供意圖所需的所有資訊後調用此 Lambda 函數以滿足意圖。

類型:FulfillmentActivity 物件

inputContexts

物件陣列InputContext,列出 Amazon Lex 在與使用者對話時必須處於作用中狀態的情境,以選擇意圖。

類型:InputContext 物件陣列

陣列成員:項目數下限為 0。項目數上限為 5。

kendraConfiguration

若有組態資訊,則需要連線至 Amazon Kendra 索引並使用AMAZON.KendraSearchIntent意圖。

類型:KendraConfiguration 物件

lastUpdatedDate

意圖更新的日期。當您建立資源時,建立日期和上次更新日期相同。

類型:Timestamp

name

意圖的名稱。

類型:字串

長度限制:長度下限為 1。長度上限為 100。

模式:^([A-Za-z]_?)+$

outputContexts

物件陣列OutputContext,列出意圖在滿足意圖時啟用的內容。

類型:OutputContext 物件陣列

陣列成員:項目數下限為 0。項目數上限為 10。

parentIntentSignature

此意圖根據的內建意圖的唯一識別符。

類型:字串

rejectionStatement

如果使用者對 Amazon Lex confirmationPrompt 中定義的問題回答「否」,則會回應此陳述式以確認意圖已取消。

類型:Statement 物件

sampleUtterances

為意圖設定的範例表達式陣列。

類型:字串陣列

陣列成員:項目數下限為 0。最多 1500 個項目。

長度限制:長度下限為 1。長度上限為 200。

slots

為意圖設定的意圖插槽陣列。

類型:Slot 物件陣列

陣列成員:項目數下限為 0。項目數上限為 100。

version

意圖的版本。對於新意圖,版本一律為 $LATEST

類型:字串

長度限制:長度下限為 1。長度上限為 64。

模式:\$LATEST|[0-9]+

錯誤

BadRequestException

請求格式不正確。例如,值無效或缺少必要欄位。請檢查欄位值,然後再試一次。

HTTP 狀態碼:400

ConflictException

處理請求時出現衝突。請再次嘗試您的請求。

HTTP 狀態碼:409

InternalFailureException

發生內部 Amazon Lex 錯誤。請再次嘗試您的請求。

HTTP 狀態碼:500

LimitExceededException

請求超過限制。請再次嘗試您的請求。

HTTP 狀態碼:429

PreconditionFailedException

您嘗試變更的資源檢查總和與請求中的檢查總和不相符。請檢查資源的檢查總和,然後再試一次。

HTTP 狀態碼:412

另請參閱

如需在其中一種語言特定 AWS SDKs中使用此 API 的詳細資訊,請參閱下列內容: