前回の記事の続きで、会話の添付ファイルを読み取るマルチモーダルなエージェントをCopilot Studioで作ってみる。
やりたいこと
会話に添付したファイルについて、AI Builder(GPT4o)を利用して質問したいときの話。


画像の解析は既に用意されている
実は画像の解析はプレビューだけど既に用意されている。


ただ、この機能は[生成AI]をONにする必要があり、今のところ日本語のCopilotでは使用できないため、今回はAI Builderと組み合わせて画像やPDFを読み取れるエージェントを作ってみる。
構築
今回も前回同様、最初の添付ファイルのみを対象とする。
※複数ファイルに対応したい場合はTable型として扱うか、Foreachを使用。
プロンプトアクション作成
[AIハブ]の[プロンプト]から新しいプロンプトを作成し、




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

※プロンプトの精度は未検証

以上でプロンプトアクションの作成は完了。
Power Automate構築
公式によると、この記事執筆時点ではCopilot Studioからのプロンプトアクション呼び出しで、「ファイル」形式の入力はまだ対応していないらしいので、Power Automateを経由する。
![]()

プロンプトにテキスト、画像、またはドキュメント入力を追加する
プロンプトにテキスト、画像、またはドキュメント入力を追加する方法を学習します。
引数にユーザーからのメッセージとデータ文字列を追加し、そのままAI Builderに渡すフローを構築。
このときデータ文字列はbase64ToBinary関数でバイナリ化すること。

このときデータ文字列は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などと組み合わせる必要あり。
コメント