有料のX APIを使わずに、毎朝AIニュースの朝刊を自動で作る仕組み
有料のX API(Xのデータをプログラムから読むための公式の仕組み)を使わなくても、AIニュースの朝刊は毎朝自動で作れました。使っているのは、AIアシスタントの Grok Bot に組み込まれた公開ポストの無料の読み取りで、上限は1分に30回、1日に1,000回です。朝刊1回で使うのは十数回から25回ほどなので、上限にはまったく届きません。
AIのトレンドだけ知りたかった
AIまわりのニュースはXを見ていればだいたい追えます。ただ、Xを自分で読むのが面倒で、私が知りたいのはAI関連のトレンドだけです。そこで、Xの公開ポストを毎朝集めて「AIニュースの朝刊」として届けてもらう仕組みを作りました。10月16日の朝から毎日動いています。
毎朝7:17に届く2段構えの朝刊
定時処理は毎朝7:17(マニラ時間)に動きます。前日の朝からの約24時間を対象に、トピックを変えながら検索して、重複を除いてまとめます。1回あたりの読み取りは十数回から25回ほどで、上限よりかなり少なく済んでいます。
最初は細かいニュースだけを頼んでいました。大手の発表はほかでも目に入るので、小さめのツール、論文、OSS(誰でも使えるよう公開されたソフトウェア)、開発者の発見を網羅してほしかったからです。ただ、やっぱりメジャーなニュースも欲しくなって、届け方を2段構えに変えました。
- 主要ニュースは1通のメッセージにまとめて届ける
- 細かいニュースは1行の親メッセージを送って、そのスレッドに全文を入れる
細かいニュースは毎日45〜75件くらいあるので、チャットに全部流すと埋もれてしまいます。親メッセージは1行だけにして、読みたいときにスレッドを開く形にしたら、ちょうどよくなりました。
前日と同じ話題は「続報」にする
毎日まとめていると、同じ話題が何日も続けて出てきます。新しいモデルが発表されると、翌日にはベンチマークの結果や対応ツールの話が出てくる、という具合です。
そこで、前日までに取り上げた話題は、新しい動きがあるものだけを「続報」として載せて、同じ内容の繰り返しは外すようにしました。前日の朝刊に入っていた可能性があるものを外した日は、そのことが報告に書かれてきます。
やってみて分かったこと
APIの課金を避けられた
公開ポストを読むだけなら、公式APIの課金を通らなくても毎日回せました。上限の1日1,000回に対して、朝刊1回で使うのは多くても25回くらいです。
要約はポストの本文だけが元になる
限界は、要約がポストの本文とXのニュースまとめだけを元にしていることです。リンク先の記事は開いていません。本文が途中で切れているポストも多いので、細かい数字や条件はリンク先で確かめる必要があります。報道ベースの話(たとえば、ある企業のIPO(株式の新規上場)申請の話)も、本文に書かれているとおりに要約されるだけです。
そのため、細かいニュースのスレッドの頭には「ポスト本文ベースの要約です」と毎回入れてもらっています。各項目には元のポストへのリンクが付いているので、気になったものだけ元をたどっています。
重複の判定は話題の単位で考える
同じ話題を複数の人がポストしているのは当たり前なので、同じ日の中の重複は1件にまとめます。難しいのは日をまたいだ重複で、これは前日までに何を載せたかを覚えておかないと判定できません。今は前日までの朝刊と照らし合わせて、新しい動きがあるかどうかで決めています。
網羅してほしいと頼んではいますが、暗号資産の宣伝や、「保存版リスト」系の釣りっぽいポストは外れています。
私は細かいニュースも全部読むほうなので、毎朝スレッドを開いて上から順に読んでいます。
実は、遠回りしていた
ここまで書くとすんなり作れたようですが、最初はかなり遠回りをしていました。
最初に考えたのは、公式のX APIで検索することでした。ところが、今のX APIはプリペイド制で、無料枠がありません。使った分だけ前払いのクレジットが減っていくので、毎朝何十回も検索すると、そのまま毎月の出費になります。自分のアカウントに紐づく情報が欲しいわけでもないので、そのためにXにお金を払い続けるのは避けたいと思いました。
次に、AIエージェント(指示を受けて自分で操作まで進めるAI)のブラウザでXにログインして読ませようとしました。こちらは、メールアドレスを入れて「Continue」を押しても、エラーも出ずに何も起きません。Xが自動操作の環境と判定して、ログインを止めているようでした。押し方を変えてどうにかなるものではなかったので、ブラウザの方法はあきらめました。
結局使ったのは、Grok Bot に組み込まれている、公開ポストの無料の読み取り機能です。ログインもお金もいりません。そのかわり上限があって、1分に30回、1日に1,000回までです。
初回は検索15回で、直近24時間のニュースを54件集められました。1日の残りは983回だったので、毎朝1回動かすぶんには余裕があります。
1時間の格闘のあとで
振り返ると、あの日はXのログイン画面と1時間以上格闘していました。最後に「AI関連トレンド知りたいだけだし」とこぼしたら、返ってきたのは「公開ポストを読むだけなら、(中略)ログインもお金もいりません」でした。最初にそれを言えばよかったのは、たぶん私のほうです。