Microsoft

生成AIの回答をドキュメント化:CopilotとPower Automateの連携術

やりたいこと

今回はCopilot Studio側で、例えばAIを利用した「生成型の回答」から返ってきた答えを、ドキュメントとしてCopilotに返してもらおうと思います。
チャット形式だと後に残せない、Teams連携していても見返すのが大変とのことで、SharePointサイト内へドキュメントとして保存、エージェントに回答させてみます。

本来、Datavarseのテーブルに保存していけば良いのですが、一時的に結果をサマリーとしてドキュメント保存したいとかあるかもしれないので。

方法

「アクション」を使って、変数に入力したデータをPower Automateに渡すこと自体は簡単に出来ます。(後述の検証を参照)
問題はドキュメント化をどうするかだけですね。

Power Automate側でやりたいことはドキュメント化。
とのことで、以下の方法を検討してみます。

PDF
→Power Automateでは、初めからPDFとしてファイルを作成できません。OneDriveコネクタの「ファイルの変更」アクションでPDF化は可能だが、変更元としてサポートされている形式はjpg, html, glbなどのみ。

参考:「ファイルの変更」アクションに該当するAPIを確認
https://learn.microsoft.com/ja-jp/onedrive/developer/rest-api/api/driveitem_get_content_format?view=odsp-graph-online#format-options

dox (Word)
→ドキュメント化は出来そう。ただし、WordコネクタはプレミアムコネクタのためPower Automate Premiumなどの有料ライセンスが必要。


txt
→単純なテキストファイルは作成可能。

xls (Exel)
→ファイルの作成は可能。テーブルのため、文章のサマリーを入力するには適切ではない。

Power Automateの標準コネクタで作成できるファイルの選択肢は、txtまたはExcelファイル。でも、文章をExcelカラムへ挿入はしにくいし、テキストファイルだと見づらいなー何か方法はないかなーと考えて、思いつきました。

htmlを作成後、PDFに変更 です!
→PDFであれば、例えば資料としてまとめてもらった内容をそのまま提出できそうだし、見やすいし、良いですよね。


ということで、今回は⑤の方法を試してみたいと思います。
恐らく、同様の方法で③は簡単に出来るので、テキストファイルが良いという方は、以下に倣ってtxt作成してみてください。

検証:HTML→PDFへの変更

早速検証してみます。全体像としては以下になります。
「Copilotで作った回答テキスト → Power AutomateでHTML化 → PDF化 → Copilotに戻す」

1. Copilot → Power Automate を呼ぶ

Copilotで生成した回答(タイトルや本文など)を引数としてPower Automateのフローに渡します。

2. Power AutomateでHTML文字列を組み立て

受け取った引数をもとに、「作成(Compose)」でタグ付き文字列を作成します。(HTMLテンプレートを用意しておく)

3. HTMLファイルを作成

OneDrive/SharePoint の「ファイルの作成」で .html を保存。内容は、作成済のHTML文字列を動的に取得します。
PDFを作成するまでの一時的なものなのと、次に使う「ファイルの変更」がOneDriveコネクタのアクションのため、今回はOneDriveで作成しています。

4. HTML → PDF に変換

OneDrive for Business の「ファイルの変換」でPDF化を行います。作成済のhtmlファイルを指定して取得します。
他に変更できる拡張子は以下の通り。

5. PDFをCopilotへ返す

「ファイル変更」で作成したPDFをCopilot Studio側へレスポンスします。

結果…htmlの作成、pdfへの変更はそれぞれ可能なものの、時間がかかり、Copilotへの応答でタイムアウトしてしまいました。

しかも、何故かファイルを作成したはずのフォルダを確認してみると、htmlしか保存されておらず、pdfが存在していません。なお、テキストファイルに関しては、簡単に作成できたことを記載しておきます。

5. PDFを保存→保存したファイルをCopilotへ返す(修正)

少し悩んだものの、「ファイルの変換」をした後に、「ファイルを作成」でPDFを保存することで解決しました。


エラーがなくなりました。先ほどは、ファイルを変更してPDFを作成したはいいものの、フロー処理中の一時ファイルにしか存在せず、フォルダへ保存されていないことで値がうまく取得できず、タイムアウトしていたようです。

Copilot Studio側に出力値がないため、このままではCopilotに戻ってきても、見かけ上の変化はないため、Power Automateから出力された値をメッセージとして表示します。

アクションが古い状態なので、「更新」を押すことで、Automateで保存された出力値を新たに取得できるようになります。今回は出力したSharePointサイトなどのファイルパスやファイル情報を返してみます。

出力値をメッセージで表示させて再実行。

出力されました。
どうやらファイルのプロパティ値が表示されましたが、そのままこのファイルですよ、と渡すことは出来なさそうな結果だったため、ファイルパスをリンクとして渡してあげることにします。

次回の検証

6. 出力されるファイルパスをURL化し、Copilotへ返す

ファイルパスを渡す過程は少し面倒だったため、次回ご説明したいと思います。

長くなってしまいましたが、お役に立てる部分があれば何よりです。では次回に。

千葉 玲奈

千葉 玲奈

常に成長し続ける姿勢を大切に、日々勉強中です。 主にMicrosoft365の設計構築を担当。技術面に留まらず、皆の「やりたい」に応えるべく人の想いに寄添った提案ができるよう努めています。

TOP