スロットフィリングは、エージェントが特定の情報を認識し抽出する特殊なデータ型であるエンティティを用いて、ユーザーのクエリから情報を賢く収集することを可能にします。
スロット充填とは
複数の質問を順番にする代わりに、スロット埋めはエージェントが最初のメッセージで関連情報を特定し、不要な質問をスキップできるようにします。
エージェントは通常、役割を実行するためにユーザーからのいくつかの情報を必要とします。 この情報を取得するには、通常、エージェントが必要とする事実ごとに 1 つずつ、個別の質問をします。 質問でエンティティを使用すると、Copilot Studio は必要な情報を検出し、トリガーするユーザー クエリで情報が特定される可能性のある質問をスキップします。
例えば、ユーザーが「大きな青いTシャツを3枚注文したいのですが」と尋ねたとき、
Copilot Studio Natural Language Understanding(NLU)はすぐに以下のことを理解します:
- トピックは 注文 です
- 数量は 3 です
- 色は 青 です
- 品目の種類は T シャツ です
これにより、エージェントは不要な質問をスキップできます。 サイズなど、一部の情報が不足している場合は、先に進む前に未回答の質問が表示されます。 スロットを埋めることで、エージェントはより簡単に情報を取得して使用でき、必要な質問の数を減らすことができます。
まず、どのエンティティとそのタイプを使いたいかを定義します。
エンティティを定義する
Copilot Studio は、ような最も一般的なユース ケースに次のような複数の組み込みエンティティを提供します: メールアドレス、日時、名前、電話番号、色、国、市区町村、番号、、金額、その他。
組み込みエンティティは、情報が取る多様な形態を扱うことができるため、強力です。 例えば、会話で Money を使う場合、ユーザーは「$100」「a hundred dollars」「100ドル」と値を指定することがあります。Copilot StudioのNLUモデルは、その価値が100ドルの金銭的価値であることを算出します。
チップ
どんな値を入力しても、会話の流れで質問が求められるものであれば、再利用可能な変数として保存されます。
前の例の品目の種類などの独自のカスタム エンティティを定義することもできます。 カスタムエンティティは2種類のいずれかに分けられます:
- クローズドリスト:あらかじめ定義された値のリスト。
- 正規表現 (RegEx):特定のパターンに一致する情報。 RegExは常に同じ形式に従うデータ(例えばチケット番号の INC000001 )を取得する必要がある場合に理想的です。
ユーザー エクスペリエンスを向上する
エンティティはCopilot Studioがユーザーの問い合わせから情報を収集・保存し、その後会話でその情報を利用可能にするのを支援します。 エンティティはユーザー体験を向上させ、エージェントをより賢く見せます。 可能な限り活用しましょう。
エンティティのベスト プラクティス
エンティティを使用する際には、情報抽出の精度と全体的なユーザー体験を向上させるための以下のベストプラクティスを考慮してください。
シノニムの使用
同義語を閉じているリストのエンティティ値に追加して、エンティティのリストの各項目の一致ロジックを手動で展開することができます。 たとえば、"ハイキング" の項目では、"トレッキング" と "登山" を同義語として追加できます。
同義語を使うことで、関連する単語を対象の同義語として加えることで、トリガーフレーズの重みが増すため、トピックのトリガー効果を高めることができます。 たとえば、"苦情" オプションには、同様の否定的な単語やフレーズを同義語として追加します。
NLUモデルは、トピックトリガーフレーズに少なくとも一つのバリエーションが含まれている場合、すべての実体バリエーション(すなわちすべての値およびそれらの同義語)に一般化します。 NLUが他のエンティティのバリエーションに一般化するために、トリガーフレーズの例を1つ含めるのが良い慣例です。
スマートマッチングの有効化
クローズされたリスト エンティティごとにスマート マッチングを有効にすることもできます。
スマート マッチングは、エージェントの NLU モデルがサポートするインテリジェンスの一部です。 このオプションを有効にすると、エージェントはエンティティ内のリストされた品目に基づいて、ファジー ロジックを使用してユーザーの入力を解釈します。
エージェントは自動的にスペルミスを訂正し、対応論理を意味的に拡張します。 例えば、エージェントは自動的に「ソフトボール」と「野球」をマッチングできます。
想像力を発揮して正規表現を使用する
ユーザー クエリからエンティティを抽出すると、特に同じタイプのエンティティがユーザー クエリに複数存在する場合に、NLU モデルの混乱が生じることがあります。
例えば、ユーザーが「101号室にタオル2枚と枕1個を持ってきてもらえますか?」と聞いた場合。
内蔵の ナンバー エンティティは2、1、101の間で混乱を引き起こします。 この混乱を回避するために、以下の正則表現の実体を定義します。
- タオル数量: [1-9] タオル
- 枕数量: [1-9] 枕
- 部屋番号: [0-9]{3}
参照データを保存するためのエンティティの代替
大規模または進化中のデータセット(製品リストや顧客リストなど)については、Copilot Studioのクローズドリストエンティティを使う代わりに外部ソースを確認することを検討してください。 Power Automateのクラウドフローを使って、ユーザーの発言を外部サービスに渡す必要があります。 トピック ロジックは、会話を進める前に結果の正確性を検証します (またはユーザーに検証を依頼します)。
Dataverseは、ファジィマッチングをサポートし、信頼度スコアとともに最良の結果を返すための Dataverse検索 機能を備えたため、このようなデータを保存するのに適しています。 文全体を検索しても、潜在的なマッチングを取得できます。
チップ
サンプル実装をレビュー してください。結果のリストを返してください。