ChatGPT API × Power Automate 活用事例 – Forms からの 問い合わせ 自動応答 –

Power Automate と ChatGPT 事例 : TOP画像

 ChatGPT を個人単位の利用ではなく、業務・組織で組み込んで活用するために、 Power Automate を使った連携を考えていきます。本記事では、 Power Automate で できること ・ 活用事例 として、 Forms と ChatGPT を連携して問い合わせ対応を効率化する Power Automate フローを説明します。サービス構成として Power Automate・ Forms ・ ChatGPT ・ Outlook を使い、 Forms で入力された問い合わせ内容を ChatGPT の利用で回答を得て、メールで返送するフローを作成してみます。

目次

ChatGPT と Forms を使った Power Automate 活用事例

Power Automate とは

ChatGPT と Power Automate の条件

作成するフローの要件

ChatGPT と Power Automate を使った業務フローの作成

運用イメージ

ChatGPT を使ったフロー自動化による効果

ChatGPT と Forms を使った Power Automate 活用事例

Power Automate とは

 Microsoft365を契約されている方の中には、Microsoft Officeサインイン後のトップページで Power Automate を見たことがあるという方もいらっしゃるのではないでしょうか。 Power Automate はアプリやサービスとの間に自動化されたワークフローを作成することができるサービスです。

  システムを使っている業務では、フローが自動化されているケースも多いと思いますが、システム化されていない業務や細かな作業は、メールやチャットを駆使して手動でフローを実現することも多いですよね。そんな状況も、 Power Automate を利用すればすぐにフローを作成し運用することができますよ。

関連記事

Power Automate で できること や 活用事例 は「 Power Automate ・ Power Automate for Desktop で できること 活用事例」でも多く紹介しています。

スマートワーク を実現するための事例を「 スマートワーク 実現 ~ ChatGPT ・ Power Automate をはじめとした活用事例 ~」で紹介しています。

ChatGPT と Power Automate の条件

 本記事では、 ChatGPT と Teams ・ SharePoint を Power Automate で連携させます。 ChatGPT と Power Automate に関して下記の条件があります。

条件説明
ChatGPTChatGPT API を利用します
Power Automateプレミアム コネクタを利用します。
プレミアム コネクタは、Microsoft 365 ライセンスには含まれていません。
Power Automate ライセンスの スタンドアロン プランが必要です。

 弊社では、 Power Automate ライセンスの販売から、サポートまでトータルで行っています。ChatGPT API の組み合わせ支援も可能ですので、お気軽にお問い合わせください
 また、ChatGPT API の詳細は「ChatGPT 活用 ~ OpenAI の ChatGPT API で チャットボット を作成~」を参照してください。

作成するフローの要件

 今回のフローは Power Automate ・ Forms ・ ChatGPT API ・ Outlook を使います。
 Power Automate で ChatGPT API と Teams に承認を組み合わせて、フローを作成することもできます。関連記事を例として確認してみてくださいね。

 
関連記事

ChatGPT API と Teams に承認を組み合わせた業務フロー作成は「 ChatGPT を Teams 連携 – Power Automate 承認 で セキュリティ対策」で紹介しています。

 

作成するフローの概要

  1. Forms より登録された質問を受信し、受信を契機に Power Automate が起動します。
  2. Power Automate が受け取った質問内容を ChatGPT に送信し、回答を生成します。
  3. Forms 送信者のメールアドレスに ChatGPT が生成した回答を送信します。


作成するフローに関しては次の点を要件にします。

  • Forms を利用し、質問を送信すること。
  • ChatGPT の API を利用し、質問と回答の送受信を行うこと。
  • Outlook を利用し、 ChatGPT が生成した回答を通知すること。

 イメージはこのようになります。

 使用する Forms の内容は以下です。 質問を2つ用意します。

画像クリックで拡大表示

Forms の作り方は、本記事ではふれていないので、確認したい方は下記を参照してみてくださいね。

関連記事

Forms の詳しい作成方法・使い方は「 Microsoft Forms の 使い方 解説 ~誰でも簡単にアンケートを作成する方法~」で紹介しています。

 

作成する Power Automate の完成図です。

画像クリックで拡大表示

 ChatGPT からの回答を送信するメールの例です。

画像クリックで拡大表示

ChatGPT と Power Automate を使った業務フローの作成

 Power Automate の設定を行うことでフローを作成していきます。
 組織の権限によって実行できない場合は、組織の管理者へ確認してくださいね。

①フロー作成
 Power Automate を起動し、「作成」から「自動化したクラウドフロー」を選択します。
 「フロー名」には任意のフロー名を入力し、フローのトリガーには Microsoft Forms の「新しい応答が送信されるとき」を選択します。
 最後に「作成」をクリックします。

 「作成」をクリック後の画面です。 

画像クリックで拡大表示

テンプレートの利用
 自分が作成したいフローをテンプレートから探してみるのも、フロー作成方法の一つです。
 今回のように Forms の受信を契機に Power Automate を起動させたい場合、「 Forms 」と検索してみると、作成したいフローに近いテンプレートが見つかるかもしれません。
 以下では、Forms 受信後に Outlook でメールを送信するテンプレートを選択しています。

画像クリックで拡大表示

 テンプレート選択後の画面です。 

画像クリックで拡大表示

 

 テンプレートから作成すると、アクションが組まれている状態で作成されます。

 今回は一から作成する手順で進めます。

 ②受信した Forms の詳細を取得
  「新しい応答が送信されるとき」アクションの「フォームID」に、今回利用する Forms を指定します。

  「応答の詳細を取得する」アクションを追加し、「フォームID」に、今回利用する Forms を指定します。
  「応答ID」には、動的なコンテンツから「応答ID」を選択します。
  こちらの設定により、受信した Forms の回答内容を取得することができます。

画像クリックで拡大表示

③変数の設定
 OpenAI API key の値と、 ChatGPT に送信する質問内容を変数に設定します。

 ・OpenAI API key の値
 「変数を初期化する」アクションを追加します。
 「名前」には任意の変数名を設定します。今回は「APIKey」とします。
 「種類」には「文字列」を選択します。
 「値」には OpenAI API key の値を入力します。

 OpenAI API key の取得方法については「 ChatGPT 活用 ~ OpenAI の ChatGPT API で チャットボット を作成~」をご覧ください。

画像クリックで拡大表示

 ・ ChatGPT に送信する質問内容
 「変数を初期化する」アクションを追加します。
 「名前」には任意の変数名を設定します。今回は「ChatQuestion」とします。
 「種類」には「文字列」を選択します。

画像クリックで拡大表示

 

 「値」には下記のように変数とテキスト文言を組み合わせて設定しています。

設定する変数記載するテキスト文言
質問対象を教えてください。について答えてください。
質問を記載してください。に関することのみ答えてください。
質問を記載してください。

 設定する変数の「質問対象を教えてください。」の部分は、動的なコンテンツから「質問対象を教えてください。」を選択します(赤枠部分)。

画像クリックで拡大表示

 
 同様に、設定する変数の「質問を記載してください。」の部分は、動的なコンテンツから「質問を記載してください。」を選択します(黄枠部分)。

 実際に、設定した変数の値を確認してみます。
 例えば Forms で以下のように送信した場合、

画像クリックで拡大表示

 変数としては以下のように設定されます。

Power Automate クラウドフローについて答えてください。
Power Automate クラウドフローに関することのみ答えてください。
Forms を受信後に Outlook でメールを送信するフローを作成してください。


 ChatGPT への質問を 「 Power Automate クラウドフローについて」に限定することができました。
 ですが、 ChatGPT は必ずしも正確な情報を提供するわけではありませんので、その点はご注意ください。

④条件分岐
 「条件」アクションを追加します。
 Forms の送信者(質問者)が anonymous (匿名)かどうかを判定します。
 Forms の送信者のメールアドレスを解析し、 anonymous でなければ処理を続けるように設定します。

画像クリックで拡大表示

 Forms の送信者のメールアドレスを取得します。
 左辺には、動的なコンテンツから「Responders’ Email」を選択することで実現できます。

 中央の判定条件には「次の値に等しくない」を選択します。
 右辺には、「 anonymous 」と入力します。

画像クリックで拡大表示

 以上で、Forms の送信者が anonymous (匿名)かどうかを判定することができます。

 Forms の設定が「リンクにアクセスできるすべてのユーザーが回答可能」になっていると、 Forms の送信者が anonymous になる場合があります。「自分の所属組織内のユーザーのみが回答可能」に設定すると、送信者が識別できます。
 本フローを使用する場合は Forms の設定に注意してください。
 本フローでは、 Forms の送信者が anonyumous の場合、これ以降何も行わずフローを終了します。

⑤ ChatGPT へ質問を送信
 条件分岐の「はいの場合」( Forms の送信者が anonyumous ではない場合)のルートに処理を追加していきます。
 「HTTP」アクションを追加します。

画像クリックで拡大表示

 「方法」には「POST」を選択します。
 「POST」を指定する理由は、 ChatGPT へリクエストを送信して新しいデータを作成するためです。

 「URL」には「https://api.openai.com/v1/chat/completions」を入力します。

 「ヘッダー」には下記のように設定します。

画像クリックで拡大表示

 
 「Content-Type 」に 「application/json」を指定する理由は、リクエストの本文がJSON形式であることを示すためです。
 「Authorization」に 「Bearer APIkey」を指定する理由は、APIキーを使用して認証を行うためです。
 「Bearer」は、APIキーを使用してリクエストを送信するための権限を持っています。
 「API Key」は動的なコンテンツから③で設定したOpenAI API key の値を設定します。

 「本文」は下記のように定義しています。
 ★の部分はご自身の環境に合わせて設定してください。

{
“model”: “gpt-4”,
“messages”: [
{
“role”: “system”,
“content”: “日本語で返答してください。”
},
{
“role”: “user”,
“content”: ★ ChatGPT に送信する質問内容で設定した変数(本記事では「ChatQuestion」)★
}
]
}

 「“model”: “gpt-4”」で、 ChatGPT の利用モデルを設定しています。
 本記事では GPT-4 を利用しています。

 「“role”: “system”」とは、 ChatGPT の応答や振る舞いを制御するための指示を出す役割を持ち、
 「“content”」で、日本語で返答するように設定しています。

 「“role”: “user”」とは、ユーザーが ChatGPT に対して質問や指示を出す役割を持ち、
 「“content”」で質問内容を設定しています。

 その他にもいくつかパラメータが提供されていますが、パラメータについては公式ドキュメントを参考にしてください。https://platform.openai.com/docs/api-reference/chat/create

⑥メールの送信
 ChatGPT からの回答を整形して、 Forms の送信者にメールを送信します。

「宛先」には④条件分岐で設定した値と同様に、動的なコンテンツから「Responders’ Email」を選択します。

画像クリックで拡大表示

「件名」には「Microsoft Form Response: 」と入力後、動的なコンテンツから「応答ID」を選択します。
応答IDとは、 Forms の回答を特定するための一意の識別子です。

画像クリックで拡大表示

 「本文」には下記のように変数とテキスト文言を組み合わせて設定しています。

記載するテキスト文言設定する変数
質問対象:質問対象を教えてください。
質問  :質問を記載してください。
<回答内容>trim(body(‘HTTP’)?[‘choices’][0]?[‘message’]?[‘content’])

 「質問対象を教えてください。」の部分は、動的なコンテンツから「質問対象を教えてください。」を選択します(赤枠部分)。

画像クリックで拡大表示

 
 同様に、「質問を記載してください。」の部分は、動的なコンテンツから「質問を記載してください。」を選択します(黄枠部分)。

 <回答内容>の値には以下の「式」を入れています。
 trim(body(‘HTTP’)?[‘choices’][0]?[‘message’]?[‘content’])

 ChatGPT の応答から情報を取り出すには、trimという式を使います。
 取り出す際は下記のように指定します。
 trim(body(‘HTTP’)?[‘choices’][0]?[‘message’]?[‘content’])

 trim(body(‘HTTP’)の部分では、「HTTP」アクションでの出力結果を指定しています。
 ?[‘choices’][0]?[‘message’]?[‘content’])の部分では、出力結果から答えのみ抽出するために、対象の文字列の位置を指定しています。

「HTTP」のアクションでの出力結果は下記のとおりです。
trim(body(‘HTTP’)?[‘choices’][0]?[‘message’]?[‘content’])と指定することで、 ChatGPT からの回答のみ取得することができます。

画像クリックで拡大表示

運用イメージ

 作成したフローの運用イメージです。

① Forms で質問を送信
 用意した Forms に質問したい内容を入力して送信します。

画像クリックで拡大表示

② ChatGPT からの回答を質問者のメールアドレスに送信
 件名、質問内容、回答内容を指定した形で送ることができました。

画像クリックで拡大表示

ChatGPT を使ったフロー自動化による効果

 今回は Power Automate と ChatGPT を組み合わせたフローの概要を知っていただくために、特定分野に特化した Forms を用意することで、専門知識を問い合わせする仕組みを構築しました。これを、みなさまの分野に置き換えてカスタマイズすることもできますし、 Forms 以外と組み合わせた活用も考えられるのではないでしょうか。
 フローの自動化により、必要な作業が簡単になりますし、抜け・漏れ・誤りの軽減や問い合わせ時間の減少が見込め、業務効率化を実現することができますね。
 ぜひあなたも Power Automate と ChatGPT の連携を活用してみてはいかがでしょうか。

Power Automate をはじめとした業務自動化の、ご相談を承っています。
ご相談・お見積りは無料です。お気軽にお問い合わせください。