21

投稿日

更新日

ChatGPTとMakeを使ってGmailの返信を自動化してみる

•_Discord____ai___なんでもかんでもやればいいってわけじゃない.png

こんにちは!逆瀬川 ( https://twitter.com/gyakuse ) です。
今日はメールの自動返信作成をMake(ツール連携サービス)を使ってやってみたいと思います。

※MakeとはZapierやIFTTTと同じIPaaS系のサービスです。

参考

概要

Gmailに来た新着メールをMakeとChatGPT APIを使い返信文章候補を作成します。

そもそもできそうかの確認

OpenAIのChatGPT API Playgroundを使って、これができるか確認してみます。
なお、text-davinci-003はChatGPT API(gpt-3.5 turbo)の10倍の価格なので、今回は用いません
追記: 脳死で書いてたのであれですが、MakeはまだChatGPT APIに対応していないのでtext-davinci-003を使います。

以下のようなプロンプトを実行しました

以下のビジネスメールの重要度を5段階評価し、内容を要約し、返信を作成してください

Sender: 株式会社クローズドAI
Address: contact@closedai.com
Subject: 美味しさに感動した牛乳について
Content: 尊敬するホゲホゲ乳業の皆様

私は先日、貴社の牛乳を購入しました。その牛乳を飲んで、その美味しさに感動しましたので、このメールをお送りさせていただきました。

私が購入した牛乳は、濃厚でクリーミーな味わいが特徴的でした。牛乳本来の風味がしっかりと感じられ、まるで牧場で生産されたような本格的な味わいに感じました。また、何よりも口当たりがとても滑らかで、飲みやすかったです。朝食に飲む牛乳は、私にとって欠かせないものですが、この牛乳は朝から幸せな気分にしてくれました。

今までいくつかの牛乳を試してきましたが、今回購入した牛乳は、断トツで一番美味しい牛乳だと思います。このような素晴らしい製品を作っている貴社に敬意を表し、このメールを送らせていただきました。

今後も、貴社の製品に注目していきたいと思います。この度は、素晴らしい製品を提供してくださり、誠にありがとうございました。

重要度と要約と返信案:

今回はSystemは空とします。以下のように返答が生成されました。

重要度:3

要約:クローズドAI社がホゲホゲ乳業に送った、美味しい牛乳についての感謝のメール。

返信案:尊敬するクローズドAI様、貴重なご意見ありがとうございます。私たちは、美味しい牛乳を提供することを目指して日々努力しています。今後も、より良い製品を提供できるよう努めてまいります。また、クローズドAI様にもご満足いただける製品を提供できるよう、社員一同精進してまいります。この度は、誠にありがとうございました。敬具

よさそうなので使っていきます。

Make Integration

Gmailモジュール(メールの受信処理)

Makeに登録して新しいシナリオを作ります。

My_Team___Make.png

中央の追加ボタンをクリックして、Gmailを選択します。

New_scenario___Make.png

メール受信のtriggerを選びます。

New_scenario___Make.png

Gmailアカウントと接続します。
自分の場合は個人のGoogleアカウントとの接続だったため、以下のドキュメントに従い、
Google Cloudで専用のプロジェクトを作り、Gmail APIを有効化し、OAuth画面を作成します(ここが一番めんどくさいです)。

Google Cloudで専用プロジェクトを作り、Gmail APIを有効化しOAuth画面を作成する方法

基本的には以下を参考に進めれば大丈夫です。念の為日本語で書きます。

まずGoogle Cloudにアクセスします。

上部の「プロジェクトを作成」をクリックして適当な名前でプロジェクトを新規作成します(わたしはforMakeという名前にしました)。

トップに戻り、左上のメニューをクリックし、さきほど作成したforMakeを選択します。これで現在のプロジェクトが切り替わります。

ようこそ_–My_First_Project–_Google_Cloud_コンソール.png

次に以下URLへ飛び、Gmail APIを有効化します。

Gmail_API_–マーケットプレイス–forMake–_Google_Cloud_コンソール.png

次にOAuth同意画面を作成します。以下URLへ飛び、外部を選択。

アプリ名にMake、ユーザーサポートメールに自分のメールアドレス、
承認済みドメインに以下のドメインをそれぞれ追加、デベロッパーの連絡先に自分のメールアドレスを追加してください。

  • integromat.com
  • make.com

他の情報は空白で大丈夫です。終わったら一番下の「保存して次へ」をクリックします。
次にスコープを追加します。
「スコープを追加または削除」をクリックし、下にあるスコープの手動追加欄のテキストボックスに以下を貼り付けます。

https://mail.google.com/
https://www.googleapis.com/auth/gmail.labels
https://www.googleapis.com/auth/gmail.send
https://www.googleapis.com/auth/gmail.readonly
https://www.googleapis.com/auth/gmail.compose
https://www.googleapis.com/auth/gmail.insert
https://www.googleapis.com/auth/gmail.modify
https://www.googleapis.com/auth/gmail.metadata
https://www.googleapis.com/auth/gmail.settings.basic
https://www.googleapis.com/auth/drive
https://www.googleapis.com/auth/drive.readonly

「テーブルに追加」をクリックすると反映されます。
終わったら更新ボタンを押してください。
「保存して次に」をクリックし次へ進みます。

テストユーザー画面では、「Add Users」をクリックし、自分のメールアドレスを追加します。
「保存して次に」をクリックすると、ステータスの確認ができます。問題なければ一番下の「ダッシュボードに戻る」をクリックしてください。

次に、以下URLの認証情報の画面で、認証情報を作成をクリックします。
OAuthクライアントIDを選択してください。

認証情報_–API_とサービス–forMake–_Google_Cloud_コンソール.png

アプリケーションの種類にウェブアプリケーションを選び、承認済みのリダイレクトURIに以下を追加します。

https://www.integromat.com/oauth/cb/google-restricted

追加したら作成ボタンを押してください。
完了すると、以下のような画面になります。

認証情報_–API_とサービス–forMake–_Google_Cloud_コンソール.png

このクライアントIDとクライアントシークレットを使います。

Gmailモジュール(メールの受信処理)(続き)

先程のMakeの画面でAddボタンを押します。

Integration_Gmail___Make.png

詳細設定をクリックします。

Integration_Gmail___Make.png

クライアントIDとクライアントシークレットを入れるフォームが出てくるので、さきほど保存しておいたそれらを貼り付けます。貼り付け終えたらSaveします。

SaveするとGoogleの認証画面になります。アカウントを選ぶと、以下のような注意が表示されます。自分がさきほど作った認証画面なので、続行を押します。

ログイン_-_Google_アカウント.png

フォルダ、Criteria、Maximum number of resultsをいじってokを押します。
自分はフォルダにInboxを選びました。

Integration_Gmail___Make.png

Choose Where to start は From now onにします。
完成したGmail Moduleの右に生えるボタンを押して次のモジュールを追加します。

Integration_Gmail___Make.png

GPTモジュール

追加ボタンを押し、Add another moduleをクリックします。

Integration_Gmail___Make.png

OpenAIと入力し、選択します。

Integration_Gmail___Make.png

Create a Completionを選択します。

Integration_Gmail___Make.png

アカウントの追加画面です。Addを押します。

Integration_Gmail__OpenAI__DALL-E___ChatGPT____Make.png

https://platform.openai.com/account/api-keys
OpenAIの鍵を新しく作り、貼り付けます。

貼り付けたらsaveします。

Modelはtext-davinci-003を選択し、プロンプトに以下を貼り付けます。

Sender: 
Address: 
Subject: 
Content: 

重要度と要約と返信案:

以下の矢印のそれぞれをドラッグアンドドロップで配置します(赤くハイライトされている部分はドラッグ可能です)。

Integration_Gmail__OpenAI__DALL-E___ChatGPT____Make.png

貼り付けると以下のようになります。

Integration_Gmail__OpenAI__DALL-E___ChatGPT____Make.png

Max Tokenに1024, Temperatureに0.7と入れます。
全体像がこちらです。

Integration_Gmail__OpenAI__DALL-E___ChatGPT____Make.png

なお、この実装だとText Contentを含め4096tokens以上の場合死ぬので、substring関数を選び、Text Contentを1000文字に収めます。

Integration_Gmail__OpenAI__DALL-E___ChatGPT___Discord___Make.png

以下のように修正します。

Integration_Gmail__OpenAI__DALL-E___ChatGPT___Discord___Make.png

OKを押して次に行きます。

Discord Module

追加ボタンを押下後、Discordと入力すると以下が候補として出てくるのでクリックします。

Integration_Gmail__OpenAI__DALL-E___ChatGPT____Make.png

Send a Messageを選択します。

Integration_Gmail__OpenAI__DALL-E___ChatGPT____Make.png

アカウント画面でAddを押すと以下が出てくるので、Saveを押します。

Integration_Gmail__OpenAI__DALL-E___ChatGPT___Discord___Make.png

Discordのログインをして、認証します。

Discord___アカウントへのアクセスを許可します.png

Choose a Methodで Send a Message to a Channelを選び、
Channel IDに任意のチャンネルを選びます。

Message欄に以下を貼り付けます。

New Message
From:

===

さきほどと同様、貼り付けていきますが、Choicesは▼を押して中のtextを貼り付けてください。

Integration_Gmail__OpenAI__DALL-E___ChatGPT___Discord___Make.png

choices[ ]text となっているので、そこに1という文字をいれます(API使ったことある人は0を入れてしまうと思いますが、これだとエラーで1だとOKです)。
全体像は以下です。

Integration_Gmail__OpenAI__DALL-E___ChatGPT___Discord___Make.png

最後にScheduleをONにして完了です。

確認

ちゃんと動いているかDiscordで確認します。

•_Discord____ai___なんでもかんでもやればいいってわけじゃない.png

後記

実は今回はじめてMakeを使ったのですが、30分くらいの作業でメール返信自動化(候補作成まで)を行えました。
もっと頑張りたい場合、メール分類用のGPT-3.5の処理を入れて、問い合わせだったら、予定調整だったら、宣伝と思われるものだったら、みたいに分岐させるとよいです。

新規登録して、もっと便利にQiitaを使ってみよう

  1. あなたにマッチした記事をお届けします
  2. 便利な情報をあとで効率的に読み返せます
ログインすると使える機能について

コメント

この記事にコメントはありません。
あなたもコメントしてみませんか :)
新規登録
すでにアカウントを持っている方はログイン
21