

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

# コンポジットスロットタイプ
<a name="composite-slots"></a>

複合スロットは、2 つ以上のスロットを組み合わせたもので、1 回のユーザー入力で複数の情報をキャプチャします。たとえば、「都市と都道府県または郵便番号」をリクエストすることで位置情報を誘発するようにボットを設定できます。これとは対照的に、会話が別々のスロットタイプを使用するように設定されていると、会話がぎこちなくなります (「都市は何ですか?」の次に「郵便番号は何ですか?」)。複合スロットでは、1 つのスロットからすべての情報を取り込むことができます。複合スロットは、都市、州、郵便番号などのサブスロットと呼ばれるスロットを組み合わせたものです。

使用可能な Amazon Lex スロットタイプ (組み込み) と独自のスロット (カスタムスロット) を組み合わせて使用できます。必要なサブスロット内の情報をキャプチャする論理式を設計できます。例: 市区町村と都道府県、郵便番号。

複合スロットタイプは en-US でのみ使用できます。

**複合スロットタイプの作成**

複合スロット内のサブスロットを使用するには、まず複合スロットタイプを設定する必要があります。そのためには、スロットタイプの追加コンソールステップまたは API オペレーションを使用します。複合スロットタイプの名前と説明を選択したら、サブスロットの情報を入力する必要があります。スロットタイプの追加についての詳細は、「[スロットタイプの追加](add-slot-types.md)」を参照してください。

**サブスロット**

複合スロットタイプでは、サブスロットと呼ばれる基礎となるスロットの設定が必要です。1 回のリクエストで顧客から複数の情報を誘発したい場合は、サブスロットを組み合わせて設定してください。例: 市区町村と都道府県、郵便番号。コンポジットスロットには最大 6 個のサブスロットを追加できます。

単一スロットタイプのスロットを使用して、複合スロットタイプにサブスロットを追加できます。ただし、複合スロットタイプをサブスロットのスロットタイプとして使用することはできません。

以下の画像は、次のサブスロットを組み合わせた複合スロット「Car」を示しています: Color、FuelType、Manufacturer、Model、VIN、および Year。

![\[スロットタイプパネルにはサブスロットが表示されます。\]](http://docs.aws.amazon.com/ja_jp/lexv2/latest/dg/images/cst-slottype.png)


![\[サブスロットパネル。\]](http://docs.aws.amazon.com/ja_jp/lexv2/latest/dg/images/cst-subslots.png)


**式ビルダー**

コンポジットスロットの処理を促進するには、オプションで式ビルダーを使用できます。式ビルダーを使用すると、必要なサブスロット値を目的の順序でキャプチャする論理スロット式を設計できます。ブール式の一部として、AND や OR などの演算子を使用できます。設計された式に基づいて、必要なサブスロットが満たされると、複合スロットは満たされたと見なされます。

**複合スロットタイプの使用**

インテントによっては、1 つのスロットの一部としてキャプチャしたい場合があります。たとえば、車両メンテナンススケジュールボットなら、次のような発話のインテントを持っていることがあります。

`My car is a {car}`

このインテントは、\$1car\$1 複合スロットに車の詳細を含むスロットのリストが含まれていることを想定しています。たとえば、「2021 年式ホワイトトヨタカムリ」などです。

複合スロットは複数値スロットとは異なります。複合スロットは複数のスロットで構成され、それぞれに独自の値があります。一方、複数値スロットは値のリストを格納できる単一のスロットです。複数値スロットの詳細については、「[スロットで複数の値を使用する](multi-valued-slots.md)」を参照してください。

複合スロットの場合、Amazon Lex は、`RecognizeText` または `RecognizeUtterance` オペレーションへの応答で各サブスロットの値を返します。以下は、発話で返されるスロット情報です。「『2021 年式ホワイトトヨタカムリ』のサービス予約を CarService ボットから入れたいと思っています。」

```
"slots": {
    "CarType": {
        "value": {
            "originalValue": "White Toyota Camry 2021",
            "interpretedValue": "White Toyota Camry 2021",
            "resolvedValues": [
                "white Toyota Camry 2021"
            ]
        },
        "subSlots": {
            "Color": {
                "value": {
                    "originalValue": "White",
                    "interpretedValue": "White",
                    "resolvedValues": [
                        "white"
                    ]
                },
                "shape": "Scalar"
            },
            "Manufacturer": {
                "value": {
                    "originalValue": "Toyota",
                    "interpretedValue": "Toyota",
                    "resolvedValues": [
                        "Toyota"
                    ]
                },
                "shape": "Scalar"
            },
            "Model": {
                "value": {
                    "originalValue": "Camry",
                    "interpretedValue": "Camry",
                    "resolvedValues": [
                       "Camry"
                    ]
                },
                "shape": "Scalar"
            },
            "Year": {
                "value": {
                    "originalValue": "2021",
                    "interpretedValue": "2021",
                    "resolvedValues": [
                        "2021"
                    ]
                },
                "shape": "Scalar"
            }
        }
    },
    ...
}
```

複合スロットは、会話の最初のターン、または N 番目のターンで誘発します。入力された値に基づいて、複合スロットは残りの必要なサブスロットを誘発することができます。

複合スロットは常に各サブスロットの値を返します。発話に特定のサブスロットの認識可能な値が含まれていない場合、その特定のサブスロットに対する応答は返されません。

複合スロットは、テキスト入力と音声入力の両方で動作します。

インテントにスロットを追加する場合、複合スロットはカスタムスロットタイプとしてのみ使用できます。

プロンプトでは複合スロットを使用できます。たとえば、インテントの確認プロンプトを次のように設定します。

`Would you like me to schedule service for your 2021 White Toyota Camry?`

Amazon Lex がユーザーにプロンプトを送信すると、「2021 年式ホワイトトヨタカムリのサービス予約を入れますか?」と送信されます。

各サブスロットはスロットとして設定されます。スロットプロンプトを追加して、サブスロットとサンプル発話を誘発することができます。デフォルト値だけでなく、サブスロットの待機と続行も有効にできます。詳細については、[Lex V2 ボットのインテントでのデフォルトスロット値の使用](context-mgmt-default.md)を参照してください。

![\[複合スロット設定パネル\]](http://docs.aws.amazon.com/ja_jp/lexv2/latest/dg/images/cst-composite.png)


スロット難読化を使用すると、会話ログの複合スロット全体をマスクすることができます。スロットの難読化は複合スロットレベルで適用され、有効にすると複合スロットに属するサブスロットの値が難読化されることに注意してください。スロット値を難読化すると、各スロット値の値がスロットの名前に置き換えられます。詳細については、「[Lex V2 の会話ログでスロット値を隠す](monitoring-obfuscate.md)」を参照してください。

![\[複合スロット情報パネル\]](http://docs.aws.amazon.com/ja_jp/lexv2/latest/dg/images/cst-slotinfo.png)


**複合スロットタイプの編集**

複合スロット構成内からサブスロットを編集して、サブスロット名とスロットタイプを変更できます。ただし、インテントが複合スロットを使用している場合は、サブスロットを変更する前にインテントを編集する必要があります。

![\[既存のインテントのアラートパネル\]](http://docs.aws.amazon.com/ja_jp/lexv2/latest/dg/images/cst-alert.png)


**複合スロットタイプの削除**

複合スロット構成内からサブスロットを削除できます。サブスロットがインテント内で使用されている場合でも、そのサブスロットはそのインテントから削除されることに注意してください。

![\[サブスロットを含むインテントを削除する\]](http://docs.aws.amazon.com/ja_jp/lexv2/latest/dg/images/cst-delete.png)


式ビルダーのスロット式は、削除されたサブスロットについて通知するアラートを表示します。

![\[既存のインテントのスロットタイプ\]](http://docs.aws.amazon.com/ja_jp/lexv2/latest/dg/images/cst-slottype.png)
