Makeシナリオで生成AIへのプロンプト送信を自動化
August 7, 2024
概要
Make(旧Integromat)の簡単なシナリオを使って、OpenAIへのプロンプト送信を自動化しましょう。 どのように動作するかの手順を説明します。この投稿では、Make(旧Integromat)を使ってOpenAIへのプロンプト送信を自動化する方法を紹介します。
Makeシナリオで生成AIへのプロンプト送信を自動化
Make(旧Integromat)の簡単なシナリオを使って、OpenAIへのプロンプト送信を自動化しましょう。 どのように動作するかの手順を説明します。
ChatGPTのような生成AIツールは、日々の業務を効率化するための素晴らしいリソースです。しかし、もしまだすべてのプロンプトをChatGPTに直接入力しているのであれば、時間を無駄にしているかも知れません。よく使うプロンプトを自動化すれば、生成AIはさらに速く便利になります。
この投稿では、Make(旧Integromat)を使ってOpenAIへのプロンプト送信を自動化する方法を紹介します。
Gmailの受信トレイにあるメールを要約する、という簡単な例を使い、MakeでOpenAIのプロンプトを自動化してみます。 MakeでOpenAIモジュールがどのように動作するのかを学べば、他のどんなアプリにも接続できるようになります。
概要: MakeでOpenAIプロンプトを自動化する方法
最初に、MakeでOpenAIプロンプトを使う方法の概要を説明します。 その後、シナリオの例を挙げながら、プロセス全体を詳しく説明します。
1. 新しいシナリオを作成し、トリガーモジュールを追加する。
2. プロンプトに追加データが必要な場合は、必要に応じて検索モジュールを追加する。
3. OpenAI モジュールを追加し、 イベントとして "Create a completion" を選択する。
4. プロンプトを設定する。 必要に応じて、以前のステップで取得した動的データを含める。
A. 言語モデルを選択する。
B. AIに一般的な指示を与えるために、必要であればシステムメッセージを追加する。
C. 特定のプロンプトを含むユーザーメッセージを追加する。
D. Top PとTemperatureにより、モデルのクリエイティビティを調整する。
5. AIの出力を他のアプリに送るためのモジュールを追加する。
このチュートリアル内容の実施に必要なもの
このチュートリアルを進めるには、MakeとOpenAIのアカウントが必要です。
OpenAI API へのリクエスト送信には少額の料金が発生します。
詳細はOpenAIのAPI価格ページをご覧ください。
さらに、すべての新しい OpenAI アカウントには、API 使用のための 5ドルのクレジットが含まれています。 すでに5ドルを使い切ってしまった場合は、OpenAI APIポータルにログインし、"billing overview "から支払い方法を追加してください。
Open AIのAPIは2024年6月現在、毎月の使用量に応じた重量課金です。また、まだお持ちでない場合は、無料のGmailアカウントも必要です。
シナリオ: AIが生成するEメール要約
これが、本記事で構築するオートメーションです:
このオートメーションは、Gmail内のメールに「要約」ラベルが追加されると、自動的にEメールの内容をOpenAIに送信し要約をリクエストします。 面白半分に、すこし皮肉っぽい要約を要求してみましょう。 生成された要約はEメールの返信として到着します。
このチュートリアルで紹介するシナリオは、Makeでの自動化の方法を理解するためのものです。 以下で各ステップの目的を解説しますので、実際に使うアプリに切り替えて試してみたり、シナリオに別のアクションを追加してみましょう。
もしOpenAIとMakeを使うのが初めてであれば、以下のステップをなぞることで各機能に慣れていくことをお勧めします。
プロンプトに送るデータを収集するためのトリガーを追加
まず、Makeを開き、新規のシナリオを作成します。
自動化シナリオで最初に作るのはトリガーです。 トリガーは自動化がいつ実行されるかを決定します。
生成AI自動化用の新しいトリガーを作成するときは、いつプロンプトを実行したいか、プロンプトを作成するときにどのアプリからデータを取得したいかを決めましょう。これらの選択によって、トリガーに使用するアプリと、使用する特定のイベントが決まります。
この例では、「Gmailで 『要約』ラベルが付いたメールを受信するたびにプロンプトを実行」したいとします。 このためには、MakeでGmailの "Watch emails "トリガーを使います。
もちろんその前に、Gmailで 『要約』"ラベルを作成し、それをメールに適用する必要があります。
テストデータの作成:Gmailに新しい 「要約」ラベルを追加する
Gmailにアクセスし、要約するメールを開き、テストに使うメールを選びましょう。
メール上部のラベルアイコンをクリックし、新しく「要約」ラベルを作成し、メッセージに追加します。
これでテストデータの準備は完了です。 Makeのシナリオ作成画面に戻りましょう。
トリガーの設定
トリガーに使用するアプリを選択します。 ここではGmailを使用し、イベントとして "Watch Emails "を選択します。
Gmail アカウントを選択するか、Gmail をまだ Make に接続していない場合は新しい接続を追加します。 Make を使用してアプリケーションを自動化する場合は、必ずユーザーに代わって Makeが接続することを認証する必要があります。
Gmailが認証されたので、トリガーの設定を開始します。
すべての新しいメールに対して自動化を実行するのではなく、「要約」ラベルを持つメールに対してのみ自動化を実行します。
Gmailはカスタムラベル用にフォルダを作成するので、この「Click here to choose folder」ボタンをクリックして対応するフォルダを選択します。
表示されるリストから「要約」フォルダ(画面上は”Summerize”)を選択します。 これにより、オートメーションは「要約」フォルダにあるメールのみを処理するようになります。
トリガーを設定する際、誤って予期せぬ環境で自動化がされないよう、できるだけ具体的に設定されてあることを確認してください。
次に、Make は「フィルターの種類」を設定するオプションを提供します。
クエリーを入力してMakeが監視するメールをさらに限定したい場合は、これをGmail filter”に変更することもできます。 しかし、この例では”Smiple filter”のままにしておきます。 トリガーを「要約」フォルダに限定すれば十分です。
“Criteria”のプルダウンで、トリガーを全てのメールに対して実行するか、未読メッセージのみに対して実行するか、既読メッセージのみに対して実行するかを選択することができます。 この例では、"All"を(このメールも含めたすべて)選択します。
最後に、返す結果の最大数(Maximum number of results)を設定することができます。
設定ウィンドウの下部で警告メッセージが表示されますが、この数値を高く設定しすぎると、Makeが多くの結果を処理するのを待っている間にアプリがタイムアウトしてしまう可能性があります。簡単にテストするために、またシナリオが一度に1つのメールしか処理しないように、制限を1にすることをお勧めします。
トリガーのテスト
トリガーの設定が完了したら、"OK "をクリックしてこのウィンドウを閉じます。
次にトリガーをテストします。 トリガーをテストすると、この設定に一致するデータを検索するようシナリオに指示します。 この場合、MakeはGmailの受信トレイから「要約」ラベルの付いたメールを検索します。 そして、そのメールのデータを使って残りのオートメーションを構築することができます。
テストを開始するには、モジュールを右クリックし、"Choose where to start "を選択します。 トリガーウインドウを初めて閉じたときにも、自動的に "Choose where to start "メニューが表示される場合があります。
“Select the first email”(最初のメールを選択)をクリックします。 これは、Makeがデフォルトで選択するのではなく、手動で使用するメールを選択することを意味します。次に、表示されるリストからメールを選択します。 受信トレイから「Summarize(要約)」ラベルの付いたメールがすべて表示されるはずです。”OK”をクリックして選択を確定し、このウィンドウを閉じます。
次に、左下の "run once"(一度だけ実行)をクリックし、トリガーモジュールを実行します。
テストが実行された後、トリガモジュールの上に、いくつのバンドルデータを取得したかを示す数字が表示されます。 バンドルとは、モジュールが処理したオブジェクトを指します。 この場合、各バンドルは Gmail のメールですが、他のトリガーでは、Google Sheetsの行、Shopify の商品、Slack のメッセージなどさまざまなオブジェクトを指定できます。
番号をクリックすると、データの詳細が表示され、トリガーが正しいメールを処理したことが確認できます。
問題がなければ、シナリオに自動アクションを追加することができます。 目的のメールが見つからなかった場合は、正しいラベルを適用し、そのラベルがトリガーのフォルダとして選択されていることを確認してください。
オプションの検索を追加して、AIプロンプトのためのデータをさらに収集する
このGmailトリガーモジュールがあることで、このシナリオに必要なデータはすべて揃いました。プロンプトを作成するには、Eメールと、OpenAIモジュールに直接入力するその他の指示が必要です。
しかし、独自のカスタムプロンプトに追加データが必要な場合は、そのデータを検索するステップを追加することができます。
例えば、CRM や Airtable データベースでメールの送信者を調べたい場合などです。新しいモジュールを追加し、検索したいアプリを選択し、適切な検索アクションを選択するだけで、プロンプトに含めたいデータを見つけることができます。
しかし、今回のチュートリアルで必要なデータはすべて揃っているので、このまま続けてOpenAIのプロンプトを追加します。
OpenAIに自動プロンプトを送信する
では、実際にOpenAIにプロンプトを送信するシナリオの部分を作りましょう。
新しいモジュールを追加し、"OpenAI "を検索します。 Makeでは、OpenAIモジュールは現在 "OpenAI (ChatGPT, Whisper, DALL-E) "という名前になっています。
アクションは、"Create a Completion"(完成応答を生成)を選択します。 このアクションにより、シナリオはOpenAIにプロンプトを送信し、AIの応答を得ることができます。
OpenAIのアカウントを選択するか、新しいアカウントをMakeに接続します。
OpenAI API の価格
念のためお伝えしておきますが、OpenAIのAPIを利用するには支払い方法を登録しておく必要があり、Makeでのテストも含め、リクエストごとに料金が発生します。 最初にOpenAIの新規アカウントを開設することで、5ドル分のAPIクレジットが付与されます。
2024年7月現在のOpenAIの価格設定に基づくと、今回のチュートリアルと同じ設定をすべて使用する場合、このシナリオでは各リクエストに数セント以下の料金しか発生しません。
Make での OpenAI プロンプトの設定
アカウントを選択したら、モジュールの設定を始めましょう。
まず、OpenAIに使わせたい言語モデルを選択する必要があります。 モデルによって、価格、速度、使用できるコンテキストの量、その他特徴が異なります。各モデルの詳細については、OpenAIのAPIドキュメントを参照してください。
このチュートリアルでは、GPT3.5 turbo 16kを使うことをお勧めします。 このモデルは料金が非常に安く、コンテキストの量が多いのが特徴なので、長い文章を要約するオートメーションの構築とテストに適しています。
もちろんGPT4の方が一般的には良いモデルですが、価格も約10倍高いので、ここではGPT3.5ターボを利用します。
システムメッセージでAIのアイデンティティを定義する
次に、AIに行動を指示し、完了を促すプロンプトを与えます。 メッセージ "Add item"(アイテム追加)をクリックします。
最初の項目は、AIが一般的にどのように振る舞うべきかを指示する「システム」メッセージとなります。これは厳密には必要ではありません。 システムメッセージを提供しない場合、AIはデフォルトで「親切なアシスタント」というアイデンティティになります。 しかし、より具体的なスタイルやトーンが必要な場合は、最初にシステムメッセージで定義することができます。
役割として”System”(システム)を選択します。
“Message Content”(メッセージの内容)フィールドには、AIがリクエストにどのように応答すべきか、どのようなIDを想定するかを記述します。 ここには何でも入力することができます例えば、「あなたは生意気なアシスタントです。リクエストには的確かつ親切に答えますが、口調は皮肉っぽく、軽薄で、遊び心があります。」と書くこともできます。 AIにもう少し個性を持たせても問題はありません。
ユーザーメッセージでプロンプトを作成する
オプションのシステムメッセージの後に、特定のプロンプトを記述することができます。項目を追加し、"Role"(役割)ドロップダウンを "User"(ユーザー)に設定します。 つまり、ChatGPTにプロンプトを入力するユーザの役割をメッセージに持たせます。
“Message Content”(メッセージの内容)には、プロンプトの全文を入力することができます。 トリガーやオプショナルサーチのデータを含めるようにしてください。
この例では、メールの要約を求めるプロンプトを入力します。 次に、自動化のトリガーとなったメールから、件名、送信者名とメール、本文(Makeでは「テキストコンテンツ」と呼ばれます)の主要なデータを提供します。
高度な設定でOpenAIのオートメーションを調整する
“Show advanced settings”(詳細設定を表示)をクリックすると、OpenAIのプロンプトを設定するためのオプションがいくつか表示されます。
まず、使用するトークンの最大数を定義することで、レスポンスの長さを制限することができます。 1,000トークンは約750ワードに相当します。
注:このチュートリアルを準備している間に、このフィールドが説明どおりに動作しない可能性があることが判明しました。 デフォルトが16トークンと記載されているにもかかわらず、オートメーションは200以上のトークンで構成される回答を提供しています。 16トークンは非常に短い回答なので、ここでの「16」は16,000を意味する可能性があるのでご注意ください。
「Temperature」と「Top P」でAIの創造性を調整する
“Temperature”と”Top P”では、AIがどの程度クリエイティブな回答をするかを0~1の間で設定できます。 どちらの設定も数値が低いほど、事実に忠実で、創造性に欠ける回答になります。
どちらもデフォルトは1なので、ある程度正確な答えを得たい場合は、0.7程度に下げるとよいでしょう。
この数値を0に設定しても、AIが100%正確な回答を生成することが保証されているわけではないためご注意ください。生成AIにはどうしてもハルシネーションが付きものです。
応答が何個生成させるかを選択
“Number”(個数)のフィールドに、AIが応答に何個の回答を含めるかを指定します。デフォルトでは1ですが、数値を上げて試行回数を増やすことも可能です。
“Echo”(エコー)では、AIが応答の最初に入力したプロンプトをエコーバックするかどうかを選択できます。 ここでは”No”(いいえ)を選びます。
最後に、必要に応じて "Other Input Parameters" (その他の入力パラメータ) の下にカスタムパラメータを追加できますが、これは少し高度なため、ほとんどのプロンプトでは必要ありません。
メッセージの準備ができたら OK をクリックし、シナリオ全体をテストします。 注意点として、テストは Make アカウントのオペレーション数を消費し、OpenAI の API から少額の課金が発生します。
OpenAI プロンプトのテスト
先ほどと同じテストプロセスを繰り返します。 トリガーモジュールを右クリックし、"Choose where to start "を選択し、"Select the first email "をクリックします。
メールを選んでOKをクリックし、"Run once"(1回だけ試行)をクリックします。 OpenAIモジュールの上に数字が表示されるはずです。
それをクリックすると、OpenAIが入力したプロンプトに対して生成したメッセージを見ることができます。 ”Choices"、"1"、"message "の下に出力があります。
上の写真で、とうとうの内容を見ることができます。入力時に求めたように、確かに少し生意気な性格を装ってはいるものの、それでもかなり良い要約と言えます。
OpenAIのレスポンスを他のアプリに送る
“Completion "アクションは、プロンプトに対するレスポンスを正しく生成しているはずです。 これで、その応答を好きな場所に送ることができます。
Slackのメッセージとして投稿したり、AirtableのデータベースやGoogle Sheetsに保存したり、Notionのページに追加したりももできます。
この例では、AIの出力を、要約された電子メールの元の受信者に電子メールで送り返します。
そこで新しいモジュールを追加し、Gmailを検索します。 そして、アクションとして "Send an email "(メール送信)を選択します。”To"フィールド(宛先)には、固定メールアドレスを入力するか、元のメールの受信者にメールを送り返すかを選択します。
件名には次のように入力します: 「AI要約: [元のメールの件名]". トリガーのデータを使って、元のメールから正しい件名を動的に生成します。
最後に、メッセージを作成します。
"AIが生成した「[件名]」メールの要約です:"
“subject”をトリガーで取得された実際のサブジェクトに置き換えます。 そして、この簡単なメッセージの後に、AIの出力を追加します。 これは「Choices(選択)」>「Message(メッセージ)」>「Content(内容)」にあります。
モジュールの設定が終わったら、OKをクリックして閉じます。
もう一回、前と同じ手動プロセスでテストします。 これで、受信トレイをチェックすると、生意気なAIが要約したメッセージが表示されます。
すべて問題なさそうなので、Makeに戻ってオートメーションを保存し、それをオンにすれば使い始めることが可能です。
AIと自動化で一貫した信頼性の高いワークフローを構築する
私たちの多くにとって、AIは日々のワークフローに欠かせない存在に急速になりつつあります。 私たちが毎日使っている他のアプリと同じように、自動化によってワークフローをより速く、より一貫性のある、より信頼性の高いものにすることが可能です。
今日紹介した簡単な例をもとに、MakeとChatGPTのようなツールを組み合わせると何ができるかを探ってみてください。