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
のインテントでは、注文する前に正しいかどうかを確認したいと思うかもしれません。ユーザーの質問に単純に応答するインテントなど、情報提供前のユーザー確認が必要のない場合もあります。注記
rejectionStatement
とconfirmationPrompt
の両方を提供するか、両方とも提供しません。型: 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 は、インテントがキャンセルされたことをこのステートメントの応答で確認します。注記
rejectionStatement
とconfirmationPrompt
の両方を提供するか、両方とも提供しません。型: 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 で使用する方法について詳しくは、以下を参照してください。