Copilot StudioやAI Builderのプロンプトに、ナレッジとしてDataverseを追加する方法について。
前提
Dataverseにこんな感じの「ねこ」テーブルがあるとして、プロンプトアクションからこの情報を使用して回答を生成したい(RAG)ときを考える。


プロンプトアクションにDataverseをナレッジとして追加
まずは[アクションを追加する]から[新しいプロンプト]を選んで、


右側の[ナレッジ]アイコンから、[ナレッジを追加する]を選択して、対象のテーブルを選択。


今回はサンプルなのでフィルターはせずに使用する。
※本番では回答に使用するデータだけをフィルター(ステータスがアクティブ など)すると回答精度が上がると思われる。

※本番では回答に使用するデータだけをフィルター(ステータスがアクティブ など)すると回答精度が上がると思われる。

そしたら引数としてねこの名前を追加して、




プロンプトを入力し、[追加]から[自分のプロンプトで]を選んで、追加した[ねこ]テーブルを選ぶ。


すると「ねこ」テーブルの列を選択できるので、


必要となりそうな列を全て追加する。
※「# 基本情報」みたいなプロンプトが精度に影響するかは未検証。

※「# 基本情報」みたいなプロンプトが精度に影響するかは未検証。

以上で構築は完了。
動作確認
右上の[入力]アイコンから、サンプルデータにテーブルに存在するねこの名前を入力して、[プロンプトのテスト]を押してみると、


こんな感じでDataverseの情報をもとに回答を生成してくれる。


ちなみに[使用されたナレッジを表示する]を押すと、


どんな情報(Dataverseのレコード)を使用したかを確認することが可能。


Dataverseのレコードへのリンクを追加することも可能
[設定]アイコンの[リンクを応答に含める]をチェックすると、


回答の生成に使用したレコードへのリンクを含めることも可能。


リレーションをたどることも可能
例えば、ねこ毎に複数の食事履歴を持つテーブル(1対多のリレーション)があるとき、


[追加]から[ねこ]を選ぶと、リレーション先のテーブル(ねこ(食事履歴))を選ぶことができて、


こんな感じで関連テーブルの情報を含めることが可能。
※「ねこ」→「食事履歴」→「キャットフード」といった複数階層先へのアクセスも可能なよう。

※「ねこ」→「食事履歴」→「キャットフード」といった複数階層先へのアクセスも可能なよう。

動作確認をすると直近の食事履歴を教えてくれる。


もちろんこんな感じで複数の情報を加味して回答を生成させることも可能なので、とても便利。


ということで、Dataverseのレコードを使用して回答を生成する際は、プロンプトアクションのナレッジが簡単なのでおすすめ。