Microsoft Copilot Studio コパイロットでエンティティとスロット フィリングを使用する

重要

Power Virtual Agents 機能は、生成 AI への多大な投資と Microsoft Copilot 全体の統合の強化により、現在 Microsoft Copilot Studio の一部となっています

ドキュメントやトレーニング コンテンツが更新される間、一部の記事やスクリーンショットで Power Virtual Agents が参照される場合があります。

Microsoft Copilot Studio でのコパイロットの会話の大部分は、AI がユーザーの意図を理解する能力の自然言語理解です。 たとえば、ユーザーが「ギフト カードを使用しようとしたが、機能しない」と言うと、自然言語理解が関与し、コパイロットは、その正確なフレーズがトリガー フレーズとしてリストされていない場合でも、ギフト カードが機能しないことに関連するトピックにユーザーをルーティングすることができます。

自然言語の理解の基本的な側面の 1 つに、ユーザーの対話の中でのエンティティの特定があります。 エンティティの使用については、ビデオをご覧ください。

エンティティは、電話番号、郵便番号、市町村、個人名など、特定のタイプの現実世界の項目を表す情報の単位と考えることができます。 エンティティによって付与された知識で、コパイロットはユーザー入力からの関連情報をスマートに認識し、後で使用するために保存できます。

事前構築済みエンティティ

コパイロットのエンティティを使用すると、同様のグループに情報を保存できます。

初期状態の Microsoft Copilot Studio には、年齢、色、数、名前など、実際のダイアログで最も一般的に使用されるステレオタイプ情報を表す、事前に作成されたエンティティのセットが付属しています。

エンティティによって付与された知識で、コパイロットはユーザー入力からの関連情報をスマートに認識し、後で使用するために保存できます。

その概念の理解を助けるために、お金エンティティを例として使用できます。

  1. Microsoft Copilot Studio のナビゲーション メニューで エンティティ を選択します。

    エンティティタブに移動します。

    使用可能な事前構築済みエンティティのリストが表示されます。

    エンティティ ウィンドウ。

  2. お金エンティティを選択します。エンティティの詳細ペインが開きます。

    お金エンティティの説明。

ここでは、このエンティティの説明と、ユーザー入力からお金や通貨に関連する情報を検索するために使用できる方法を確認できます。

たとえば、ユーザーが「1000 ドルかかる」と入力すると、このお金エンティティを使用して、コパイロットは「1000 ドル」が 金額型 の情報を表すことを認識します。 コパイロットがこのエンティティを抽出して変数に保存すると、周囲の情報がテキストであったとしても、「1000」が数値として保存されます。

ユーザー定義エンティティ

事前構築済みエンティティは一般的に使用される情報タイプをカバーしますが、特定の目的に役立つコパイロットを構築するときなど、場合によっては、コパイロットの言語理解モデルにドメイン固有の知識を教える必要があります。

たとえば、アウトドア ストア用のコパイロットを構築するとします。 この場合、ダイアログで「アウトドア用品」カテゴリを認識するようにコパイロットに教える必要があります。

実行するには、カスタム エンティティの作成が必要です。 この場合、コパイロットにすべてのアウトドア製品カテゴリの情報を提供するエンティティを作成できます。

  1. Microsoft Copilot Studio のナビゲーション メニューで エンティティ を選択します。

    エンティティ タブに移動して、新しいエンティティを作成します。

  2. メイン メニューで 新規エンティティ を選択します。

    新しいエンティティを選択します。

  3. これにより、エンティティ (閉じているリスト エンティティ または正規表現 (regex) エンティティ) のタイプを選択できるペインが開きます。

クローズド リスト エンティティ

クローズド リスト エンティティを使用すると、アイテムのリストを定義できます。 この機能は、管理が容易で、シンプルなアイテム ラベルを持つ小規模なリストに最適です。

クローズド リスト オプションが強調表示された、エンティティ作成ウィンドウのスクリーンショット。

エンティティの作成時にこのオプションを選択すると、エンティティの名前、オプションの説明を指定し、エンティティに含めるアイテムを入力できるペインが表示されます。

エンティティ リスト ペインのスクリーンショット。

アイテムを入力すると、次のことが可能となります:

  • 各アイテムを選択して名前を変更する。
  • ごみ箱アイコンを選択して、リストからアイテムを削除する。
  • + シノニム を選択 (または、リストされているシノニムがすでに追加されている場合はそのシノニムを選択) し、シノニムの編集ペインを開きます。

同義語を追加して、エンティティのリストの各項目の一致ロジックを手動で展開することができます。 たとえば、「ハイキング」の項目では、「トレッキング」と「登山」を同義語として追加できます。

シノニムの編集ペインのスクリーンショット。

エンティティごとにスマート マッチングを有効にすることもできます。

スマート マッチングは、コパイロットの言語理解モデルが対応するインテリジェンスの一部です。 このオプションを有効にすると、コパイロットは、エンティティ内のリストされた項目に基づいて、ファジー ロジックを使用してユーザーの入力を解釈します。

特に、コパイロットはスペルミスを自動修正し、マッチングのロジックを意味的に拡張します。 たとえば、コパイロットは「ソフトボール」を「野球」に自動的に一致させることができます。

スマート マッチング オプションのトグルのスクリーンショット。

エンティティの作成または編集が完了したら、保存を選択して保存し、エンティティの一覧に戻ります。 閉じるを選択すると、変更内容が破棄されます (誤って間違ったオプションを選択した場合には、エンティティの編集に戻るオプションが表示されます)。

正規表現 (regex) エンティティ

正規表現 (regex) エンティティを使用すると、入力から情報を照合および抽出するために使用できる論理パターンを定義できます。 regex エンティティは、ユーザーの入力に対して複雑なパターンのマッチングを行う場合や、ユーザーが会話の中でどのようなフォーマットや入力をするかの特定のバリエーションを許可する必要がある場合に最適です。

たとえば、正規表現エンティティを使用して、追跡 ID、ライセンス番号、クレジット カード番号、IP アドレスなどの項目を、ユーザーがコパイロットに入力した文字列から識別できます。

Regex オプションが強調表示された、エンティティ作成ウィンドウのスクリーンショット。

エンティティの作成時にこのオプションを選択すると、エンティティの名前、オプションの説明を指定し、入力のエンティティ アイテムと照合して抽出するために使用する正規表現パターンを入力できるペインが表示されます。

正規表現エンティティ ペインのスクリーンショット。

Microsoft Copilot Studio regex エンティティは .NET 正規表現構文を使用します。

既定では、パターン マッチは大文字と小文字を区別しますが、大文字と小文字を区別しないようにするには、パターン文字列に (?i) の正規表現オプションを使用します。 いくつかの基本的な例が正規表現エンティティ ペインに含まれています。構文に関する追加情報とその他の例は、正規表現言語 - クイック リファレンス トピックを参照してください。

正規表現に複数のパターンを対応させる必要がある場合は、正規表現の連結に交互演算子 | を使用できます。 たとえば、2 つの正規表現パターンを組み合わせて、製品 ID コードの新旧両方の形式を検索することができます。

エンティティの作成または編集が完了したら、保存を選択して保存し、エンティティの一覧に戻ります。 閉じるを選択すると、変更内容が破棄されます (誤って間違ったオプションを選択した場合には、エンティティの編集に戻るオプションが表示されます)。

会話でのエンティティの使用

これで、その製品カテゴリ エンティティと他のいくつかのカスタム エンティティを作成することで、コパイロットにアウトドア用品に関する知識を与える作業が完了したので、コパイロットの会話を構築するときにそれらの使用開始が可能です。

  1. 編集するコパイロット用の トピック ページ に移動します。

  2. エンティティを追加したいトピックのキャンバスの作成を開きます。

  3. ノードの追加 (+) を選択して、質問するを選択します。

    ノードの追加のスクリーンショット。

  4. 識別するの下で、カスタム エンティティ に作成したエンティティを選択します。

    エンティティの選択で質問ノード。

  5. オプションとして、アイテムを選択し、ボタンとして表示することもできます。 たとえば、ユーザーが入力として便利に選択できるボタンのようにいくつかのカテゴリを表示したい場合は、簡単にユーザー オプションの選択を選び、カスタム エンティティの作成時に追加した項目を含むリストからそれらを選択できます。

    条件ノードの追加。

    条件ノードの詳細。

  6. 必要に応じて、ユーザーの応答を出力する変数に名前を付けます。

スロット埋込み

スロット埋込み とは、自然言語理解の概念であり、抽出されたエンティティをオブジェクトに保存することを意味します。 ただし、Microsoft Copilot Studio では、スロット埋込みとは、抽出されたエンティティ値を変数に配置することを意味します。

テスト チャットで「何か購入したい」と入力するとトリガーされる例として、アウトドア用品のトピックを引き続き使用します。

トピックが正常にトリガーされ、コパイロットが製品カテゴリを要求し、質問する ノードの作成時に指定されたボタンの選択肢も表示します。 ダイアログ ツリーでは、トピック間の追跡は、編集したばかりの質問ノードに対して、コパイロットが実行されていることも示します。

トピック間の追跡。

ユーザーは、ボタンの 1 つを選択することにより、事前定義された選択肢を使用できます。 あるいは、これらの単語は同義語として定義されているため、「トレッキング」のような単語を入力して、「ハイキング」にマッピングされることも確認できます。

トピック間の追加の追跡。

トピック間のトレッキングで、ダイアログは製品カテゴリ値が「ハイキング」であるパスに正しくルーティングされていることを示しています。 作成キャンバスの下部の変数ウォッチ ウィンドウから、変数値を調べることができます。 ウォッチ ウィンドウで、変数値が「ハイキング」であることを示します。

基本的に、抽出されたエンティティ「ハイキング」を変数 VarProductCategory に挿入することにより、スロットが埋められます。

変数ウォッチ ウィンドウ。

また、ユーザーが複数のエンティティにマップする複数の情報を指定できる「プロアクティブ スロット フィル」と呼ばれるものを使用することもできます。 コパイロットは、どの情報がどのエンティティに属しているかを自動的に理解できます。 意図したマッピングが不明な場合は、選択肢を提供することで、ユーザーをより具体的にするよう求められます。

この例では、ユーザーが「トレッキング用品を買いたい」と入力しました。 これには、ユーザーが用具を購入したいというトリガー フレーズと、2 番目の情報 (実際の装備タイプ) の両方が含まれます。 この場合、コパイロットは用具の購入と用具のタイプの両方のエンティティを入力します。

複数の積極的なスロット充填。

トピック間の追跡では、コパイロットがこのユーザー入力を受け取り、製品カテゴリを求める質問ノードをインテリジェントにスキップすることがわかります。

コパイロットは常にユーザー入力を積極的にリスニングしており、事前に情報を記憶しているため、必要に応じて不要な手順をスキップできます。

もう一度テストを再開して、別のケースを試してみましょう。 このラウンドでは、ハイキング用品のタイプや価格帯などを求める質問ノードをさらにいくつか追加できます (お金エンティティ)。

今回は製品カテゴリの質問が表示されるので、製品カテゴリのみをコパイロットに伝える代わりに、「$100 未満でトレッキング シューズを購入したい」とユーザーは言うことができます。 この例では、コパイロットは正しいハイキングの製品カテゴリ パスにルーティングするだけでなく、ハイキング用品のタイプと目標価格帯情報を要求するスロットをアクティブに埋めることもできます。

製品と価格カテゴリ用のトピック間の追跡。

プロアクティブなスロット埋込みは、ノード レベルで手動で制御できます。 特定のノード内で質問を常に求めたい場合は、以前のユーザー応答によってスロットが埋められたかどうかに関係なく、質問ノードの質問をスキップオプションを無効にできます。

質問をスキップ。

詳細なビデオを見る