Copilot Studio でのエンティティとスロット充填のベスト プラクティス

重要

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

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

スロット充填とは

スロットフィリングは、ユーザーのクエリから識別して抽出することで、コパイロットがより簡単に情報を取得し、使用できるようにするエンティティの使用に関連しています。

通常、コパイロットは、その職務を遂行するためにユーザーからいくつかの情報を必要とします。 この情報を取得するには、通常、コパイロットが必要とする事実ごとに 1 つずつ、個別の質問をします。 質問でエンティティを使用すると、Copilot Studio は必要な情報を検出し、トリガーするユーザー クエリで情報が特定される可能性のある質問をスキップします。

たとえば、ユーザーが次の質問をします:

大きい青の T シャツを 3 枚注文したい

Copilot Studio 自然言語理解 (NLU) は、以下を即座に理解できます。

  • トピックは注文である。
  • 数量は 3 である。
  • 色はである。
  • 品目の種類は T シャツである。

コパイロットは不必要な質問をスキップすることができます。 サイズなど、一部の情報が不足している場合は、先に進む前に未回答の質問が表示されます。 スロットを埋めることで、コパイロットはより簡単に情報を取得して使用できるようになり、質問する必要のある回数が減ります。

まず、使用するエンティティとそのタイプを定義します。

エンティティを定義する

Copilot Studio は、ような最も一般的なユース ケースに次のような複数の組み込みエンティティを提供します: メールアドレス日時名前電話番号市区町村番号、金額、その他。

組み込みエンティティは、さまざまな形式の情報を処理できるため、強力です。 たとえば、会話で金額を使用する場合、ユーザーは「$100」、「100 ドル」、「100 米ドル」のように値を入力する可能性があります。 Copilot Studio の NLU モデルは、値が 100 ドルという金額であることを理解します。

チップ

ただし、会話フロー内の質問で値が要求されている限り、値が入力されても、再利用できる変数に保存されます。

前の例の品目の種類などの独自のカスタム エンティティを定義することもできます。 カスタム エンティティには次の 2 つのタイプがあります。

  • 閉じているリスト: 事前に定義された値の一覧の場合。
  • 正規表現 (RegEx): 特定のパターンに一致する情報の場合。 RegEx は、常に同じ形式に従うデータをキャプチャする必要がある場合に最適です (チケット番号の INC000001 など)

ユーザー エクスペリエンスを向上する

エンティティを使用すると、Copilot Studio でユーザーのクエリからよりインテリジェントに情報を収集できるため、ユーザーの生活が簡素化されます。 さらに重要なのは、エンティティがユーザーのクエリから情報を見つけて保存し、その後の会話でその情報を利用できるようになるため、ユーザーの生活が便利になります。 エンティティはユーザー エクスペリエンスを向上させ、コパイロットをよりスマートに見せます。そのため、可能な限りエンティティを使用することがベスト プラクティスであることは間違いありません。

エンティティのベスト プラクティス

シノニムの使用

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

チップ

  • 同義語を使用すると、それに含まれるエンティティの同義語として関連語が追加され、トリガー フレーズの重みが増すため、トピック トリガーにも役立ちます。 たとえば、"苦情" オプションには、同様の否定的な単語やフレーズを同義語として追加します。
  • また、NLU モデルは、トピック トリガー フレーズにこのエンティティの少なくとも 1 つのバリエーションが含まれる場合、すべてのエンティティのバリエーション (つまり、その値とその同義語のすべて) を一般化します。 言い換えれば、コパイロットの作成者は、NLU が他のエンティティのバリエーションを一般化できるように、このエンティティの 1 回の使用を含むトリガー フレーズの例を 1 つ含める必要があります。

スマートマッチングの有効化

クローズされたリスト エンティティごとにスマート マッチングを有効にすることもできます。

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

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

想像力を発揮して正規表現を使用する

ユーザー クエリからエンティティを抽出すると、特に同じタイプのエンティティがユーザー クエリに複数存在する場合に、NLU モデルの混乱が生じることがあります。

たとえば、ユーザーが次のように言ったとします。

101 号室にタオルを 2 枚と枕を 1 つを持ってきてもらえますか

組み込みのエンティティの番号を使用すると、101、2、1、の間で混乱が生じる可能性があります。 この混乱を回避するには、次の正規表現エンティティを定義できます。

  • タオル数量: [1-9] タオル
  • 枕数量: [1-9] 枕
  • 部屋番号: [0-9]{3}

参照データを保存するためのエンティティの代替

大規模なデータセットまたは進化するデータセット (製品や顧客のリストなど) の場合は、Copilot Studio 閉じているリスト エンティティの代わりに、外部ソースを確認することをお勧めします。 Power Automate データ フローを使用してユーザーの発話を外部サービスに渡す必要があります。

トピック ロジックは、会話を進める前に結果の正確性を検証します (またはユーザーに検証を依頼します)。

Dataverse には組み込みの Dataverse 検索機能があるため、このようなデータを保存するの候補として最適です。この機能は、信頼度スコアと共に最適な結果を返すあいまい一致をサポートしています。 全文で検索した場合でも、一致する可能性のある結果を取得できます。

チップ

実装例はこちらを参照してください。結果のリストを返す