

支援終止通知：2025 年 9 月 15 日， AWS 將停止對 Amazon Lex V1 的支援。2025 年 9 月 15 日之後，您將無法再存取 Amazon Lex V1 主控台或 Amazon Lex V1 資源。如果您使用的是 Amazon Lex V2，請改參閱 [Amazon Lex V2 指南](https://docs.aws.amazon.com/lexv2/latest/dg/what-is.html)。

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

# PostText
<a name="API_runtime_PostText"></a>

將使用者輸入傳送至 Amazon Lex。用戶端應用程式可以使用此 API 在執行時間將請求傳送至 Amazon Lex。然後，Amazon Lex 會使用為機器人建置的機器學習模型來解譯使用者輸入。

 為了回應，Amazon Lex 會傳回下一個 `message`，以向使用者傳遞`responseCard`要顯示的選用 。請考慮下列範例訊息：
+  對於使用者輸入「我想要比薩」，Amazon Lex 可能會傳回包含訊息引出槽資料的回應 （例如 PizzaSize)：「您想要什麼大小的比薩？」 
+  使用者提供所有比薩訂單資訊後，Amazon Lex 可能會傳回包含訊息的回應，以取得使用者確認「使用比薩訂單繼續？」。
+  使用者回覆「是」的確認提示後，Amazon Lex 可能會傳回結論陳述式：「感謝您，您的起司比薩已訂購。」 

 並非所有 Amazon Lex 訊息都需要使用者回應。例如，結論陳述式不需要回應。有些訊息只需要「是」或「否」使用者回應。除了 之外`message`，Amazon Lex 還提供回應中訊息的其他內容，例如，用於增強用戶端行為，以顯示適當的用戶端使用者介面。這些是回應中的 `slotToElicit`、`intentName`、 `dialogState`和 `slots` 欄位。請考量下列範例：
+ 如果訊息是要引出槽資料，Amazon Lex 會傳回下列內容資訊：
  +  `dialogState` 設定為 ElicitSlot 
  +  `intentName` 設定為目前內容中的意圖名稱 
  +  `slotToElicit` 設定為 `message` 為其引出資訊的槽名稱 
  +  `slots` 設定為針對意圖設定的插槽映射，具有目前已知值 
+  如果訊息是確認提示，`dialogState`則 設定為 ConfirmIntent，而 `SlotToElicit` 設定為 null。
+ 如果訊息是釐清提示 （針對意圖設定），指出不了解使用者意圖，`dialogState`則 會設定為 ElicitIntent，並將 `slotToElicit` 設定為 null。

 此外，Amazon Lex 也會傳回應用程式特定的 `sessionAttributes`。如需詳細資訊，請參閱[管理對話內容](https://docs.aws.amazon.com/lex/latest/dg/context-mgmt.html)。

## 請求語法
<a name="API_runtime_PostText_RequestSyntax"></a>

```
POST /bot/botName/alias/botAlias/user/userId/text HTTP/1.1
Content-type: application/json

{
   "activeContexts": [ 
      { 
         "name": "string",
         "parameters": { 
            "string" : "string" 
         },
         "timeToLive": { 
            "timeToLiveInSeconds": number,
            "turnsToLive": number
         }
      }
   ],
   "inputText": "string",
   "requestAttributes": { 
      "string" : "string" 
   },
   "sessionAttributes": { 
      "string" : "string" 
   }
}
```

## URI 請求參數
<a name="API_runtime_PostText_RequestParameters"></a>

請求會使用下列 URI 參數。

 ** [botAlias](#API_runtime_PostText_RequestSyntax) **   <a name="lex-runtime_PostText-request-uri-botAlias"></a>
Amazon Lex 機器人的別名。  
必要：是

 ** [botName](#API_runtime_PostText_RequestSyntax) **   <a name="lex-runtime_PostText-request-uri-botName"></a>
Amazon Lex 機器人的名稱。  
必要：是

 ** [userId](#API_runtime_PostText_RequestSyntax) **   <a name="lex-runtime_PostText-request-uri-userId"></a>
用戶端應用程式使用者的 ID。Amazon Lex 使用此項目來識別使用者與您的機器人的對話。在執行時間，每個請求必須包含 `userID` 欄位。  
若要決定應用程式要使用的使用者 ID，請考慮下列因素。  
+ `userID` 欄位不得包含使用者的任何個人身分識別資訊，例如姓名、個人身分證號碼或其他最終使用者個人資訊。
+ 如果您希望使用者在一個裝置上開始對話，並在另一個裝置上繼續對話，請使用使用者特定的識別符。
+ 如果您希望相同的使用者能夠在兩個不同的裝置上進行兩個獨立的對話，請選擇裝置特定的識別符。
+ 使用者無法使用相同機器人的兩個不同版本進行兩個獨立對話。例如，使用者無法與相同機器人的 PROD 和 BETA 版本進行對話。如果您預期使用者需要與兩個不同的版本進行對話，例如在測試時，請在使用者 ID 中包含機器人別名，以分隔兩個對話。
長度限制：長度下限為 2。長度上限為 100。  
模式：`[0-9a-zA-Z._:-]+`  
必要：是

## 請求主體
<a name="API_runtime_PostText_RequestBody"></a>

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

 ** [activeContexts](#API_runtime_PostText_RequestSyntax) **   <a name="lex-runtime_PostText-request-activeContexts"></a>
用於請求的作用中內容清單。在滿足先前的意圖時，或藉由在請求中包含內容，即可啟用內容。  
如果您未指定內容清單，Amazon Lex 將使用工作階段的目前內容清單。如果您指定空白清單，工作階段的所有內容都會清除。  
類型：[ActiveContext](API_runtime_ActiveContext.md) 物件陣列  
陣列成員：項目數下限為 0。項目數上限為 20。  
必要：否

 ** [inputText](#API_runtime_PostText_RequestSyntax) **   <a name="lex-runtime_PostText-request-inputText"></a>
使用者輸入的文字 (Amazon Lex 解譯此文字）。  
當您使用 AWS CLI 時，您無法在 `--input-text` 參數中傳遞 URL。改用 `--cli-input-json` 參數傳遞 URL。  
類型：字串  
長度限制：長度下限為 1。長度上限為 1024。  
必要：是

 ** [requestAttributes](#API_runtime_PostText_RequestSyntax) **   <a name="lex-runtime_PostText-request-requestAttributes"></a>
Amazon Lex 與用戶端應用程式之間傳遞的請求特定資訊。  
命名空間`x-amz-lex:`會保留給特殊屬性。請勿建立任何字首為 的請求屬性`x-amz-lex:`。  
如需詳細資訊，請參閱[設定請求屬性](https://docs.aws.amazon.com/lex/latest/dg/context-mgmt.html#context-mgmt-request-attribs)。  
類型：字串到字串映射  
必要：否

 ** [sessionAttributes](#API_runtime_PostText_RequestSyntax) **   <a name="lex-runtime_PostText-request-sessionAttributes"></a>
Amazon Lex 與用戶端應用程式之間傳遞的應用程式特定資訊。  
如需詳細資訊，請參閱[設定工作階段屬性](https://docs.aws.amazon.com/lex/latest/dg/context-mgmt.html#context-mgmt-session-attribs)。  
類型：字串到字串映射  
必要：否

## 回應語法
<a name="API_runtime_PostText_ResponseSyntax"></a>

```
HTTP/1.1 200
Content-type: application/json

{
   "activeContexts": [ 
      { 
         "name": "string",
         "parameters": { 
            "string" : "string" 
         },
         "timeToLive": { 
            "timeToLiveInSeconds": number,
            "turnsToLive": number
         }
      }
   ],
   "alternativeIntents": [ 
      { 
         "intentName": "string",
         "nluIntentConfidence": { 
            "score": number
         },
         "slots": { 
            "string" : "string" 
         }
      }
   ],
   "botVersion": "string",
   "dialogState": "string",
   "intentName": "string",
   "message": "string",
   "messageFormat": "string",
   "nluIntentConfidence": { 
      "score": number
   },
   "responseCard": { 
      "contentType": "string",
      "genericAttachments": [ 
         { 
            "attachmentLinkUrl": "string",
            "buttons": [ 
               { 
                  "text": "string",
                  "value": "string"
               }
            ],
            "imageUrl": "string",
            "subTitle": "string",
            "title": "string"
         }
      ],
      "version": "string"
   },
   "sentimentResponse": { 
      "sentimentLabel": "string",
      "sentimentScore": "string"
   },
   "sessionAttributes": { 
      "string" : "string" 
   },
   "sessionId": "string",
   "slots": { 
      "string" : "string" 
   },
   "slotToElicit": "string"
}
```

## 回應元素
<a name="API_runtime_PostText_ResponseElements"></a>

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

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

 ** [activeContexts](#API_runtime_PostText_ResponseSyntax) **   <a name="lex-runtime_PostText-response-activeContexts"></a>
工作階段的作用中內容清單。滿足意圖或呼叫 `PostContent`、 或 `PutSession`操作時`PostText`，可以設定內容。  
您可以使用內容來控制可追蹤意圖的意圖，或修改應用程式的操作。  
類型：[ActiveContext](API_runtime_ActiveContext.md) 物件陣列  
陣列成員：項目數下限為 0。項目數上限為 20。

 ** [alternativeIntents](#API_runtime_PostText_ResponseSyntax) **   <a name="lex-runtime_PostText-response-alternativeIntents"></a>
一到四個可能適用於使用者意圖的替代意圖。  
每個替代方案都包含一個分數，指出 Amazon Lex 對意圖符合使用者意圖的可信度。意圖會依可信度分數排序。  
類型：[PredictedIntent](API_runtime_PredictedIntent.md) 物件陣列  
陣列成員：最多 4 個項目。

 ** [botVersion](#API_runtime_PostText_ResponseSyntax) **   <a name="lex-runtime_PostText-response-botVersion"></a>
回應對話的機器人版本。您可以使用此資訊來協助判斷某個版本的機器人效能是否優於另一個版本。  
類型：字串  
長度限制：長度下限為 1。長度上限為 64。  
模式：`[0-9]+|\$LATEST`

 ** [dialogState](#API_runtime_PostText_ResponseSyntax) **   <a name="lex-runtime_PostText-response-dialogState"></a>
 識別使用者互動的目前狀態。Amazon Lex 會將下列其中一個值傳回為 `dialogState`。用戶端可以選擇性地使用此資訊來自訂使用者介面。  
+  `ElicitIntent` - Amazon Lex 想要引發使用者意圖。

  例如，使用者可能會說出意圖 (「我想要訂購比薩」)。如果 Amazon Lex 無法從此表達式推斷使用者意圖，則會傳回此 dialogState。
+  `ConfirmIntent` - Amazon Lex 預期收到「是」或「否」回應。

   例如，Amazon Lex 想要在滿足意圖之前確認使用者。

  使用者可能會回應其他資訊，而不是簡單的「是」或「否」。例如，「是的，但將其製作成厚皮比薩」或「否，我想要訂購飲料」。Amazon Lex 可以處理這類額外資訊 （在這些範例中，更新結構類型槽值，或將意圖從 OrderPizza 變更為 OrderDrink)。
+  `ElicitSlot` - Amazon Lex 預期目前意圖的槽值。

  例如，假設 Amazon Lex 在回應中傳送此訊息：「您想要什麼大小的比薩？」。使用者可能會以槽值 （例如 "medium") 回覆。使用者也可能在回應中提供其他資訊 （例如，「中厚餅皮比薩」)。Amazon Lex 可以適當地處理這類額外資訊。
+  `Fulfilled` - 傳達為意圖設定的 Lambda 函數已成功滿足意圖。
+  `ReadyForFulfillment` - 傳達用戶端必須滿足意圖。
+  `Failed` - 傳達與使用者的對話失敗。

   這可能有多種原因，包括使用者未針對來自 服務的提示提供適當的回應 （您可以設定 Amazon Lex 可提示使用者提供特定資訊的次數），或 Lambda 函數無法滿足意圖。
類型：字串  
有效值:`ElicitIntent | ConfirmIntent | ElicitSlot | Fulfilled | ReadyForFulfillment | Failed` 

 ** [intentName](#API_runtime_PostText_ResponseSyntax) **   <a name="lex-runtime_PostText-response-intentName"></a>
Amazon Lex 目前知道的使用者意圖。  
類型：字串

 ** [message](#API_runtime_PostText_ResponseSyntax) **   <a name="lex-runtime_PostText-response-message"></a>
要傳達給使用者的訊息。訊息可能來自機器人的組態或 Lambda 函數。  
如果意圖未使用 Lambda 函數設定，或 Lambda 函數傳回`Delegate`做為`dialogAction.type`其回應，Amazon Lex 會決定下一個動作過程，並根據目前的互動內容從機器人的組態中選取適當的訊息。例如，如果 Amazon Lex 無法了解使用者輸入，則會使用釐清提示訊息。  
建立意圖時，您可以將訊息指派給群組。當訊息指派給群組時，Amazon Lex 會從回應中的每個群組傳回一則訊息。訊息欄位是包含訊息的逸出 JSON 字串。如需傳回之 JSON 字串結構的詳細資訊，請參閱 [支援的訊息格式](howitworks-manage-prompts.md#msg-prompts-formats)。  
如果 Lambda 函數傳回訊息，Amazon Lex 會在回應中將其傳遞給用戶端。  
類型：字串  
長度限制：長度下限為 1。長度上限為 1024。

 ** [messageFormat](#API_runtime_PostText_ResponseSyntax) **   <a name="lex-runtime_PostText-response-messageFormat"></a>
回應訊息的格式。下列其中一值：  
+  `PlainText` - 訊息包含純 UTF-8 文字。
+  `CustomPayload` - 訊息是由 Lambda 函數定義的自訂格式。
+  `SSML` - 訊息包含語音輸出的文字格式。
+  `Composite` - 訊息包含逸出的 JSON 物件，其中包含訊息在建立意圖時指派給群組的一或多個訊息。
類型：字串  
有效值:`PlainText | CustomPayload | SSML | Composite` 

 ** [nluIntentConfidence](#API_runtime_PostText_ResponseSyntax) **   <a name="lex-runtime_PostText-response-nluIntentConfidence"></a>
提供分數，指出 Amazon Lex 對傳回意圖是符合使用者意圖的意圖的可信度。分數介於 0.0 和 1.0 之間。如需詳細資訊，請參閱[可信度分數](https://docs.aws.amazon.com/lex/latest/dg/confidence-scores.html)。  
分數是相對分數，而不是絕對分數。分數可能會根據 Amazon Lex 的改進而變更。  
類型：[IntentConfidence](API_runtime_IntentConfidence.md) 物件

 ** [responseCard](#API_runtime_PostText_ResponseSyntax) **   <a name="lex-runtime_PostText-response-responseCard"></a>
代表使用者必須回應目前提示的選項。回應卡可以來自機器人組態 （在 Amazon Lex 主控台中，選擇槽旁的設定按鈕） 或程式碼掛勾 (Lambda 函數）。  
類型：[ResponseCard](API_runtime_ResponseCard.md) 物件

 ** [sentimentResponse](#API_runtime_PostText_ResponseSyntax) **   <a name="lex-runtime_PostText-response-sentimentResponse"></a>
以 和表達用語表示的情緒。  
當機器人設定為將表達用語傳送至 Amazon Comprehend 進行情緒分析時，此欄位會包含分析結果。  
類型：[SentimentResponse](API_runtime_SentimentResponse.md) 物件

 ** [sessionAttributes](#API_runtime_PostText_ResponseSyntax) **   <a name="lex-runtime_PostText-response-sessionAttributes"></a>
代表工作階段特定內容資訊的鍵值對映射。  
類型：字串到字串映射

 ** [sessionId](#API_runtime_PostText_ResponseSyntax) **   <a name="lex-runtime_PostText-response-sessionId"></a>
工作階段的唯一識別碼。  
類型：字串

 ** [slots](#API_runtime_PostText_ResponseSyntax) **   <a name="lex-runtime_PostText-response-slots"></a>
 Amazon Lex 從對話中的使用者輸入偵測到的意圖槽。  
Amazon Lex 會建立解析度清單，其中包含槽的可能值。傳回的值取決於建立或更新槽類型時`valueSelectionStrategy`選取的 。如果 `valueSelectionStrategy` 設定為 `ORIGINAL_VALUE`，則會傳回使用者提供的值，如果使用者值與槽值類似。如果 `valueSelectionStrategy` 設定為 `TOP_RESOLUTION` Amazon Lex，則會傳回解析清單中的第一個值，或者如果沒有解析清單，則為 null。如果您未指定 `valueSelectionStrategy`，則預設值為 `ORIGINAL_VALUE`。  
類型：字串到字串映射

 ** [slotToElicit](#API_runtime_PostText_ResponseSyntax) **   <a name="lex-runtime_PostText-response-slotToElicit"></a>
如果`dialogState`值為 `ElicitSlot`， 會傳回 Amazon Lex 為其引出值的槽名稱。  
類型：字串

## 錯誤
<a name="API_runtime_PostText_Errors"></a>

 ** BadGatewayException **   
Amazon Lex 機器人仍在建置中，或其中一個相依服務 (Amazon Polly、AWS Lambda) 失敗並發生內部服務錯誤。  
HTTP 狀態碼：502

 ** BadRequestException **   
 請求驗證失敗、內容中沒有可用的訊息，或機器人建置失敗、仍在進行中，或包含未建置的變更。  
HTTP 狀態碼：400

 ** ConflictException **   
 兩個用戶端使用相同的 AWS 帳戶、Amazon Lex 機器人和使用者 ID。  
HTTP 狀態碼：409

 ** DependencyFailedException **   
 AWS Lambda 或 Amazon Polly 等其中一個相依性擲出例外狀況。例如   
+ 如果 Amazon Lex 沒有足夠的許可來呼叫 Lambda 函數。
+ 如果 Lambda 函數需要超過 30 秒才能執行。
+ 如果履行 Lambda 函數傳回`Delegate`對話方塊動作，而不移除任何槽值。
HTTP 狀態碼：424

 ** InternalFailureException **   
內部服務錯誤。重試 呼叫。  
HTTP 狀態碼：500

 ** LimitExceededException **   
超過限制。  
HTTP 狀態碼：429

 ** LoopDetectedException **   
不會使用此例外狀況。  
HTTP 狀態碼：508

 ** NotFoundException **   
找不到參考的資源 （例如 Amazon Lex 機器人或別名）。  
HTTP 狀態碼：404

## 另請參閱
<a name="API_runtime_PostText_SeeAlso"></a>

如需在其中一種語言特定 AWS SDKs中使用此 API 的詳細資訊，請參閱下列內容：
+  [AWS 命令列界面 V2](https://docs.aws.amazon.com/goto/cli2/runtime.lex-2016-11-28/PostText) 
+  [AWS 適用於 .NET V4 的 SDK](https://docs.aws.amazon.com/goto/DotNetSDKV4/runtime.lex-2016-11-28/PostText) 
+  [AWS 適用於 C\$1\$1 的 SDK](https://docs.aws.amazon.com/goto/SdkForCpp/runtime.lex-2016-11-28/PostText) 
+  [AWS 適用於 Go 的 SDK v2](https://docs.aws.amazon.com/goto/SdkForGoV2/runtime.lex-2016-11-28/PostText) 
+  [AWS 適用於 Java V2 的 SDK](https://docs.aws.amazon.com/goto/SdkForJavaV2/runtime.lex-2016-11-28/PostText) 
+  [AWS 適用於 JavaScript V3 的 SDK](https://docs.aws.amazon.com/goto/SdkForJavaScriptV3/runtime.lex-2016-11-28/PostText) 
+  [AWS 適用於 Kotlin 的 SDK](https://docs.aws.amazon.com/goto/SdkForKotlin/runtime.lex-2016-11-28/PostText) 
+  [AWS 適用於 PHP V3 的 SDK](https://docs.aws.amazon.com/goto/SdkForPHPV3/runtime.lex-2016-11-28/PostText) 
+  [AWS 適用於 Python 的 SDK](https://docs.aws.amazon.com/goto/boto3/runtime.lex-2016-11-28/PostText) 
+  [AWS 適用於 Ruby V3 的 SDK](https://docs.aws.amazon.com/goto/SdkForRubyV3/runtime.lex-2016-11-28/PostText) 