見出し画像

ZapierとChatGPTで記事を選別してSlackに流すRSSの作り方

SlackにRSSなどで記事を流すと、目的とは違ったものが取得されてしまうことはありませんか?

例えば、「他社の技術ブログの中からSREの記事だけが見たい」などのときです。実行するにはちょっとした工夫が必要です。

今回はそういったケースに対応するために、ChatGPTとZapierを組み合わせた記事の選別方法を紹介します。

今回はエンジニアの投稿記事から技術記事だけを選別した
この記事を書いているのは、↑で要望を投げている技術広報のmegayaです

そもそもこのZapierが実装されたのは、↑のような私のなんとなくのつぶやきが発端でした。

「エンジニアが書く技術記事だけチャンネルに流れるようにしたい」

とSlackで発言したら、エンジニアの田中さんが数分で実装してくれました。爆速王。

田中さんはnote AI CreativeというnoteのAI特化の子会社に所属しており、こういった生成AIなどによる業務改善を主導して行ってくれています。社内に業務改善を推進してくれるチームがいるのは本当に心強い。

では、ここからZapierでChatGPTを活用した記事の選別方法について解説していきます。仕組みがわかればZapierではなくとも、IFTTTなどの他サービスにも流用できるはずです。

※ この実装はLayerXさんの記事を参考にして作られました

実装方法

※ 3は内部的な仕組みを利用しているので非公開
非公開部分を抜いても実装は可能です

ステップ1: Slackの投稿を拾う

noteでは #info-note-noteのみんな というチャンネルに、全社員のnote記事が流れるようになっています。今回はそのSlackチャンネルに流れている情報を取得して、技術記事かどうかを選別します。

この記事と同じように実装したいと思っている方がいたら、SlackにRSSで記事情報を集約するチャンネルを作ってから実装してみてください。もちろん直接RSSから情報を取得してもOKです。

ステップ2: 記事の情報を取得

記事のAPIを利用したり、URLからGETなどを使用したりして、記事の本文が取得します。取得した記事本文は次のステップで利用します。

ステップ3: Markdownに変換

取得した記事の本文をMarkdown形式に変換します。Markdown形式にすることで、後の処理や表示が簡単になります。

ステップ4: LLMで技術記事か判定

次に、ChatGPTを利用して記事が技術記事かどうかを判定します。技術記事かどうかの判定は0か1で返してもらうようにしています。

こうすることで、Zapierでtrue or falseの判定をしやすくしているのです。プロンプトは以下の通りです。

与えられた文章が、以下条件に該当する場合1、そうではない場合は0を出力せよ。結果は0か1のみを出力すること。

# 条件
ソフトウェア技術、あるいはそれに関連する取り組みに関係する。

# 記事
タイトル:{{ APIで取得した記事のタイトル }}
本文:
{{ APIで取得した記事の条件}}

ChatGPTの判定結果が1(技術記事)であれば、次のステップに進みます。判定結果が0(技術記事でない)であれば、処理を中止します。

技術記事であればSlackに投稿して完了

まとめ

ZapierとChatGPTを活用することで、業務の効率化を図ることができました。簡単なのでぜひ実装してみてください。

note AI Creativeは2023年の12月に設立されましたが、こういった業務改善を積極的に行っています。社内改善を行ってくれるチームが存在してくれることが、一種の福利厚生のような状態なので非常にありがたい。


▼note株式会社では、LLMエンジニアとLLM Opsエンジニアを積極採用中

▼noteの技術記事が読みたい方はこちら


note社で働くことに興味がある方は、ぜひカジュアル面談からご応募ください