8
5

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

Copilot Studio の Upload files 機能に自動でファイルをアップロードする

Last updated at Posted at 2025-02-18

はじめに

これまでいくつかの記事で紹介してきた通り、Copilot Studio では、ファイルをアップロードしたり、URL を指定したりするだけで、その情報を基に回答を返してくれるチャットボット (※) を作成できます。

※最近はエージェントとなっていますが、以後エージェントと表現しますが、テーブル名はコパイロットやボットという表現が含まれています

個人的に、ノーコードで作成するのであれば、回答の精度、サポートしているファイルの種類、ファイルサイズの上限などの観点から、以下のファイルを直接アップロードする機能をお勧めしています。

image.png

ただし、こちらのファイルアップロード、毎回手動でファイルをアップロード、削除する必要があり、ファイルの数が多い場合や、定期的にファイルのメンテナンスをしたい場合面倒です。

そのため、今回は、SharePoint ドキュメントライブラリにファイルをアップしたら、自動で Copilot Studio にファイルアップロードする方法を紹介します。

参考情報

まず、今回の方法は、以下からインストールできる Copilot Studio Kit の一部を解析し、試行したものです。マイクロソフトの製品開発チームが提供しているフローを参考にしていますが、Microsoft Learn などで案内されている公式の手順ではないため、その点をご承知おきください。

エージェント が保存される Dataverse テーブル

まず、Copilot Studio でエージェントを作成した際、エージェントにナレッジを追加した際に Dataverse のテーブルに情報が格納されます。

Copilot Studio Kit 内の「Synchronize files into Copilot Studio Child Flow」内では、以下の二つのテーブルが利用されていました。

image.png

確認してみると、こちらのテーブルにエージェントの一覧があります。

image.png

そして、こちらのテーブルに追加したナレッジが格納されていました。コンポーネントの種類を「ボットの添付ファイル」にして、filedata にコンテンツを格納するようです。

image.png

また、実際にこちらにレコードを登録する際は、以下のスキーマ名と parentbotid に注目する必要がありそうです。parentbotid はコパイロットテーブル側のレコードと紐づいていました。

image.png

image.png

フローの作成

まず、フローの全体像は以下のような感じです。

image.png

ドキュメントライブラリにファイルがアップロードされたらコンテンツを取得した後、コパイロットテーブルから情報を取得しています。今回は、対象となるエージェントは固定のため、直接 GUID を指定しています。

image.png

image.png

そして、コパイロットコンポーネントテーブルに対して行を追加しています。Parentbotid 列にてコパイロットテーブルと紐づけて登録をします。

image.png

スキーマ名はよくわかりませんが、Copilot Studio Kit と同じように登録しました。なお、ファイル名に日本語が含まれているとスキーマ名でエラーが発生するため、ナレッジのファイル名は英語にする必要があります。

なお、Dataverse で親レコードと紐づけて Power Automate で登録する方法は、以下のブログを参考にするとよいかと思います。

なお、コンポーネントの種類は選択肢になっているようで、「ボットの添付ファイル」を選択します。

image.png

一旦行を作成した後、ファイルをアップロードします。

image.png

最後に、削除処理を見越して、リストに Dataverse の行の GUID と、ドキュメントライブラリの行の ID を控えておきたいと思います。

image.png

動作確認

問題なくフローが動作しました。
コパイロットコンポーネントテーブルを見てみると、うまく登録できているようです。

image.png

image.png

image.png

コパイロットテーブルとのリレーションも問題なさそうです。

image.png

そして、Copilot Studio で該当のエージェントを開き、ナレッジを見てみると、こちらにもファイルが見えてきており、早速インデックスが作成されているようです。

image.png

削除処理

もし、ドキュメントライブラリでファイルを削除した際、コパイロットコンポーネントテーブル側も削除したい場合は、リストに行を保存しておき、削除するようにします。

image.png

image.png

まとめ

今回は、SharePoint ドキュメントライブラリにファイルをアップしたら、自動で Copilot Studio にファイルアップロードする方法を紹介しました。ファイルの数が多い場合や、定期的にファイルのメンテナンスをしたい場合、全て手動で行うのは手間だと思いますので、一つの代替案になるかもしれません。

あとは、SharePoint のナレッジについて、リストは対象外のため、例えば、Power Apps で問い合わせを受け付けるようなアプリを作成しており、リストにナレッジが蓄積されているような場合は、以下のような運用ができるかもしれません。

① 定期的に Power Automate でリストの情報を CSV に吐き出して、そのファイルをエージェントのナレッジに追加する

② 追加が終わったら通知をして、(余裕をもって翌日くらいでもいいかも) インデックス化が終わっていることを確認して動作確認をしたら再公開する

8
5
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
8
5

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?