Copilot Studio 会話の添付ファイルを読み取るマルチモーダルなエージェント構築|AI Buider

2025年現在、Copilot Studioは標準機能でファイルを扱えるようになりました!
以前はPower Automateを使った複雑な手順が必要でしたが、今は設定ひとつで完結します。
本記事では、最新の「標準機能を使った実装方法」を解説します。
※過去の手法(Power Automate版)は記事の後半にアーカイブとして残しています。

前回の記事の続きで、会話の添付ファイルを読み取るマルチモーダルなエージェントをCopilot Studioで作ってみる。

スポンサーリンク

やりたいこと

会話に添付した画像やPDFを読み取れるエージェントをつくりたいときの話。初期だと読み取れないと言われてしまう。

事前準備:設定の確認

まずは「ファイル添付」がオンになっているか確認する。[設定]から、
[生成AI]タブの[ファイルをアップロードする]がオンになっているかを確認。

構築

まずは新しいトピックを作り、以下のように「添付画像の解析を依頼」された場合に起動するようトリガーを設定しておく。
続いて[ツールを追加する]から[新しいプロンプト]を選択。
[コンテンツを追加する]から[画像またはドキュメント]を追加し、
追加した引数に適当な名前を付けて、プロンプトを追記すれば完成。[保存]を押す。
作成したプロンプトの入力に以下の計算式を入れて、
First(System.Activity.Attachments).Content
注意:
今回は「必ず1つファイルを添付する」前提で作成しています。添付ファイルが0の(操作ミスの)可能性がある場合はifを、複数添付される可能性がある場合はループを入れること。
出力は適当な変数に代入、
[メッセージを送信する]アクションで、先ほどの変数のtextプロパティを指定すれば構築完了。

動作確認

画像を添付し、「解析して」と頼むと画像を解析してくれるようになる。

今回は「画像」のみを解析するように作ったけど、全く同じ構築でPDFも解析可能。ExcelとかWordを解析したい場合はDocument Intelligenceの利用が必要。

関連記事

おまけ:【過去の手法アーカイブ】Copilot Studio→Power Automate → AI Builder

以下は古い内容です。
当時はSystem.Attachmentsには添付ファイルは入っておらず、またプロンプトアクションにファイルを添付することもできませんでした。

構築

今回も前回同様、最初の添付ファイルのみを対象とする。
※複数ファイルに対応したい場合はTable型として扱うか、Foreachを使用。

プロンプトアクション作成

[AIハブ]の[プロンプト]から新しいプロンプトを作成し、

適当なプロンプトと「画像またはドキュメント」入力を追加する。
※プロンプトの精度は未検証

以上でプロンプトアクションの作成は完了。

Power Automate構築

公式によると、この記事執筆時点ではCopilot Studioからのプロンプトアクション呼び出しで、「ファイル」形式の入力はまだ対応していないらしいので、Power Automateを経由する。
プロンプトにテキスト、画像、またはドキュメント入力を追加する
プロンプトにテキスト、画像、またはドキュメント入力を追加する方法を学習します。
引数にユーザーからのメッセージとデータ文字列を追加し、そのままAI Builderに渡すフローを構築。
このときデータ文字列はbase64ToBinary関数でバイナリ化すること。
あとは受け取ったメッセージを戻り値に設定して、Power Automateの構築は完了。

Copilot Studio構築

会話は「会話の強化(旧Conversation boosting)」で開始することにする。
※今回は単発の会話のみ想定。会話を複数回続ける場合は、別途検証が必要。

会話が始まったら、添付ファイルの数を取得し、
添付ファイルが存在する場合は専用のトピックにリダイレクトする。
リダイレクトしたトピックの中で、前回の記事の内容の通りcontentUrlを取得し、
Split関数とIndex関数でデータ部分を抽出する。
そしたら先ほど作成したPower Automateを追加し、ユーザーからのメッセージ(Activity.Text)とファイルのデータ部分を送る。
最後にPower Automateから戻ったメッセージを表示すれば構築は完了。

動作確認

まずは画像を送ってみると、無事ねこと判断してくれる。
2025/4/18時点でAI Builderのファイル入力の対象は「PNG、JPG、JPEG、PDF」らしいので、こんなPDFを作って、
質問してみると、無事答えてくれる。

もしExcelやPower Pointなども読み取れるようにしたい場合は、Document Intelligenceなどと組み合わせる必要あり。

コメント

タイトルとURLをコピーしました