松本典子の「はじめよう!Azure Logic Apps/Power Automateでノーコード/ローコード」 第31回
会議の発言記録から定型の議事録を自動生成するフローを作ってみよう
ChatGPTのPower Automateプラグインで、ChatGPT側からフローを実行する
2023年11月01日 08時00分更新
こんにちは、Microsoft MVP(Azure / Business Applications)の松本典子です。
本連載の第28回では、ChatGPTをMicrosoft Teamsから使う仕組みをノーコードで作る方法をご紹介しました。今回もChatGPTを使ったノーコードアプリの開発にチャレンジしてみます。
ChatGPTは、人間がふだん使う言葉(自然言語)で書かれた指示文に沿って、質問に答えたり、情報を要約してくれたりするサービスです。この指示文のことを「プロンプト」と呼びます。
今回はこのプロンプトや、ChatGPTからPower Automateのフローを実行できる「スキル」コネクタを使って、会議の発言メモから定型の議事録を自動生成するフローを作ってみましょう。
1. 事前準備
事前準備として、まずはChatGPT側でPower Automateプラグインを有効にしたチャットを1つ、新規で作成します。
なおChatGPTでプラグインを利用するには、GPT-3.5ではなく「GPT-4」を使うことが条件になります。無償サービスでは使えないので、有償(月額20ドル)の「ChatGPT Plus」サービスに加入する必要があります。
ChatGPT Plusサービスに登録したら、ChatGPTにPower Automateのプラグインを追加していきます。
1-1. ChatGPTにPower Automateプラグインを追加する
まずはOpneAIのWebサイトからログインし、ChatGPTを選択します。
画面上部のタブを「GPT-4」に切り替え、下に表示される一覧の「Plugins」にチェックを入れます。
「プラグインなしが有効化されています」という文字をクリックすると、インストール済みのプラグイン一覧が表示されます。今回はPower Automateプラグインを新規追加するので、一番下に表示される「Plugin store」をクリックします。
検索窓に「Power Automate」と入力すると、図のようにプラグインが表示されるので「Install」をクリックします。Power Automateのアカウントへのサインインが要求されるので、Microsoftアカウントでサインインしてください。
ChatGPTで選択できる(有効にできる)プラグインは最大3つです。今回はPower Automateプラグインだけを選択します。
2. ChatGPTのプロンプトの準備
今回は、上図のような、ある会議での発言者と発言内容だけを記録したテキストから、「日時」や「議題」「決定事項」「TODO(アクションリスト)」といった情報を抽出して、それぞれに項目にまとめた一般的な議事録の形に整形させたいと思います。
ChatGPTに指示を出すプロンプトは、次のように書きました。
# 指示
あなたは、議事録作成担当者です。以下の「発言メモ」をもとに、「出力」のフォーマットに合わせて議事録を作成してください。
# 目的
この議事録の目的は、会議内容を明確に伝え、会議に参加できなかった第三者が見てわかりやすく理解を助けることです。
#情報
## 発言メモ
・◯◯さん:(発言内容)
# ルール
・参加者は「発言メモ」の名前を参考にしてください
・「議論内容」は箇条書きで記載してください
・「ToDo」の担当者と期日は未定の場合、会話の流れから適切な担当者と期日を設定してください(期日は「次回の会議まで」でも構わない)
# 出力
## 日時:
## 議題:
## 参加者:
## 決定事項:
1. 決定事項1
2. 決定事項2
## 議論内容
## TODO:
・ToDo1(担当者、期日)
・ToDo2(担当者、期日)
最後にある「# 出力」の内容が指定のメールアドレスに送信されるイメージです。
このようにプロンプトには、ChatGPTに「どのような目的で」「どんな形式で」「何をしてほしいか」といったことを、ふだん使っている言葉で書きます。ひとつの長い文章で指示を書くよりは、上の例のように項目を分け、箇条書きにしたほうが書きやすいでしょう。プロンプトをカスタマイズして、やってもらう内容や出力形式を変えるのも簡単にできます。
3. ワークフロー全体図
今回、Power Automateで作成するワークフローの全体像は上図のとおりです。ChatGPTがChatGPTで生成した議事録をHTML形式に変換し、出力内容を指定のメールアドレスに送信します。
3-1. トリガーの設定
フローのトリガーには「スキル」コネクタを使います。「組み込み」タブをクリックして「スキル」を選択します。
トリガーとして用意されている「Copilotからフローを実行する」をクリックします。
先ほど用意したプロンプトは、会議での発言を記録した発言メモをChatGPTに与え、内容を議事録の形に整形してもらうというものでした。会議の発言内容は毎回変わりますから、それに対応できるよう、フローのトリガー時に発言メモを入力するかたちにします。
具体的には、トリガーの「ユーザー入力の種類の選択」で「テキスト」を設定して、発言メモの入力ボックスを表示させます。わかりやすいように、名前も「発言メモ」にしました。
3-2. アクションの設定:Chat Completion
続いて「OpenAI GPT」コネクタを使って、発言メモから議事録を生成します。なお、このコネクタの利用準備および詳細な使い方は、第28回の記事を参照してください。
検索窓に「GPT」と入力して、「OpenAI (Independent Publisher)」コネクタを選択します。
アクション一覧から「Chat Completion」をクリックします。
Chat Completionアクションの設定には、以下の内容を入力します。
(1)model:「gpt-3.5-turbo」と入力
(2)message role-1:「system」と入力
(3)message content-1:「2. ChatGPTのプロンプトの準備」で用意したプロンプト全文をコピー&ペースト
(4)message role-2:「user」と入力
(5)message content-2:動的なコンテンツ「skills」から「発言メモ」を選択
3-3. アクションの設定:Chat Completion 2
今回はChatGPTが生成した議事録の内容をメールで送信するため、出力はHTML形式のほうが都合が良いです。そこでOpenAI GPTコネクタを利用して、議事録をHTML形式に変換します。
検索窓に「GPT」と入力して、「OpenAI (Independent Publisher)」コネクタを選択し、アクション一覧から「Chat Completion」をクリックします。先ほどと同じアクションなので、名前は自動的に「Chat Completion 2」となります。
設定には以下の内容を入力します。
(1)model:「gtp-3.5-turbo」を入力
(2)message role-1:「system」と入力
(3)message content-1:HTML形式に変換するためのプロンプトを入力
# 指示
入力内容をHTML形式に変換し出力してください。
(4)message role-2:「user」と入力
(5)message content-2:動的なコンテンツ「Chat Completion」の「content」を選択
(6)Apply to each:(5)の内容を入力すると自動的にApply to eachが設定されます
3-4. アクションの設定:メールの送信 (V2)
HTML形式に変換した議事録を、指定のメールアドレスに送信します。
検索窓に「Outlook」と入力して「Office365 for Outlook」コネクタを選択し、アクション一覧から「メールの送信 (V2)」をクリックします。
(1)宛先:議事録を送信したいメールアドレスを指定
(2)件名:わかりやすい名称を入力(今回は「議事録の共有」)
(3)本文:動的なコンテンツ「Chat Completion 2」から「content」を選択
(4)Apply to each:(3)の内容を入力すると自動的にApply to eachが設定されます
3-3. 保存とテスト
以上、コネクタの設定が完了したら、ワークフローに名前をつけて保存します。
ChatGPTのPower Automateプラグインを利用する場合、ワークフローの名前が重要になるので「ワークフローの内容がわかりやすい名称」にすることをオススメします。
保存後は「テスト」を実行する必要があります。テストを実行することで、作成したワークフローがChatGPT側に表示されるようになります。
4. 実行結果
実際にワークフローを動かしてみます。
今回のワークフローは、ChatGPT側からPower Automateのフローを実行するかたちになります。ただし現時点では、日本語の会話の中でワークフローを指定し、実行させることがうまくできないようです。
その代わりに「自分のフローを一覧表示する」とプロンプトを入力します。すると図のように、ChatGPTがワークフローを実行リンク付きで一覧表示してくれます。ここから、先ほど作成したワークフロー(「発言メモから議事録作成」)の「実行リンク」をクリックします。
図のようなPower Automateの実行画面が、ブラウザの別タブとして表示されます(このとき、Microsoftアカウントのサインインが求められる場合もあります)。この画面には、トリガーの「スキル」コネクタで設定した「発言メモ」の入力ボックス(赤枠内)が表示されます。
この入力ボックスに、「2. ChatGPTのプロンプトの準備」でサンプルを示したような、会議での発言内容のテキストをコピー&ペーストします。
「フローの実行」ボタンをクリックすると、図のような議事録内容が指定のメールアドレスに送信されます。
最後に
ChatGPTのプロンプトはふだん使っている言葉(自然言語)で書けるため、カスタマイズも簡単にできます。プロンプトを工夫することで、出力するフォーマットを変えたり、出力する内容の精度を高めたりできますので、ぜひトライ&エラーで試してみてください。
また、今回はChatGPTやOpen AI APIの有償機能を使っているので、長文の発言メモを多数処理させる場合にはコストがかかることもあります。コスト面も考えつつ、ChatGPTとPower Automateの連携方法として活用してみてください。
参考
この連載の記事
-
第44回
Team Leaders
契約書を確実に期限管理! SharePoint+Power Automateで期日通知を自動化 -
第43回
Team Leaders
社内からの質問に自動回答! AI Builder+ノーコードでQ&Aボットを作ろう -
第42回
Team Leaders
Power Automateで複数人の承認(多段階承認)ワークフローを簡単作成しよう -
第41回
Team Leaders
重要なTeamsメッセージの見失い/見落としを防ぐPower Autometeのフローを作ろう -
第40回
Team Leaders
クラウドフローからデスクトップフローを「Picture-in-Picture」で起動する -
第39回
Team Leaders
面倒なカレンダー登録作業を生成AIで自動化するワークフローを作ろう -
第38回
Team Leaders
生成AIに日本語プロンプトで指示を出し、メールから情報を抽出してもらおう -
第37回
Team Leaders
フォルダー内のすべてのファイルを添付してメールを自動送信するフローを作ろう -
第36回
Team Leaders
ローカルPCのテキストファイルをPower Automateに読み込ませて活用しよう -
第35回
Team Leaders
受信メールの添付ファイルを種類に応じたフォルダに自動保存する -
第34回
Team Leaders
Power AutomateでTeamsのチーム全員にメンションを送る方法 - この連載の一覧へ