Copilot Studio でのエンティティとスロット充填のベスト プラクティス
スロット充填とは
スロットの充填は、ユーザークエリから情報を識別して抽出することで、エージェント が情報をより簡単に取得して使用できるようにする エンティティ の使用に関連しています。
エージェント が機能するには、通常、ユーザーからいくつかの情報が必要になります。 この情報を取得するには、通常、エージェント に必要な事実ごとに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つ含める必要があります。
スマートマッチングの有効化
クローズされたリスト エンティティごとにスマート マッチングを有効にすることもできます。
スマート マッチングは、エージェント's NLUモデルによってサポートされるインテリジェンスの一部です。 このオプションを有効にすると、エージェント はエンティティにリストされている項目に基づいて、ファジー ロジックを使用してユーザーの入力を解釈します。
特に、エージェント はスペルミスを自動的に修正し、一致ロジックを意味的に拡張します。 たとえば、エージェント は、 「softball」 を 「baseball」に自動的に一致させることができます。
想像力を発揮して正規表現を使用する
ユーザー クエリからエンティティを抽出すると、特に同じタイプのエンティティがユーザー クエリに複数存在する場合に、NLU モデルの混乱が生じることがあります。
たとえば、ユーザーが「101号室にタオル2枚と枕1個を持ってきてもらえますか?」と言ったとします。
組み込みのエンティティの番号を使用すると、101、2、1、の間で混乱が生じる可能性があります。 この混乱を回避するには、次の正規表現エンティティを定義できます。
- タオル数量: [1-9] タオル
- 枕数量: [1-9] 枕
- 部屋番号: [0-9]{3}
参照データを保存するためのエンティティの代替
大規模なデータセットまたは進化するデータセット (製品や顧客のリストなど) の場合は、Copilot Studio 閉じているリスト エンティティの代わりに、外部ソースを確認することをお勧めします。 Power Automate データ フローを使用してユーザーの発話を外部サービスに渡す必要があります。
トピック ロジックは、会話を進める前に結果の正確性を検証します (またはユーザーに検証を依頼します)。
Dataverse には組み込みの Dataverse 検索機能があるため、このようなデータを保存するの候補として最適です。この機能は、信頼度スコアと共に最適な結果を返すあいまい一致をサポートしています。 全文で検索した場合でも、一致する可能性のある結果を取得できます。
チップ
サンプル実装を確認するには、「 結果のリストを返す」を参照してください。