PutIntent - Amazon Lex V1

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

 

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

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

PutIntent

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

要定義用戶和您的機器人之間的交互,您可以使用一個或多個意圖。例如,對於比薩餅訂購機器人,您將創建一個OrderPizza意圖。

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

  • 意圖名稱。例如 OrderPizza

  • 語音樣本。例如,「我可以點披薩嗎?」 和「我想點披薩。」

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

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

您可以在請求中指定其他可選信息,例如:

  • 要求使用者確認意圖的確認提示。例如,「我可以點你的披薩嗎?」

  • 在意圖完成後發送給用戶的結論聲明。例如,「我下了你的披薩訂單。」

  • 後續提示,要求使用者進行其他活動。例如,詢問「您想用披薩點飲料嗎?」

如果您指定現有的意圖名稱來更新意圖,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 不耐受麩質,您可能會將對應的意圖槽設定為 true。GlutenIntolerant您可能會找到 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 技能套件的標準內建意圖。

類型:字串

必要:否

rejectionStatement

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

注意

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

類型:Statement 物件

必要:否

sampleUtterances

用戶可能會說用來表示意圖的語音(字符串)的數組。例如,「我想要 {PizzaSize} 比薩餅」,「訂購 {數量} {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

在意圖中指定的 Lambda 函數達成fulfillmentActivity意圖之後,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

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

類型: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 SDK 中使用此 API 的詳細資訊,請參閱下列內容: