PutIntent - Amazon Lex V1

Amazon Lex V2 を使用している場合は、代わりに Amazon Lex V2 ガイドを参照してください。

 

Amazon Lex V1 を使用している場合は、ボットを Amazon Lex V2 にアップグレードすることをお勧めします。V1 には新機能を追加されませんので、すべての新しいボットには V2 を使用することを強くお勧めします。

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

PutIntent

インテントを作成するか、既存のインテントを置き換えます。

ユーザーとボットのインタラクションを定義するには、1 つ以上のインテントを使用します。例えば、ピザを注文するボットの場合、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」「Standard Built-in Intents」を参照してください。

長さの制限:最小長は 1 です。最大長は 100 です。

パターン: ^([A-Za-z]_?)+$

必須: はい

リクエストボディ

リクエストは以下の JSON 形式のデータを受け入れます。

checksum

$LATEST バージョンの特定のリビジョンを識別します。

新しいインテントを作成する場合は、checksum フィールドを空白にします。チェックサムを指定した場合、BadRequestException の例外が発生します。

インテントを更新する場合は、checksum フィールドに $LATEST バージョンの最新リビジョンのチェックサムを設定します。 checksum フィールドを指定しない場合や、チェックサムが $LATEST バージョンと一致しない場合は、PreconditionFailedException 例外が発生します。

タイプ: 文字列

必須: いいえ

conclusionStatement

インテントが Lambda 関数によって正常に達成された後に、Amazon Lex がユーザーに伝えるステートメントです。

この要素は、fulfillmentActivity で Lambda 関数を提供する場合にのみ関係します。インテントをクライアントアプリケーションに返す場合は、この要素を指定することはできません。

注記

followUpPrompt および conclusionStatement は相互に排他的です。指定できる値は 1 つだけです。

型: 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 フィールドは相互に独立しています。指定できる値は 1 つだけです。

型: FollowUpPrompt オブジェクト

必須: いいえ

fulfillmentActivity

必須。インテントがどのように達成されるのかを説明します。例えば、ユーザーがピザを注文するためのすべての情報を提供した後、fulfillmentActivity はボットが地元のピザ店に注文する方法を定義します。

Amazon Lex がすべてのインテント情報をクライアントアプリケーションに返すように設定したり、インテントを処理する Lambda 関数を呼び出すように指示したりすることができます (例えば、ピザ屋に注文を出すなど)。

型: FulfillmentActivity オブジェクト

必須: いいえ

inputContexts

Amazon Lex がユーザーとの会話の中でインテントを選択するためのアクティブなコンテキストをリストアップした InputContext オブジェクトの配列です。

型: InputContext オブジェクトの配列

配列メンバー:最小数は 0 項目です。最大数は 5 項目です。

必須: いいえ

kendraConfiguration

AMAZON.KendraSearchIntent インテントを使って Amazon Kendra のインデックスに接続するために必要な設定情報です。詳細については、「AMAZON」を参照してください。 KendraSearchIntent

タイプ:KendraConfiguration オブジェクト

必須: いいえ

outputContexts

OutputContext オブジェクトの配列で、インテントが達成されたときにアクティブになるコンテキストを列挙します。

型: OutputContext オブジェクトの配列

の配列メンバー: 最小数は 0 項目です。最大数は 10 項目です。

必須: いいえ

parentIntentSignature

このインテントの基礎となる組み込みインテントの一意の識別子です。インテントの署名を見つけるには、「Alexa Skills Kit」「Standard Built-in Intents」(標準の組み込みインテント) を参照してください。

タイプ: 文字列

必須: いいえ

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

fulfillmentActivity のインテントで指定された Lambda 関数がインテントを達成すると、Amazon Lex はこのステートメントをユーザーに伝えます。

型: Statement オブジェクト

confirmationPrompt

これがインテントに定義されている場合、Amazon Lex インテントを達成する前に、ユーザーにインテントの確認を促します。

型: Prompt オブジェクト

createdDate

インテントが作成された日付。

型: タイムスタンプ

createVersion

新しいバージョンのインテントが作成された場合の True。リクエストで createVersion フィールドが指定されていない場合は、レスポンスで createVersion フィールドが false に設定されます。

型: ブール値

description

インテントの説明。

型: 文字列

長さの制限: 最小長は 0 です。最大長は 200 です。

dialogCodeHook

これがインテントに定義されている場合、Amazon Lex は各ユーザー入力に対してこの Lambda 関数を呼び出します。

型: CodeHook オブジェクト

followUpPrompt

これがインテントに定義されている場合、Amazon Lex はこのプロンプトを使用して、インテントが達成された後に追加のユーザーアクティビティを要求します。

型: FollowUpPrompt オブジェクト

fulfillmentActivity

これがインテントに定義されている場合、Amazon Lex はこの Lambda 関数を呼び出し、インテントを達成するために、インテントをユーザーがインテントに要求します。

型: FulfillmentActivity オブジェクト

inputContexts

Amazon Lex がユーザーとの会話の中でインテントを選択するためのアクティブなコンテキストをリストアップした InputContext オブジェクトの配列です。

型: InputContext オブジェクトの配列

配列メンバー:最小数は 0 項目です。最大数は 5 項目です。

kendraConfiguration

Amazon Kendra インデックスに接続し、AMAZON.KendraSearchIntent インテントを使用するために必要な設定情報 (項目がある場合)。

型: KendraConfiguration オブジェクト

lastUpdatedDate

インテントが更新された日付。リソースを作成する場合、作成日と最終更新日は同じ日付になります。

型: タイムスタンプ

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

その他の参照資料

この API を言語固有の AWS SDK で使用する方法について詳しくは、以下を参照してください。