前回に引き続き、AIエージェントを作るための処理をつくっていきます。
今回は、Copilot StudioとPower Automateでフローを作る方法を解説します。
- 1. 今回実施したい処理の流れ
- 2. [1] ユーザからPowerPointファイルのアップロードを受け付ける [Copilot Studio]
- 3. [2] 受け取ったPowerPointファイルをPower Automateに渡す [Copilot Studio -> Power Automate]
- 4. おわりに
1. 今回実施したい処理の流れ
Copilot Studio, Power Automate, Azure Functionを行き来するので、わかりやすいように処理を書き出しました。
この記事では[1], [2]について解説し、[3]以降は別の記事で書く予定です。
[1] ユーザからPowerPointファイルのアップロードを受け付ける [Copilot Studio]
[2] 受け取ったPowerPointファイルをPower Automateに渡す [Copilot Studio -> Power Automate]
[3] Power Automateの中で、Azure Functionに処理を渡す [Power Automate -> Azure Function (関数アプリ)]
[4] Azure Functionの中でPowerPointファイルを受け取ってテキストを抽出。抽出した結果をPower Automateに返す [Azure Function -> Power Automate]
[5] Power AutomateからCopilot Studioに結果を渡す [Power Automate -> Copilot Studio]
[6] Copilot Studioで誤字脱字チェックを実行する [Copilot Studio]
最初のCopilot Studioでは、新しくエージェントを作ります。Copilot Studio にログインした状態で「作成」ボタンをクリックして新規エージェントを作成します。
この辺の基本的な操作は、前々回の2章で書いた内容と同じです。
www.crossroad-tech.com
この辺はどこまできちんと書くべきかは不明です。調べている限り、ここを細かく書いても個別の処理を自分で作る必要があるためです。
2. [1] ユーザからPowerPointファイルのアップロードを受け付ける [Copilot Studio]
Copilot Studioの左側にある「フロー」というアイコンを選択して、フローを作っていきます。
まずは、ユーザがOneDriveにPowerPointファイルをアップロードする処理を作ります。Copilot Studioでは基本的にノードを作って繋げることで処理を定義していきます。
そうすると、まずは「ファイルを保存」とか、「アップロードを受け付ける」というノードを想定したのですが、そのようなノードはなく、「エージェントがフローを呼び出したとき」というノードを使います。
しかし、一度しか使えないのか、途中で同じフローをもう一度呼び出そうと検索しても出てきませんでした。
Copilot Studioのフロー全体でそうなのですが、ノードのキーワードを入れても出てこない時があります。その条件がわからないのでまだ少し使いづらい印象を持ちました。
「エージェントがフローを呼び出したとき」のノードを開くと、このような画面になります。テキスト、はい/いいえ、ファイルなど何を入力とするかを決められます。このスクリーンショットではすでにファイルを入力とする設定にしています。
補足: 数ヶ月前までは、「アクション」という機能があって、「エージェントがフローを呼び出したとき」はアクションの追加という操作だったようです。
しかし、こちらによると、今は「ツール」から呼び出すようです。
3. [2] 受け取ったPowerPointファイルをPower Automateに渡す [Copilot Studio -> Power Automate]
先に、Power Automateのフローを作っておきます。
まず、Power Automateのブラウザ画面を開きます。このリンクで開けるはずです。
開いたら、「作成」>「自動化されたクラウドフロー」を選択します。
「トリガーを追加」のノードを選択し、「HTTP」とか「要求」というキーワードを入力し、「HTTP要求の受信時」を選択します。
ここで、jsonスキーマを設定します。中身を読みきれてないですが、いったんこのようなおすすめがあったので入力しました。
{ "type": "object", "properties": { "fileName": { "type": "string" }, "fileContent": { "type": "string" } } }
次に、OneDrive for Businessの「ファイルを作成」ノードを選択して、Copilot Studioから取得したファイルを保存する場所と名称を入力します。
場所は、/Document/~のような形式でなければならないようです。
ファイルコンテンツは「base64ToBinary(triggerBody()?['fileContent'])」と入力します。この理由がまだわかっていませんが、ひとまず入力して先に進めました。
この後、一時的に新しいノードの「応答」を追加します。これは後で消すかもしれませんが、いったんフローを閉じるために入れました。
この状態でフローを保存します。そうすると、「HTTP要求の受信時」というノードが「manual」という名称に変わり、「manual」ノードを開くとURLが発行されています。(なぜノードの名前が変わるかは不明です)
次はCopilot Studioに戻ります。Power Automateに情報を渡すため、Copilot Studioで「フローを取得」ノードを使います。
「フローを取得」の詳細画面を開いて、自分のテナントとその中で登録されているPower Automateのフローのうち、使いたいものを選択します。先ほどPower Automateで作ったフローは「HTTP->応答」という名称です。これを選択しました。
この後、「応答」ノードを追加してから「公開」ボタンを押します。
そうすると、エージェント作成画面の「ツール」の部分でこのフローを追加できるようになります。
自分で作ったフロー「PowerAutomate連動処理」が、エージェント構成画面に追加されたことを確認できました。
4. おわりに
Copilot StudioもPower Automateも、名称が一致しなかったり、確実に合っている名称を入力しても検索に表示されなかったりと、使いこなすのに時間がかかると思いました。
たとえば、Copilot Studioの中で「フロー」と書かれているところで作った処理が、AIエージェントの構成を管理する別の画面では「ツール」として扱われており、表記が統一されるともう少しわかりやすいと思いました。
次回は、Azure Functionで別の処理を作って、そこでPower Pointの文字を抽出する処理を試してみます。











