ChatGPTの業務利用、~ChatGPTを用いた文章要約~
初めに
皆さんこんにちは!この記事では、日常生活のちょっとした雑務を効率化する例をご紹介したいと思います。
毎週実施する報告書類の作成や、案件進捗の確認などの雑務で業務時間が圧迫されていると感じたことはございませんか?そんな時自分オリジナルの簡単な案件管理リストを作成して、進捗状況などを上長に共有出来たら嬉しいですよね。
今回は案件管理リストを作成し、リスト内に格納された情報をChatGPTで要約、その後上長報告するシステムを簡単に作成したいと思います。
今回は「Share Point」「Power Automate」「ChatGPT」を用います。それぞれの概要は以下の通りです。
~Share Point~
Share Pointとは、Microsoft社が提供する組織間でのドキュメント管理やファイル共有を行うサービスです。チームサイトや、コミュニケーションサイトを作成することで、部署のメンバーや、自社のみで利用可能な情報共有の場を作成することが出来ます。ユーザーは共有されたワークスペースやドキュメント,
ファイルに対して、ブラウザや、Microsoft Officeからログインできるようになります。
~ Power Automate ~
Power Automateは、Microsoftが提供するクラウドベースの自動化ツールで、繰り返し作業や業務プロセスを自動化するために使用されます。ユーザーは、ローコード(ソースコードを殆ど書かずに行うシステム開発手法)で開発が可能で、メール通知の自動送信、ファイル管理、データの更新など、人の手で時間をかけて行われた業務の効率化が実現できます。
~ChatGPT~
ChatGPTは、OpenAIが開発した対話型AIです。膨大なテキストデータを学習し、人間のような自然な対話を生成できます。質問への回答は勿論、情報提供、文章生成、などサポートなど、多岐にわたるタスクをこなすことが可能です。業務から日常まで様々なシーンで活用できる点が魅力てきなAIです。
開発前準備
今回は、「Share Point」で作成した案件管理リストに案件の進捗状況などを格納し、「Power Automate」を用いて、ボタン一つで案件情報を送信するシステムを開発します。案件情報を送信する際には、「ChatGPT」で文章の要約・形式化を行い、文章作成の手間を減らします。
3-1.アプリ開発の前提
今回の開発では、定期的に案件の概要や進捗状況をテキストベースまとめ、上長に送信する必要があるユーザーを想定しています。開発後ユーザーは案件が始まった段階でShare Pointリストに情報を入力し、定期的に案件進捗を更新、必要な場合はShare Point上のボタンを押下し上長に案件情報を送信することが出来ます。
またShare Pointリストで作成した案件案件管理リストは、案件終了後も記録として残すことが出来ます。
3-2.開発手順
システム概要を開発するための手順を以下の表にまとめました。使用するツールごとに開発内容の詳細と注意点を記載しています。
手順番号 |
使用ツールと概要 |
開発内容 |
1 |
Share Point (案件管理リスト作成) |
Share Pointサイト作成 Share Pointリスト作成 |
2-1 |
Power Automate (案件情報取得) |
前処理作成 Share Pointリストの情報を取得 |
2-2 |
ChatGPT (文章要約機能追加) |
Power Automateとの連携 文章要約 |
3 |
PowerAutomate (メール送信機能追加) |
メール送信 |
開発
手順番号1の SharePointサイト作成。
Share Pointのホームからサイト作成を押下してください。
コミュニケーションサイトの作成をクリックし、サイト名、サイトアドレスを入力してください。
今回はサイト名を「売上管理」サイトアドレスを「BTC」としました。
手順番号1の Share Pointリスト作成
Share Pointサイトを作成すると以下の画面に遷移します。
遷移後は下記キャプチャ赤枠のリストを押下し、リストの名前を入力してください。
今回リストの名前は「案件管理リスト」としました。
次にShare Pointリストに列を追加します。
下記キャプチャ赤枠の列の追加を押下し、列を追加してください。
今回は簡単な情報のみを収集したいので「案件名」「売上」「進捗」などの最小限の列数にします。追加した列の情報は以下の表の通りです。
この列の要素を増やすことで、業務内容や取引先などのデータも収集することが可能です。列の要素を増やすことで、より詳細な案件管理リストを作成することができます。
作成した列詳細
今回は、報告書を作成しメールを送信するためにボタンを作成します。
Share Pointリストの列の編集から報告書作成列を押下してください。
キャプチャ赤枠の列の書式設定部分に下記のJson式を記載してください。
Jsonの式
{
"$schema": "https://developer.microsoft.com/json-schemas/sp/v2/column-formatting.schema.json",
"elmType": "div",
"style": {
"display": "flex",
"width": "100%",
"height": "100%",
"align-items": "center"
},
"children": [
{
"elmType": "div",
"style": {
"display": "flex",
"width": "100%",
"height": "30px",
"border-radius": "3px",
"align-items": "center",
"flex-direction": "row",
"justify-content": "center",
"background-color": "=if(@currentField, '#88a', '#c0c0c0')",
"border": "solid 2px #446",
"box-shadow": "inset 0 1px 0 #eee,inset 0 -1px 0 #777",
"cursor": "pointer"
},
"customRowAction": {
"action": "setValue",
"actionInput": {
"remind": "=if(@currentField , 'false' , 'true' )"
}
},
"children": [
{
"elmType": "span",
"attributes": {
"iconName": "MailForward"
},
"style": {
"color": "#fff",
"margin-right": "8px"
}
},
{
"elmType": "span",
"style": {
"color": "#fff",
"font-weight": "bold"
},
"txtContent": "=if(@currentField, '報告書作成', 'メール送信中')"
}
]
}
]
}
Jsonの式の説明
-
全体構造:
div
要素を使用して、横幅・高さが100%のフレックスコンテナを作成し、要素を中央揃えしています。 -
ボタンデザイン:
- ボタンの高さは30px、角を丸めたデザイン(
border-radius: 3px
)、枠線とシャドウ効果が追加されています。 - 背景色は、
@currentField
(現在のフィールド値が真か偽か)に応じて変わります。真の場合は#88a
、偽の場合は#c0c0c0
になります。 - ボタンはクリック可能で、カーソルが変わります。
- ボタンの高さは30px、角を丸めたデザイン(
-
カスタムアクション:
- ボタンをクリックすると、
remind
フィールドの値が、現在の値に応じてtrue
またはfalse
に切り替わります(setValue
アクション)。
- ボタンをクリックすると、
-
ボタン内の表示:
- アイコン(
MailForward
)が表示され、アイコンの横にテキストが表示されます。 - テキストは、
@currentField
が真の場合は「報告書作成」、偽の場合は「メール送信中」と表示されます。
- アイコン(
Jsonの式を記載した後リストを確認すると報告書作成列に以下のボタンが設置されています。
これでSharePointサイトとSharePointリストの作成は完了です。
手順番号2-1の前処理作成・Power Automate Share Pointリストの情報を取得
Power Automateを開きフローを作成します。
下記キャプチャの赤枠をクリックしインスタントクラウドフローを作成してください。
今回フロー名は「案件詳細送信」と設定しました。
次にトリガーを選択します。
今回はSharePointリストのアイテムが作成または変更された時を選択します。
トリガーの設定後は赤枠の3点ポチを押下し、無限トリガーループが発生しないように設定します。
※無限トリガーループとは
Power Automateの無限トリガーループとは、フローの実行が終了する前に、同じフローが再びトリガーされることで、無限にフローが実行され続ける問題です。
下記キャプチャ赤枠部分の項目に以下の式を入力してください
式:@equals(triggerbody()['button'],'true')
次にChatGPTでの文章要約で使用する変数を作成します。変数を初期化するアクションを2つ配置してください。
1つ目の変数の初期化アクションには、ChatGPTのAPIキーを取得します。
PowerAutomateでChatGPTを使用するには、ChatGPT APIキーが必要です。
APIキーの取得方法は、弊社コラム「Power AutomateでChatGPT API使ってみた!」に詳細が記載されているのでぜひご覧ください。
取得したAPIキーを以下のキャプチャの通り記載します。
値の部分にAPIキーを記載してください。
2つ目の変数の初期化のアクションには、ChatGPTへの指示(プロンプト)を記載します。
今回はShare Pointリストに記載した、「案件進捗内容」を要約します。トリガーで取得した、案件進捗内容(赤枠部分の動的な値)を格納し、どのような要約を実施してほしいか記載しましょう。
今回は、文語体で、時系列と数字を意識したプロンプトを記載いたしました。
あなたは進捗報告レポート作成のプロフェッショナルです。下記の「」の文章を簡潔に分かりやすく文語体で作成してください。
作成時は3つのポイントを意識してください。
①3~5行程度で文章を要約してください。また時系列順に記載してください。
②またタスクの完了、未完了を分けてください。
③売上などの数字は必ず記載してください。
ここはご自由に記載いただけますが、以下の3つを意識すると良いでしょう。
- 要約の目的を明確にする
- 要約の目的を伝えることで、適切な情報を提供してもらいやすくなります。たとえば、ビジネスミーティング用、レポート用、または個人的な理解のためなど、用途に応じた要約を求めます。
- 要約の長さを指定する
- 要約の長さや詳細度を指定すると、より希望に合った要約を得やすくなります。たとえば、1文、数行、または特定の文字数や単語数などです。
- 重要なポイントを指定する
- 時系列や期限、売上金額など消去してほしくない情報を明記しましょう。
以下にいくつかプロンプト例をご紹介します。
- 「このプロジェクトの進捗報告を要約し、上司への簡潔な報告書を作成してください。報告書には、完了したタスク、進行中の課題、今後の予定を含めてください。要約は3つの箇条書きで、各ポイントは1文以内で簡潔に説明してください。」
- 「以下の進捗報告を要約してください。報告は上司に提出するもので、主要な成果、直面している問題、および今後のアクションプランを含めてください。金額に関する情報は必ず含め、時系列に沿って各項目を整理して1段落でまとめてください。要約の長さは150文字以内に収めてください。」
これで前処理作成・Share Pointリストの情報を取得は完了です。
手順番号2-2のChatGPT Power Automateとの連携文章要約
Power Automateで下記のキャプチャの通り条件アクションとHTTPアクションを配置してください。
今回は、報告書送信ボタンが押下された場合のみ報告書の作成を実施したいので、条件アクションに動的な値である報告書送信を選択し、trueの場合のみChatGPTの文章要約と、メール送信を実施するようにします。
続いてHTTPアクションです。今回は以下のキャプチャの通り設定しました。ヘッダーAuthorizationには先ほど作成したAPIキーの変数を、本文の”content”には、ChatGPTへの指示変数を指定してください。
手順番号3の メール送信
続いては上長にメールを送信するアクションを設定します。メールの送信(V2)アクションを設置してください。
メールの本文は主に動的な値を利用して作成します。メール本文はHTMLで自由にカスタマイズ出来ますので、興味がある方はぜひデザインしてみてください。
今回は、HTTPアクションで取得した、案件進捗状況の要約部分のみ式を使用しております。
使用した式は以下の通りです。
trim(body('HTTP')?['choices'][0]?['message']?['content'])
この式は、HTTPリクエストのレスポンスボディからchoices[0].message.content
の値を取得し、その前後の空白を削除して返すというものです。
今回案件進捗状況の報告用に作成したHTMLは以下のキャプチャの通りです。
メールの送信(V2)で今回の開発内容は終了です。
それではShare Pointリストに案件進捗情報を格納し、どのような報告書が送信されるか確認しましょう。
実際に使用してみよう
先ほど作成した案件管理リストの新しいアイテムから以下の情報を入力しました。
入力が完了したら、赤枠の保存ボタンを押下します。
案件管理リストに情報が格納されていることを確認し、下記キャプチャ赤枠の「報告書作成」ボタンを押下してください。このボタンを押下するだけで、上長メールアドレスに設定したユーザーに報告書が送信されます。
送信されたメールを確認しましょう。
今回上長メールアドレスには、筆者のメールアドレスを設定しています。
案件管理リストに格納した値がメールに記載され、案件進捗状況が要約されています。
実際に入力した文章と、要約後の文章を見比べてみましょう。
SharePointリストに入力した文章
「2024/9/10 今後の契約に関してB社とMTG、好感触だったが追って連絡するとのことでした。
2024/9/1 新製品A100個をB社に納品した、B社ご担当の鈴木様から好評。今後も継続して納品を実施する予定。概算見積もりの作成は未完了、2024/9/3完了予定
2024/9/4 概算見積もりの作成を完了、9/1売上は1000000円、目標達成
2024/9/11 新製品A200個をB社に納品、B社のご担当者は田中様。売上予定額は200000円、納品予定日は2024/9/15、概算見積もり作成は未完了です。
2024/9/15 新規ご提案資料を作成した。現在レビューをいただいている。9/15納品予定だった、新製品A200個は未だ納品できていない。B社への共有ずみ。納品予定日は9/16
「注意」
今後のB社のご担当は田中 太郎さん。今後のご連絡は田中さんに実施する。
また9/1日の製品Aの売上は、900000円だった。計算を間違えた理由は、消費税を考えていなかったため。」
要約後の文章
・9/1 B社に新製品A100個を納品。売上900,000円(消費税未計算)。概算見積もり作成未完了(9/3完了予定)。
・9/4 概算見積もり作成完了。9/1の売上は1,000,000円、目標達成。
・9/10 B社と今後の契約に関してMTGを実施。好感触だったが、追って連絡待ち。
・9/11 新製品A200個納品(田中様担当)。売上予定200,000円。概算見積もり作成未完了。納品予定は9/15。
・9/15 新規提案資料作成完了。レビュー待ち。9/15の納品予定品は未納品、9/16に延期済み。
注意事項
・今後のB社担当者は田中 太郎様。
プロンプトで指示した通り、時系列順に簡潔にまとまっています。売上等の記載漏れもなく、わざと記載していた「でした。」「です。」の記載も消えています。
今回は用途に合わせて、簡単なプロンプトを記載しましたが、プロンプトをより精工に記載することで要約の質も向上します。また作成したShare Pointリストの列を増やすことで、報告時に記載できる内容が増え、案件管理表としても役立てることが出来ます。ご自身の業務内容に合わせて、プロンプト、SharePointリストをカスタマイズし、様々な仕様に適応が可能な拡張性がこのシステムの魅力でもあります。
おわりに
今回は、Share Point、Power Automate、ChatGPTで、日常で発生する雑務の効率化を行いました。この記事が皆さんの業務改善に少しでも役立てば幸いです。
RPA開発に限らず、ローコードノーコード開発、業務効率化に関しましても弊社は多数の支援実績がございます。興味がある方はぜひ弊社にご相談ください!
最新情報をお届けします!
RPAに関する最新コラムやイベント情報をメールで配信中です。
RPA領域でお仕事されている方に役立つナレッジになりますので、ぜび登録してください!
- September 2024 (2)
- August 2024 (4)
- July 2024 (1)
- June 2024 (2)
- May 2024 (3)
- April 2024 (1)
- March 2024 (1)
- February 2024 (1)
- January 2024 (1)
- December 2023 (1)
- November 2023 (2)
- October 2023 (3)