86
75

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

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

Last updated at Posted at 2023-03-06

•_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の処理を入れて、問い合わせだったら、予定調整だったら、宣伝と思われるものだったら、みたいに分岐させるとよいです。

86
75
6

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
86
75

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?