ChatGPT APIと自動化ツールを組み合わせて記事の翻訳と要約をしてくれるワークフローを作ってみた

2023.03.27

この記事は公開されてから1年以上経過しています。情報が古い可能性がありますので、ご注意ください。

ChatGPTの初学者、prismatix 事業部の中村です。

自動化ツールの Make と ChatGPT API が簡単に連携できるようになっていたので試してみました。

Make について

Make

Make(旧:Integromat) は世の中の様々なSaaSを簡単に繋ぎ合わせることができる自動化ツールです。 ブラウザ上でワークフローを構築することができ、コーディングはほぼ不要です。

Make にはSaaSと簡単に繋げるためのモジュールが沢山用意されており、LINE や Slack, Gmail 等と繋ぎ合わせることができます。 ChatGPT API と繋ぐモジュールも追加されたようなので、今回はそれを使ってみます。

細かい設定は弊社の記事を参考にしてください。

ノーコードツール(Make:旧Integromat)を使ってユーザー登録用のLINE botを作ってみた

試したシナリオ

Make では一連のフローをシナリオとして登録することができ、その中に配置する一つ一つの操作をモジュールと呼ぶようです。 各モジュールで処理を行い次のモジュールにデータを渡すというのを繰り返し構築していきます。

今回作ったシナリオは下記で、RSSを取得して翻訳し要約したのをLINE通知してもらいます。

左から順に

  1. AWS ニュースブログのRSSを取得
  2. Text parser でRSSレスポンスからHTMLタグを除去
  3. ChatGPT API に本文を要約するようリクエスト
  4. LINE Notifyで自分宛てに通知

となっています。1つずつ見ていきます。

RSS取得

Make のモジュール設定は簡単で、利用したいモジュールをクリックするだけで設定項目が表示されます。 今回は AWS ニュースブログ RSSを取得したかったのでURLを指定し、取得件数は一旦1にしました。

Text parser

AWS ニュースブログ RSSのレスポンスを見ると、 Description に本文が入っていたのですがHTMLタグも混在しており、ノイズになるので除去します。 Text parser モジュールでタグ除去までやってくれるようなので、設置してRSSモジュールからデータを受け取るよう繋いで設定します。

HTMLのフォームにRSSのレスポンス項目 Description を指定することで、取得した RSS レスポンスの Description の内容が Text parser モジュールに渡されて、除去された本文が次のモジュールに渡されます。

ChatGPT API

HTMLタグが除去されて本文を抽出できたので、ChatGPT API に渡します。 OpenAI モジュール では、ChatGPT API の下記を実行できるようです。

  • Create a Completion
    • 提供されたプロンプトまたはチャットに対する補完を作成します。
  • Create a Moderation
    • テキストがOpenAIのコンテンツポリシーに違反しているかどうかを分類します。
  • Create an Edit
    • 与えられた入力、指示、パラメータに対して新しい編集を作成する。
  • Generate an Image
    • プロンプトを指定すると、DALL-Eが描かれた画像を生成します。
  • Make an API Call
    • 任意の認可APIコールを実行する。

今回は Create a Completion を利用します。 モジュールを設置してから最初に OpenAI への設定をする必要があります。

API Key」「Organization ID」を公式から取得しフォームに貼り付けるだけです。

次はAPIの設定です。 私は下記のように設定してみました。

Model に gpt-3.5-turbo-0301 を指定し、 System Role には弊社の記事を参考にプロンプトを記載してみました。

与えられたフィードの情報を、以下の制約条件をもとに要約を出力してください。

制約条件:
・文章は簡潔にわかりやすく。
・箇条書きで3行で出力。
・要約した文章は日本語へ翻訳。
・最終的な結論を含めること。

期待する出力フォーマット:
1.
2.
3.

User Role にてHTML タグを除去した本文(text)を指定するのですが、全文入れると長くなりトークンエラーが発生します。 なので substring() を利用して、3000文字ほどに削ってた本文を指定します。

これだけで、ChatGPT API を呼び出してくれます。

LINE への通知

LINE への通知は LINE notifyを利用します。 LINEモジュールを追加し、「Send a Notification」 というアクションを選択すれば LINE の設定画面のリダイレクトされるので、そこでログインして通知したいチャンネルを指定するだけです。

通知内容に関しては、 ChatGPT API のレスポンスとURLを貼り付けているだけです。

動かしてみる

Make にはテスト用に Run once というボタンが用意されていますので試してみると、このように通知が届きました。

AWS Week in Review – March 20, 2023 の要約らしいですね。 実際の記事をみると、S3 Object Lambda や Outposts について記載されてるので要約出来てそうですが、3000文字に削った影響か後半の Neptune やKendra 等は要約に含まれていませんね。 これは今後取り扱えるトークン数が増えることに期待しましょう。

作成したシナリオは、RSS に新しいItemが追加された時やスケジュール実行することも可能なので、記事が追加される度に要約を読むことができます。

まとめ

ChatGPT API と Make を繋ぎ合わせてノーコードで要約をLINE通知することができました。 今回はRSSをトリガーにしましたが、これを他のアプリケーション、例えばSlackやGmailやカレンダーにすることも可能ですし、出力先も柔軟に変更可能です。

UIもシンプルで分かりやすいので、システムに詳しくなくてもさくっと作れるのはすごいですね。 是非みなさんも試してみてください。

参考

https://qiita.com/sakasegawa/items/d8fb1889cdc77d050c01

https://happy-nap.hatenablog.com/entry/2023/02/11/220235