見出し画像

Power Automate for desktopの「GPT でテキストを作成する」アクションを活用するフローの紹介

きぬあさです。
本記事はMicrosoft Power Automate Advent Calendar 2024(シリーズ 2)の12月25日分の記事となります。



Power Automate for desktop(PAD)にはAI(Copilot)を活用した機能が搭載されており、私のnoteでもいくつか記事を書いています↓

そんな私でもこれまであまり触れてこなかったのが「GPT でテキストを作成する」アクションです。

実はこのアクション、以前は「Azure OpenAI Service の GPT でテキストを作成する」という名前で、2023年の5月にはこのアクションが使えるようになっていました。

では何故これまで触れてこなかったか!?
それは・・・

”ぶっちゃけ使いづらいから!”

です。
実に身も蓋もない。

アクション自体はGPTに指示を出して結果を受け取るという、名前通りの機能で一見すると便利そうなのですが、いざ使ってみるとこれが中々に使いどころが難しい・・・。

今回はそんな「GPT でテキストを作成する」アクションの活用方法を考えてみたのでご紹介します。

「GPT でテキストを作成する」アクションが使いづらい理由

「GPT でテキストを作成する」アクションが微妙に使いづらい最大の理由、それはこのアクションの後に必ず「メッセージを表示」アクションや「入力ダイアログを表示」アクションを追加して、本文中にGPTからのレスポンスを含める必要がある点です。

• A Display input dialog action or Display message action must accompany each use of the Create text with GPT action
• The Display input dialog action or Display message action must contain the response from the Create text with GPT action in its body so it is clearly presented to the user

Make sure that flows that utilize the Create text with GPT (preview) action check those two points. If either of those steps is omitted, the respective flow(s) will result in an error.

(以下AIによる翻訳)
• [GPT でテキストを作成する] アクションの使用には、必ず [入力ダイアログを表示] アクションまたは [メッセージを表示] アクションを伴う必要があります。
• [入力ダイアログを表示] アクションまたは [メッセージを表示] アクションは、そのボディ部分に [GPT でテキストを作成する] アクションからの応答を含める必要があります。これにより、ユーザーに明確に提示されます。

[GPT でテキストを作成する (プレビュー)] アクションを利用するフローでは、上記の2点を確認してください。これらのステップのいずれかが省略されている場合、該当するフローはエラーとなります。

https://learn.microsoft.com/en-us/power-automate/desktop-flows/actions-reference/aibuilder?WT.mc_id=M365-MVP-4029057 より

実際に試してみると分かりますが、「GPT でテキストを作成する」アクションをフローに追加しただけだと下記エラーが発生します。

'GPT でテキストを作成する (プレビュー)' アクションの後に、生成したコンテンツを誰かが手動でレビューするために必要な、'メッセージ表示' アクションまたは '入力ダイアログ表示' アクションが存在しません。

エラー内容通り、GPTからの回答を手動でレビューする必要があるためにこのような仕様になっているようです。

「GPT でテキストを作成する」アクションを活用するフロー

この仕様を踏まえたうえで、「GPT でテキストを作成する」アクションを活用するフローを考えてみました。

1. 「カスタム フォームを表示」アクション

カスタム フォームにテキスト入力要素(ID: Request)を配置してGPTへの指示文を入力します。

2. 「ループ条件」アクション

「ループ条件」アクションを使って、フォームがキャンセルされない限り「カスタム フォームを表示」アクションによるGPTへの指示文入力フォームを表示し続けるようにします。

3. 「GPT でテキストを作成する」アクション

指示パラメーターでカスタム フォームで入力した指示文(%CustomFormData.Request%)を指定します。

4. 「メッセージを表示」アクション

「メッセージを表示」アクションで「GPT でテキストを作成する」アクションからのレスポンス(%PredictV2TextResponse%)を表示します。

「メッセージ ボックスを自動的に閉じる」オプションを有効にし、「タイムアウト」パラメーターの値を「1」にすることで、メッセージ ボックス表示後1秒で自動的に閉じるようにします。

5. 「カスタム フォームを表示」アクション

フローの1番最初の「カスタム フォームを表示」アクションをコピーして再利用します。

テキスト入力要素(ID: Request)の既定値をGPTからのレスポンス(%PredictV2TextResponse%)にして、カスタム フォームでレスポンスを表示すると同時にコピーや編集をできるようにします。

実行画面

フローの実行画面が下記になります。

おわりに

最初は「入力ダイアログを表示」アクションを活用しようと試行錯誤していたのですが、GPTからのレスポンスを「既定値」パラメーターではなく「入力ダイアログ メッセージ」パラメーターに入れる必要があり、レスポンスの文字数が多いほどダイアログが見づらくなり、また、レスポンスのコピー&ペーストもできなくなるため、最終的に「メッセージを表示」アクションで「GPT でテキストを作成する」アクションのエラーを回避しつつ、「カスタム フォームを表示」アクションを使うことで使い勝手を向上させました。

個人的には大分実用的なフローになったとは思うのですが、それでもやっぱりブラウザーやアプリには勝てないなー・・・、というのが正直な感想です😅
(我ながらひどいオチやー・・・🤯)

いいなと思ったら応援しよう!