ストーリーとルールでトレーニングする

ストーリー閉じた 意図と文脈に基づくインタラクション処理のためにボットをトレーニングする目的で使用されますルール閉じた 文脈に応じて変化しないメッセージに対するボットの応答を定義するために使用されます。は強力なトレーニングツールです。 エンティティやスロットの値に基づいて最適なレスポンスを選択する方法をボットに教えるために使用することができます。

エンティティに基づいてボットをトレーニングする

お客様のボットは、インテント閉じた コンタクトが発言または入力した内容の背後にある意味や目的。コンタクトが伝えたいことや達成したいこと。のバリエーションを認識できる必要があります。 インテントのバリエーションは、1つのインテントがコンタクト 閉じた コンタクトセンターでエージェント、IVR、またはボットとやり取りする人。が話す内容に対して一致の可能性を複数持つときに発生します。 例えば、残高_確認のインテントは、普通預金、当座預金、投資、ギフトカードなど、口座タイプに応じたバリエーションを持つ可能性があります。 インテントのバリエーションを認識するようにボットをトレーニングすることができます。 これにより、ボットはコンタクトのニーズにより具体的に対応できるようになります。 また、ボットがインテントの混乱を避けるのにも役立ちます。

コンタクトが彼らの残高を確認したいとき、彼らは「私は普通預金の残高が知りたい」または「当座預金残高を教えてもらえますか?」と言う可能性があります。 お客様のボットがすべての口座タイプに同じ応答をする場合は、これらのバリエーションでボットをトレーニングする必要はありません。 しかしながら、ボットが口座タイプに応じて異なるアクションを取る必要がある場合は、バリエーションについてトレーニングする必要があります。 たとえば、普通預金口座の残高を確認するにはコンタクトIDの検証が必要ですが、ギフトカードの残高を確認するには必要ありません。

インテントのバリエーションに関するトレーニングでは、ボットが取るパスを決定するエンティティを特定する必要があります。 口座残高の例では、エンティティはAccountTypeのような口座タイプを保持するものです。 エンティティは口座タイプを抽出し、対応するAccountTypeスロットに格納します。 ボットはスロットでの値を評価し、どのパスを取るかを決定します。

次のテーブルは、ストーリーでインテントのバリエーションを処理する1つのアプローチを示しています。 作成したいユースケースについて、同じようなテーブルを作成することが役に立つ場合があります。

インテント 詳細 ストーリー名 コンタクトメッセージの例
ベースラインストーリー これはエンティティのないストーリーです。 このストーリーのパスには、明確化を求めるボットも含まれます。 確認_残高 「口座の残高を確認したい。 」

ストーリー+[エンティティ]

コンテクストを提供するエンティティを含むベースラインストーリーのバージョン。

確認_残高+普通預金

確認_残高+当座預金

残高_確認+投資

確認_残高+ギフトカード

「普通預金口座の残高は?」

「当座預金口座の残高は?」

「投資口座の残高は?」

「ギフトカードの残高は?」

  1. CXoneで、アプリセレクターをクリックし、選択します:Bot Builder

  2. 作業したいボットをクリックします。
  3. まだ作成していない場合は、作業中のインテントのバリエーションに対応するエンティティを作成します。 適切な例を加えます。 例えば、AccountTypeエンティティでは、ボットがチェックできる口座タイプを追加します。
  4. ストーリー または ルールタブをクリックします。
  5. エンティティの作成時に自動的に作成されたスロット閉じた コンタクトのメッセージから抽出され、ボットの応答で使用するために保存されたエンティティ。 変数に似たもの。設定します。 スロットに以下の変更を加える:

    • タイプとしてのカテゴリーのを選択します。
    • インフルレンスダイアログを有効にします。
    • スロットが保持するを入力します。 これらは、ボットに認識させるためにトレーニングしているエンティティ値です。 AccountTypeスロットでは、値は当座預金、普通預金、ギフトカードになる可能性があります。

  6. ベースラインのストーリーやルールを作成したり、既存のストーリーやルールを修正します。 ベースラインのダイアログに取り組むとき:
    • ダイアログの名前は、そのダイアログが関連するインテントを伝えるものでなければならないが、バリエーション用のストーリーを作るときに追加できるくらい十分一般的なものにすることが推奨されます。 残高確認の例に従えば、確認_残高はベースラインストーリーにふさわしい名前です。 簡単に追加できます。
    • ストーリーを開始する
    • コンタクトメッセージ顔が中にある緑色の長方形。は、意図のトリガーとなる一般的な発話であることが推奨されますが、エンティティを特定するものではありません。 例えば、 「私の口座残高は?」
    • 予測されたインテントが正しいことを確認します。 そうでない場合は、さらにインテントの例を追加します。
    • ボットのレスポンスは、お客様のユースケースに適したものであることが推奨されます。 残高確認のユースケースでは、ボットは、「オーケー、どの口座を確認すればいいですか?」といったように、どのバージョンのインテントが欲しいかを明確にするためにコンタクトに尋ねます。 ボタンやクイック返信を含めることで、コンタクトにオプションの選択をプロンプトすることもできます。
  7. それぞれのバリエーションについて、ストーリーを作成するか、修正します。 それぞれのストーリーについて:
    • トレーニング対象のバリエーションを明確に特定するために名前をつけます。 例えば、 確認_残高+当座預金
    • 正しいインテントをトリガーする
    • コンタクトメッセージ を追加顔が中にある緑色の長方形。します。 メッセージには、バリエーションに一致するエンティティを含めることが推奨されます。 例えば、私の当座預金口座の残高が必要ですというメッセージには、accountTypeエンティティの例が含まれます。 矢印をクリックして三角形の矢印の先が右を向いているアイコン。にメッセージを送信しますが、確認はまだクリックしないでください。
    • 予測されたインテントが正しいことを確認します。 そうでない場合は、さらにインテントの例を追加します。
    • コンタクトメッセージのメッセージバブルで、エンティティをクリックし、エンティティのタイプとして[ルックアップ]3本の横線。または[RegEx(正規表現)]小さなドットと大きなアスタリスク(*)。のいずれかを選択します。 これにより、選択した値が入力されたメッセージに、選択したエンティティのスロットが追加されます。 値の入ったスロットは、ボットがこのストーリーのパスをたどるための条件として機能します。

    • このインテントのバリエーションに対して、コンタクトのニーズに対応できるようにボットのレスポンスを設計します。
  8. 変更が完了したら、トレーニングとステージをクリックしてボットモデル閉じた トレーニングされ、ステージングされたボットのバージョンを更新してこの変更をテストします。
  9. この一連のストーリーを、お客様のボットとチャットしてテストしてください。 テスト時には、ボットが適切に応答することを確認するために、可能性のある各パスについて少なくとも1つのテストを実行します。

  10. 必要に応じて、ボットのパフォーマンスを微調整するためにトレーニングストーリーを変更します。 さらにインテントの例またはエンティティの例を追加する必要がある場合があります。 変更が完了したら、トレーニングとステージをクリックしてボットモデル閉じた トレーニングされ、ステージングされたボットのバージョンを更新してこの変更をテストします。テストと調整を必要に応じた頻度で繰り返します。

スロット条件に基づいてボットをトレーニングします

スロット条件ボットアクションを使用すると、ようにボットをトレーニングすることができます このボットアクションをボットレスポンスに含めると、指定されたスロットの値が、ボットがどのパスを取るかを決定する条件となります。

ストーリー閉じた 意図と文脈に基づくインタラクション処理のためにボットをトレーニングする目的で使用されますまたはルール閉じた 文脈に応じて変化しないメッセージに対するボットの応答を定義するために使用されます。を、可能性のあるパスごとに作成し、範囲外のパスについても作成する必要があります。 例えば、スロットが持ちうる可能な値が3つある場合、それぞれにダイアログが必要になります。 また、期待している3つの値から外れた任意の値のために4つ目のダイアログも必要です。 すべてのダイアログは、同じインテント閉じた コンタクトが発言または入力した内容の背後にある意味や目的。コンタクトが伝えたいことや達成したいこと。を使用し、 スロット条件のボットアクションを持ち、これは各ダイアログの異なるスロットの値に設定されます。 スロット条件のボットアクションの後、ダイアログはパスバリエーションに特有のものに応じてすべて異なります。

ボットが条件付きダイアログのセットで十分にトレーニングされているとき、ボットは条件付きパスを持つインテントを識別したときに、どのパスを取るべきかを評価する必要があることを知っています。 スロットの現在値を比較し、一致する値を持つダイアログで定義されたパスを取ります。

スロット条件でのトレーニングは、エンティティでのトレーニングと同様の結果を達成します。 エンティティでのトレーニングでは、 エンティティベースのスロットを使用する必要があります。 しかしながら、スロットの条件を使用することで、他のソースからスロットをストーリーの条件として充填するスロットを使用することができます。

始める前に、次のテーブルを例に使用して、このスロット条件が作成する会話パスを計画します。 この例では、ボットがニュースレターを購読するかどうかをコンタクトに尋ねるときのストーリーを示しています。 コンタクトは「はい」か「いいえ」のどちらかを答え、ボットはそれに応じて応答します。

インテント 詳細 ストーリー名
ストーリー+[パス1] これは、可能なスロット値の一つを持つストーリーです。 サブスクライブ_はい

ストーリー+[パス2]

他の可能なレスポンスをカバーする最初のストーリーのバージョン。

サブスクライブ_いいえ

  1. CXoneで、アプリセレクターをクリックし、選択します:Bot Builder

  2. 作業したいボットをクリックします。
  3. 左側のアイコンメニューでダイアログ会話バブルのように見えるアイコン。をクリックします。
  4. ストーリータブをクリックします。

  5. まだ作成していない場合は、会話を分岐させるのに使用するスロットを作成してください。 スロットに対して以下の設定を行います:

    • タイプとしてのカテゴリーのを選択します。
    • インフルレンスダイアログを有効にします。
    • スロットが保持するを入力します。 これらは、ボットに認識させるためにトレーニングしているエンティティ値です。 
  6. 会話を分岐させるために作成する一連のストーリーの前に、会話中にスロットが適切に充填されていることを確認します。
  7. スロットの可能な値ごとにストーリーを作成します:
    • ストーリーの名前は2つのパートを持つことが推奨されます。 会話が分岐する時点での全体的なインテントを参照することが推奨されます。 第2のパートは、そのストーリーが扱う特定の分岐を示すことが推奨されます。

      例えば、コンタクトがニュースレターのサブスクライブを求められたときに会話が分岐する場合、ストーリー名はサブスクライブ+いいえおよびサブスクライブ+はいになります。

    • ストーリーを始める
    • コンタクトメッセージ顔が中にある緑色の長方形。は、すべてのバージョンのストーリーで同じである場合もあれば、異なる場合もあります。 必要なものは、それで作業している特定のユースケースによって異なります。
    • ボットのレスポンスには、スロット条件のボットアクションが含まれていることが推奨されます。 次のものでこのアクションを設定します:
      • このストーリーの分岐を決定するスロットを選択します。
      • このストーリーで説明されているパスをボットが進み続けるために、指定されたスロットが保持しなければならないを入力します。
  8. スロットのフィールドで設定された値以外の任意の値用に取られた範囲外のパスのストーリーを作成します:
    • その名前は、最初のストーリーで確立されたパターンに従いつつ、範囲外であることを明確にすることを確認します。 例えば、サブスクライブ+その他。
    • 一意のを入力してください。 2つのストーリーが同じ値を共有する場合、ボットはどちらのパスをたどればいいのかわかりません。
  9. 変更が完了したら、トレーニングとステージをクリックしてボットモデル閉じた トレーニングされ、ステージングされたボットのバージョンを更新してこの変更をテストします。
  10. お客様のボットに話しかけて、この一連のストーリーをテストします。 テスト時には、ボットが適切に応答することを確認するために、可能性のある各パスについて少なくとも1つのテストを実行します。

  11. 必要に応じて、ボットのパフォーマンスを微調整するためにトレーニングストーリーを変更します。 さらにインテントの例またはエンティティの例を追加する必要がある場合があります。 変更が完了したら、トレーニングとステージをクリックしてボットモデル閉じた トレーニングされ、ステージングされたボットのバージョンを更新してこの変更をテストします。テストと調整を必要に応じた頻度で繰り返します。

ルール条件に基づいてボットをトレーニングします

ルールに条件を指定することができます。 条件は、ボットが特定のルールを使用すべき時点を定義します。 これは、特定の状況下でボットのレスポンスを異なるものにしたい場合に便利です。 設定できる条件は以下に基づきます:

  • アクティブフォーム:ボットがルールを使用するためにアクティブでなければならない フォームを選択できます。
  • スロット値:1つまたは複数のスロットを選択し、それぞれに値を指定することができます。 定義されたスロットは、ボットがルールを使用するために指定したものと一致する値を保持する必要があります。

ルール条件を使用するとき:

  • 同じルールの中で、フォーム条件とスロット値条件を一緒に使うことができます。
  • 条件付きの単一ルールを持つことができます。 これは、1つの状況でボットにルールのインテントにだけ応答させたい場合に役立ちます。
  • 同じような条件で、異なる記載値を持つルールセットを持つことができます。 これは、スロットの値に基づいて、ボットにルールのインテントに異なる方法で応答させたい場合に役立ちます。

スロット値に基づくルール条件は、スロット条件ボットアクションと同一ではありません。 ルール条件は、ボットがルールに従う時点を定義します。 スロット条件ボットアクションは、ボットがルールを実行している間、会話を分岐させるための条件を定義します。

  1. CXoneで、アプリセレクターをクリックし、選択します:Bot Builder

  2. 作業したいボットをクリックします。
  3. まだ作成していない場合は、ルール条件として使用するフォームを作成してください。
  4. まだ作成していない場合は、ルール条件として使用するスロットを作成してください。 スロットに対して以下の設定を行います:

    • タイプとしてのカテゴリーのを選択します。
    • インフルレンスダイアログを有効にします。
    • スロットが保持するを入力します。 これらは、ボットに認識させるためにトレーニングしているエンティティ値です。 
  5. 左側のアイコンメニューでダイアログ会話バブルのように見えるアイコン。をクリックします。
  6. ルールタブをクリックします。

  7. 中央ペインの上部にある条件の追加をクリックします。
  8. アクティブフォームまたはスロット値のいずれかを選択し、表示されるオプションを設定します:
    • アクティブフォームフォームの選択のドロップダウンをクリックし、アクティブにするフォームを選択します。
    • スロット値スロットの選択のドロップダウンをクリックしてスロットを選択し、次いで右側の値フィールドに入力します。 これは、ボットがこのルールを使用するために、スロットが保持しなければならない値です。
  9. 必要に応じて条件をさらに追加します。 1つのルールでアクティブフォームの条件は1つだけですが、条件として複数のスロットを追加できます。
  10. コンタクトの発話とボットのレスポンスをルールに追加します
  11. 設定されたスロットが保持する可能性のある他の値に対してボットが異なる応答をするようにしたい場合は、異なる値で追加のルールを作成するためにこれらの手順を繰り返します。 追加ルールは、今作成したものと同一のインテントを持つことが推奨されます。
  12. どの条件も一致しないときにボットが従うデフォルトバージョンのルールが必要な場合は、同じインテントを持つが条件のないルールを作成します。
  13. 変更が完了したら、トレーニングとステージをクリックしてボットモデル閉じた トレーニングされ、ステージングされたボットのバージョンを更新してこの変更をテストします。
  14. お客様のボットに話しかけて、この一連のルールをテストします。 テスト時には、ボットが適切に応答することを確認するために、可能性のある各パスについて少なくとも1つのテストを実行します。

  15. 必要に応じて、ボットのパフォーマンスを微調整するためにトレーニングストーリーを変更します。 さらにインテントの例またはエンティティの例を追加する必要がある場合があります。 変更が完了したら、トレーニングとステージをクリックしてボットモデル閉じた トレーニングされ、ステージングされたボットのバージョンを更新してこの変更をテストします。テストと調整を必要に応じた頻度で繰り返します。