ChatGPT API × Power Automate 活用事例 – Teams 連携 による 承認フロー –

ChatGPT Teams 連携 - Power Automate 承認 セキュリティ対策 イメージ画像

 ChatGPT を、業務に取り入れて効率化を行うことを考えている方や、企業は多いのではないでしょうか。しかし、 ChatGPT を業務利用する上では、以下のようなセキュリティ面が気になるのではないでしょうか?

・個人のアカウントで、 ChatGPT を業務利用すること。
・業務上の機密情報を、 ChatGPT に入力すること。
・プライバシーに関わる内容を、 ChatGPT に入力すること。
・ ChatGPT の回答を精査・判断せずに、そのまま利用すること。

 こうしたセキュリティ懸念等より、 ChatGPT の利用制限や利用禁止する企業がいることもご存じかと思います。そこで本記事では、セキュリティ懸念を少しでも軽減し、組織で統制した形で ChatGPT API を使い、 Power Automate で Teams や 承認フロー と 連携 する方法を紹介します。

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 で チャットボット を作成~」を参照してください。

ChatGPT を利用する Power Automate クラウドフロー 要件

  Power Automate で ChatGPT と Teams を 連携 したクラウドフローを作成します。Microsoft365 の Teams を法人利用し、 ChatGPT と 連携 することを前提とします。これにより、 ChatGPT を個人のアカウントで業務利用しない形とします。

 また、質問者は ChatGPTへ 入力したいメッセージを、Teams の指定チャネルに投稿します。回答も、チャネルで受信します。

 セキュリティ対策として、質問者が投稿した内容について、 Power Automate で投稿を検知し、承認者が承認を行うようにしています。これにより、業務上の秘密情報や、プライバシーに関わる内容が ChatGPT へ入力されることを防止します。

 また、 ChatGPT からの応答メッセージについても、承認者が承認を行うようにしています。これにより、ChatGPT の回答を精査・判断せずに、そのまま利用することを防止します。

 以上を実現する、クラウドフローに関しては、次のような全体像になります。

作成手順

Power Automate ・ Teams ・ ChatGPT を 連携 したクラウドフローの作成手順を示します。 Power Automate でのトリガー作成や、アクション作成の詳細を示します。

①トリガーの追加

「チャネルに新しいメッセージが追加されたとき」をトリガーにします。

項目
チームトリガーにするチーム
チャネルトリガーにするチームのチャネル

②「ユーザー プロフィールの取得 (V2)」のアクションを追加

「ユーザー(UPN)」の項目に「メッセージfromユーザーID」を設定します。
これは、チャネルに質問を投稿したユーザーのメールアドレスを取得するためです。

項目
ユーザー(UPN)メッセージfromユーザーID
※①「チャネルに新しいメッセージが追加されたとき」から取得できる動的コンテンツ

③「メッセージ詳細を取得する」のアクションを追加

チャネルに追加された新しいメッセージの詳細を取得します。

項目
メッセージメッセージfromユーザーID
※①「チャネルに新しいメッセージが追加されたとき」から取得できる動的コンテンツ
メッセージの種類チャネル
Teamトリガーと同じチーム
Channelトリガーと同じチャネル

④「変数を初期化する」アクションを追加

OpenAI の WEBサイトより取得した、 ChatGPT の APIキーを設定します。

項目
名前APIKey
種類文字列
ChatGPTのAPIキー
関連記事

ChatGPT API の詳細は「ChatGPT 活用 ~ OpenAI の ChatGPT API で チャットボット を作成~」で紹介しています。

⑤承認アクションを追加

「開始して承認を待機」を使用します。

項目
承認の種類承認/拒否-最初に応答
タイトル任意のタイトル
担当者承認者のメールアドレス
詳細任意のメッセージ
例)
以下のChatGPT質問内容の承認/却下を行ってください。
Body PLainTextContent
※③「メッセージ詳細を取得する」から取得できる動的コンテンツ
要求元メール
※②「ユーザー プロフィールの取得 (V2)」から取得できる動的コンテンツ

⑥条件分岐を設定

承認者の選択によって分岐を行います。
「承認」を選択した場合は、 ChatGPT に入力メッセージを送信します。
「拒否」を選択した場合は、「拒否されました」という内容のチャットをチャネルに返信します。

項目
左辺結果
※⑤「開始して承認を待機」から取得できる動的コンテンツ
条件式次の値に等しい
右辺Approve

⑦-1 はいの場合

「HTTP」アクションを設定し、 ChatGPT の API を呼び出します。

項目
方法POST
URlhttps://api.openai.com/v1/completions
ヘッダー 1行目Content-Type      application/json
ヘッダー 2行目Authorization      Bearer APIKey
※③「変数を初期化する」から取得できる動的コンテンツ
本文{
“model”: “gpt-3.5-turbo”,
“messages”: [
{
“role”: “system”,
“content”: “日本語で返答してください。”
},
{
“role”: “user”,
“content”: Body PLainTextContent
※③「メッセージ詳細を取得する」から取得できる動的コンテンツ
}
]
}

※ChatGPTAPI仕様の補足

model:
利用する ChatGPT のモデルID。(“gpt-3.5-turbo”、”gpt-4″、…、等)

message:
ChatGPT に送るメッセージオブジェクトの配列。

オブジェクトには、role (AIへ送信するコンテンツの役割)と content (メッセージや指示)を指定。

role:
“system”, “assistant”, “user” の3タイプを指定。

  “user”: ユーザからのChatGPTへの質問文。
  “assistant”: ChatGPTからの回答。
  “sysytem”: ChatGPTへの指示。
  AI のキャラ設定などを content に細かく指示すると
  そのキャラクターになりきって回答してくれるようになります。

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

⑦-2いいえの場合

「チャネル内のメッセージで応答します」のアクションを追加します。
承認者がChatGPTに質問内容の入力を拒否したことを応答します。

項目
投稿者Flow bot
投稿先Channel
Message IDメッセージfromユーザーID
※①「チャネルに新しいメッセージが追加されたとき」から取得できる動的コンテンツ
Teamトリガーと同じチーム
Channelトリガーと同じチャネル
Message任意のメッセージ
例)
担当者から質問内容が却下されました。

⑧承認アクションを追加

「開始して承認を待機」を使用します。

項目
承認の種類承認/拒否-最初に応答
タイトル任意のタイトル
担当者承認者のメールアドレス
詳細任意のメッセージ
例)
以下のChatGPT質問内容の承認/却下を行ってください。
@{trim(body(‘HTTP’)?[‘choices’][0]?[‘message’]?[‘content’])}
要求元メール
※②「ユーザー プロフィールの取得 (V2)」から取得できる動的コンテンツ

⑨条件分岐の追加

承認者の選択によって分岐を行います。
「承認」を選択した場合は、 ChatGPT から得た回答メッセージをチャネルに送信します。
「拒否」を選択した場合は、「拒否されました」という内容のチャットをチャネルに送信します。

項目
左辺結果
※⑧「開始して承認を待機」から取得できる動的コンテンツ
条件式次の値に等しい
右辺Approve

⑩-1はいの場合

「チャネル内のメッセージで応答します」アクションを追加します。
ChatGPTからの回答内容を応答します。

項目
投稿者Flow bot
投稿先Channel
Message IDメッセージfromユーザーID
※①「チャネルに新しいメッセージが追加されたとき」から取得できる動的コンテンツ
Teamトリガーと同じチーム
Channelトリガーと同じチャネル
Message@{trim(body(‘HTTP’)?[‘choices’][0]?[‘message’]?[‘content’])}

⑩-2いいえの場合

「チャネル内のメッセージで応答します」アクションを追加します。
承認者が回答内容の表示を拒否したことを応答します。

項目
投稿者Flow bot
投稿先Channel
Message IDメッセージfromユーザーID
※①「チャネルに新しいメッセージが追加されたとき」から取得できる動的コンテンツ
Teamトリガーと同じチーム
Channelトリガーと同じチャネル
Message任意のメッセージ
例)
担当者から回答内容の表示が却下されました。

Teams 投稿後の ChatGPT 連携 ~運用イメージ~

 作成したフローの運用イメージです。Teams の指定チャネルに、 ChatGPTへ 入力したいメッセージを投稿します。内容に問題がない場合は、 Teams で通知されます。

① 質問者が質問投稿

まず、質問者が Teams の指定チャネルに、 ChatGPTへ 入力したいメッセージを投稿します。

②承認者に承認依頼の通知

メッセージが投稿されると、クラウドフローがトリガを検知し、承認者へ承認要求通知を送信します。

これに承認者が返答します。
「承認」の場合は、ChatGPTに質問をします。その後、応答メッセージの承認要求通知がきます。
「拒否」の場合は Teams へ拒否されたことを応答します。

「承認」の場合

「拒否」の場合

③ Teams へ応答内容の送信

承認者が応答内容へ対応します。
「承認」の場合は、 Teams へ ChatGPT からの応答メッセージを送信します。
「拒否」の場合は Teams へ拒否されたことを応答します。

まとめ

 本方式のように、サービスを組み合わせることによって、セキュリティ懸念を軽減しながら、 ChatGPT を活用していくことができます。業務内容によって、チャネルを使い分けたり、フローで承認を行わないようにすることも可能です。 ChatGPT の活用と同時に、セキュリティ対策を考えている場合は、ぜひ一度紹介の内容を試してみてください。

ZiDOKA AI

Teams を介した ChatGPT の組織活用が実現できます。
承認機能 や 機密情報保護といったセキュリティ対策を備えています。
ZiDOKA AI で ChatGPT 活用を始めましょう。