Amazon Lex V2 を使用している場合は、代わりに Amazon Lex V2 ガイドを参照してください。
Amazon Lex V1 を使用している場合は、ボットを Amazon Lex V2 にアップグレードすることをお勧めします。V1 には新機能を追加されませんので、すべての新しいボットには V2 を使用することを強くお勧めします。
翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。
演習 2: 新しい発話を追加する (AWS CLI)
ユーザーからのリクエストを認識するために Amazon Lex が使用する機械学習モデルを向上するには、別のサンプル発話をボットに追加します。
新しい発話を追加するには 4 つのステップを使用します。
この演習のコマンドを実行するには、コマンドが実行されるリージョンを確認しておく必要があります。リージョンのリストについては、「 モデル構築のクォータ 」を参照してください。
GetIntent
オペレーションからのレスポンスには、インテントの特定のリビジョンを識別する checksum
というフィールドが含まれています。PutIntent オペレーションを使用してインテントを更新するときに、このチェックサムの値を指定する必要があります。指定しないと、次のエラーメッセージが表示されます。
An error occurred (PreconditionFailedException) when calling the PutIntent operation: Intentintent name
already exists. If you are trying to updateintent name
you must specify the checksum.
注記
次の AWS CLI の例は、Unix、Linux、および macOS 用にフォーマットされています。Windows の場合は、"\$LATEST"
を $LATEST
に変更し、各行末のバックスラッシュ (\) 連結文字をキャレット (^) に置き換えてください。
OrderFlowers
インテントを更新するには (AWS CLI)
-
AWS CLI で、Amazon Lex からインテントを取得します。Amazon Lex は
OrderFlowers-V2.json.
というファイルにこの出力を送信します。aws lex-models get-intent \ --region
region
\ --name OrderFlowers \ --intent-version "\$LATEST" > OrderFlowers-V2.json -
テキストエディタで
OrderFlowers-V2.json
を開きます。-
createdDate
、lastUpdatedDate
、version
の各フィールドを見つけて削除します。 -
sampleUtterances
フィールドに以下を追加します。I want to order flowers
-
ファイルを保存します。
-
-
次のコマンドを使用して、更新したインテントを Amazon Lex に送信します。
aws lex-models put-intent \ --region
region
\ --name OrderFlowers \ --cli-input-json file://OrderFlowers-V2.jsonAmazon Lex から次のレスポンスが送信されます。
{ "confirmationPrompt": { "maxAttempts": 2, "messages": [ { "content": "Okay, your {FlowerType} will be ready for pickup by {PickupTime} on {PickupDate}. Does this sound okay?", "contentType": "PlainText" } ] }, "name": "OrderFlowers", "checksum": "
checksum
", "version": "$LATEST", "rejectionStatement": { "messages": [ { "content": "Okay, I will not place your order.", "contentType": "PlainText" } ] }, "createdDate":timestamp
, "lastUpdatedDate":timestamp
, "sampleUtterances": [ "I would like to pick up flowers", "I would like to order some flowers", "I want to order flowers" ], "slots": [ { "slotType": "AMAZON.TIME", "name": "PickupTime", "slotConstraint": "Required", "valueElicitationPrompt": { "maxAttempts": 2, "messages": [ { "content": "Pick up the {FlowerType} at what time on {PickupDate}?", "contentType": "PlainText" } ] }, "priority": 3, "description": "The time to pick up the flowers" }, { "slotType": "FlowerTypes", "name": "FlowerType", "slotConstraint": "Required", "valueElicitationPrompt": { "maxAttempts": 2, "messages": [ { "content": "What type of flowers would you like to order?", "contentType": "PlainText" } ] }, "priority": 1, "slotTypeVersion": "$LATEST", "sampleUtterances": [ "I would like to order {FlowerType}" ], "description": "The type of flowers to pick up" }, { "slotType": "AMAZON.DATE", "name": "PickupDate", "slotConstraint": "Required", "valueElicitationPrompt": { "maxAttempts": 2, "messages": [ { "content": "What day do you want the {FlowerType} to be picked up?", "contentType": "PlainText" } ] }, "priority": 2, "description": "The date to pick up the flowers" } ], "fulfillmentActivity": { "type": "ReturnIntent" }, "description": "Intent to order a bouquet of flowers for pick up" }
インテントを更新したので、このインテントを使用するすべてのボットを再構築します。
OrderFlowersBot
ボットを再構築するには (AWS CLI)
-
AWS CLI で次のコマンドを使用し、
OrderFlowersBot
ボットの定義を取得してファイルに保存します。aws lex-models get-bot \ --region
region
\ --name OrderFlowersBot \ --version-or-alias "\$LATEST" > OrderFlowersBot-V2.json -
テキストエディタで
OrderFlowersBot-V2.json
を開きます。createdDate
、lastUpdatedDate
、status
、version
の各フィールドを削除します。 -
テキストエディタで、ボットの定義に次の行を追加します。
"processBehavior": "BUILD",
-
AWS CLI で次のコマンドを実行し、ボットの新しいリビジョンを構築します。
aws lex-models put-bot \ --region
region
\ --name OrderFlowersBot \ --cli-input-json file://OrderFlowersBot-V2.jsonサーバーからのレスポンスは次のとおりです。
{ "status": "BUILDING", "intents": [ { "intentVersion": "$LATEST", "intentName": "OrderFlowers" } ], "name": "OrderFlowersBot", "locale": "en-US", "checksum": "
checksum
", "abortStatement": { "messages": [ { "content": "Sorry, I'm not able to assist at this time", "contentType": "PlainText" } ] }, "version": "$LATEST", "lastUpdatedDate":timestamp
, "createdDate":timestamp
"clarificationPrompt": { "maxAttempts": 2, "messages": [ { "content": "I didn't understand you, what would you like to do?", "contentType": "PlainText" } ] }, "voiceId": "Salli", "childDirected": false, "idleSessionTTLInSeconds": 600, "description": "Bot to order flowers on the behalf of a user" }
次のステップ
演習 3: Lambda 関数を追加する (AWS CLI)