スロットは、ユーザーの意図を理解するのに役立つ発話からの特定の情報です。 たとえば、発話を考えてみましょう。 「2部屋予約したい。」 この発話により、ボットは特定の情報またはスロットを特定できます。 の部屋が必要です。

ボットはスロットを識別した後、スロットをスロット タイプにマップします。 スロット タイプは、ボットが識別されたスロットで利用可能な情報を処理する方法を定義します。 各スロットをスロット タイプにマップします。 スロット タイプは、発話でスロットを検索する際にボットが探す情報を定義するのに役立ちます。 スロットタイプには少なくとも1つの値を含める必要があります。

前の発話では、スロットは「rooms needed」であり、スロットは数字スロットタイプにマッピングされる。 この記事はGenesys Dialog Engine Bot FlowsとGenesys Digital Bot Flowsに関するものですが、このビデオはGenesys Dialog Engine Bot Flowsでスロットとスロットタイプがどのように機能するかを説明しています:

グローバルスロットの可用性

管理者やコンタクトセンター管理者は、どのような意図からも、どのようなスロットにもアクセスすることができます。 スロットは特定のインテントに縛られないため、複数のインテントにアクセスすることが可能です。 この機能強化により、効率が向上し、ボットフローを構築するための労力が軽減されます。

どのインテントからでもどのスロットにもアクセスできます。 スロットは、特定の意図に縛られることはありません。 複数のインテントからスロットにアクセスできるため、ボットフローの構築の効率化と手間の軽減が図れます。 たとえば、以前は、CheckAccountインテントとCloseAccountインテントから顧客のアカウント番号を参照する場合、各インテント内にアカウントスロットを作成する必要がありました。 意図せずにスロットを使用することもできます。 この機能は、セルフサービスのボットで本人確認や検証を行う必要がある場合に有効です。 たとえば、顧客の意図を尋ねる前に、顧客のアカウント番号とPINを事前に尋ねることができます。

また、グローバルスロットの利用開始前にスロットを作成した場合、名前を共有する既存のスロットが統合され、ユニークで参照しやすくなります。

スロット タイプ

アーキテクト ボットは、組み込みスロットとカスタム スロットの 2 つのスロット タイプをサポートします。

スロットのサポート性

スロットを扱う際には、以下のような対応能力を考慮してください。

  • スロットタイプ: 1フローあたり500枚まで
  • 単一のスロットタイプに関連するスロット(エンティティ): 1フローあたり最大10個まで
  • リストスロットタイプ: 1フローあたり最大50個まで
  • Regex スロットタイプ: 1フローあたり20個まで

内蔵スロット

Natural Language Understanding メニューからスロットを作成するときに、組み込みのスロット タイプを使用してスロットを作成できます。

Architect には、デフォルトで次の内蔵スロット タイプが含まれています。

NLUスロットタイプ アーキテクトのデータ型 ユーザー入力の例 解決されたフォーマットの例 メモ  
builtin:amountOfMoney: 通貨  「$ 30.23」または「40ドル」

30.23 | USD
40.00 | USD

  • 通貨を示す単語を数値の金額に変換します。
ビルドイン:日付: 日付 「6月15日」または「次の火曜日」

2021-06-15

  • ボットフローに日付値を渡したり、ボットフローから日付値を渡したりするときは、値を拡張ISO-8601形式の文字列として渡すようにしてください。 たとえば、2021-02-16。
builtin:数値: 10 進数  「23」または「スリーポイントファイブ」

23.0

3.5
  • 数字の単語(「5」)を数字(「5」など)に変換します。
  • この機能は現在、序数(1番目、2番目など)をサポートしていません。
ビルドイン:時間[ビルドイン:タイム] 時間 「午後3時」または「午後3時30分」

15:00:00.000

15:30:00.000

  • 時間(「午前4時」、「午後2時」)を示す単語を時間値(「04:00」、「14:00」)に変換します。
builtin:any 文字列  "ストラトキャスター"

ストラトキャスター

  • 特定の正規表現パターンにマッチしないユーザー入力をスロット値としてキャプチャします。
  • Ask for Slot actions と共に使用します。 Ask for Intent アクションの間、スロットを埋めない.
  • インテントや発話マッピングの検出には使用できません。 NO_HINT 構文を顧客に提供しない。
  • 数字や一文字を正確に識別できるようにする(「Stratocaster」の「o」は文字であり、「0」ではありません)。

詳細については、次を参照してください。 ボット フローで組み込みのスロット タイプを使用する.

カスタムスロット

カスタム スロット タイプでは、スロット タイプを定義し、スロットのマップに使用できます。 例えば、旅行ボットの都市を表すロケーションスロットを作成することができます。 カスタムスロットタイプを定義し、そのロケーションスロットを使って、発話中のロケーションをマッピングすることができます。

Architect は、次の 3 つのカスタム スロット タイプをサポートしています。

  • リスト タイプ
  • 動的リストタイプ
  • 正規表現(regex)タイプ
 メモ:   正規表現で自然言語理解(NLU)を使用する場合、NLUの設定が結果に影響する可能性があります。

スロット タイプを一覧表示

カスタム スロット タイプのデータが発話内の事前定義された単語のセットである場合 (場所の名前など)、リスト スロット タイプを使用します。 リスト スロット タイプは、ボットがスロットをキャプチャするために認識しなければならない一連の単語を定義するのに役立ちます。 

また、1 つのスロット タイプの同義語を追加して、Architect が同じスロットの複数の単語やフレーズを認識できるようにすることもできます。 たとえば、New Yorkのスロット タイプ値には、同義語を次のように指定できます。 ビッグアップルまたはニューヨーク。 これらの同義語により、ユーザーが NYC と言った場合、ニューヨークにマップされることをボットが理解できるようになります。

詳細については、次を参照してください。 ボット フローでカスタム リスト スロット タイプを使用する.

ダイナミック リスト スロット タイプ

ボット フローの作成時に許可されるスロット値がわからない場合は、ボット フローで動的リストを構成します。 次に、データ アクションまたは別のソースを使用して、ボットの会話中に値を取得し、文字列コレクション変数に格納します。  

ダイナミックリストは、ボットがスロットタイプに対して多くの値を含み、Genesys Dialog Engine Bot FlowsまたはGenesys Digital Bot Flows内でそれらを手動で個別に設定したくない場合に便利です。 このダイナミックリストは、スロットの値がユーザーごとに変動するような場合にも有効です。

詳細については、次を参照してください。 ボット フローでカスタム動的リスト スロット タイプを使用する.

    正規表現(regexまたはregexp)スロット タイプ

    正規表現 (regex または regexp) を使用して、特定の文字シーケンスに一致する発話内のパターンを識別できます。 ボットが発話内の複雑なコンテンツを識別する必要がある場合は、正規表現パターンがスロット タイプの定義に役立ちます。 たとえば、旅行ボットのフライト コードを照合する場合は、キャンセルを処理するためにフライト番号を知っている必要があります。 正規表現パターン ^[A-Z]{2}\d{3,4}$ は、このパターンにフライト番号として一致する発話内の任意のフレーズに一致します。 詳細については、次を参照してください。 ボット フローでカスタム正規表現スロット タイプを使用する と 正規表現言語のクイック リファレンス.

     メモ:   正規表現で自然言語理解(NLU)を使用する場合、NLUの設定が結果に影響する可能性があります。

    [スロット]メニューからボットフローにスロットを追加します

    ボットフローにスロットを追加するには、次の手順に従います。

    1. 自然言語理解で、 スロットをクリックします。
    2. スロットを追加をクリックします。
    3. スロットに意味のある名前を付けます。
    4. スロットタイプ、スロットとスロットタイプを並行して作成するには、使用可能なスロットタイプの1つを選択します。
      • 既存。 既存のカスタムスロットタイプまたは組み込みスロットタイプが含まれます。
      • 新しいリスト。 リストスロットタイプは、リスト内のアイテムと一致します。
      • 新しい正規表現。 RexExスロットタイプは文字のシーケンスと一致します。
      • 新しいダイナミック。 動的スロットタイプは構成可能です。
    5. [既存]を選択した場合は、 選択する 既存のカスタムスロットタイプまたは組み込みスロットタイプを選択します。
    6. New List、New RegEx、またはNew Dynamicを選択した場合は、スロットタイプ名を入力します。 
    7. 保存するをクリックします。

    アーキテクトは、新しいスロットが作成されたことを確認するメッセージを返します。新しいリスト、新しい正規表現、および新しい動的の場合は、スロットタイプが作成されたことを確認します。

    この例では、ボット作成者はドラムキットメーカーのスロットとスロットタイプを追加したい。

    1. 自然言語理解で、 スロットをクリックします。
    2. スロットを追加をクリックします。
    3. スロット名はDrumKit
    4. スロットタイプ、[新しいリスト]を選択します。
    5. スロットタイプに名前を付けます メーカー。 
    6. 保存するをクリックします。

    画像をクリックして拡大します。

    パラレルスロットの追加

    アーキテクトはスロットとスロットタイプを作成し、スロット 'DrumKit' とスロットタイプ 'Manufacturer' が作成されたことを示すメッセージを返します。

    画像をクリックして拡大します。

    パラレルスロットとスロットタイプの作成

    これで、スロットタイプの値をスロットタイプに追加できます。

     メモ:   対応言語のスロットタイプを追加する方法については、フローで対応言語のインテントにスロットタイプと発話を追加する を参照してください。

    1. 自然言語理解、 クリック スロットタイプ
    2. クリック メーカー スロットタイプ。
    3. Slot Type Value」の下に「 」と入力し、「Yamaha」と入力してEnterキーを押します。
    4. 追加したいドラムキットメーカーごとにステップ4を繰り返します。

    画像をクリックして拡大します。

    スロット タイプ

    これで、スロットを発話にマッピングできます。 

     メモ:   対応言語の発話を追加する方法については、フローで対応言語のインテントにスロットタイプと発話を追加する を参照してください。

    発話にスロットをマップするには、次の手順に従います。

    1. 自然言語の理解で、インテントをクリックします。
    2. インテントページから、「ボルボを購入」というインテントを追加します。
    3. 新しいインテントをクリックします。 発話ページが開きます。
    4. 発話、「ボルボ」という用語をクリックします。 [スロットの選択]リストが表示されます。
    5. Select Slot リストから、Drums を選びます。

    スロットは発話に正常にマッピングされます。

    地図の発話