こんにちは.ふじえもんです.
この記事はデフエンジニアの会アドベントカレンダーの1日目の記事です(一番乗り!).
最近色々作ったので,この機にまずは表題について紹介してみます.
今回開発したツールのコードはhttps://github.com/shotafujie/arXiv2Discordにあります.
CloneしていただくなりForkしていただくなりすればすぐにでも活用いただけます.
各種ドキュメントもリポジトリ内に用意しておりますので必要に応じてご参照ください.
リポジトリへのStar⭐をつけていただいたり,各種SNSで拡散いただけるととても励みになります!
どんなもの?
arXiv2Discordは,arXiv論文を自動収集し,Perplexity AIで日本語要約を生成してDiscordチャンネルに投稿するツールです.
音声認識や補聴処理についての研究を追いかけることがあり,Google ScholarやScholar Inboxを活用した論文検索・レコメンドとは別に,日常的に使っているDiscordで気軽にキャッチアップできると嬉しいなと思い,作ってみました.
同じように気軽にキャッチアップしたいと思った方はぜひ一度使ってみてください!
なんでその技術を選んだか
- arXiv API(論文検索)
- 論文投稿サイトはいろいろありますが,論文メタデータ検索用のAPIが公開されているarXiv(計算機科学等の分野でよく使われる論文リポジトリ/プレプリントサーバー)から探してくるのが手っ取り早かったから
- Perplexity API(要約)
- Proプランに課金していて,月に$5までAPIが使えるから
- Discord(出力先)
- 普段からよく使ってるから
- フォーラムチャンネルを投稿先にすれば,自動であちこちのサーバーにもアナウンス(転送)することができるから
- GitHub Actions(上記の処理を定期実行)
- CRON式で定期実行するようにワークフローを組むことで,自分の欲しい時間帯に情報が届くようにできるから
- 筆者は出退勤時間に読めるように一日に2度,出退勤時間の前ぐらいに論文要約が配信されるようにしています
こだわったところ
多重投稿をさせない
- 投稿が済んだ論文は,都度jsonファイルにそのアドレスを追記するようにしています
ドキュメントの整備
- 複数のツールを使ったり,トークンなどの情報を取得する必要があったので簡単な解説を記載しました
- それから一連の処理の流れについても,コードだけでなく文章や図解から把握いただけるようにしました
- 生成AIを使ってドキュメント草案を作ってもらい,推敲することでかなりの時短ができました.Comet上で作業していたので,そのままリポジトリのリンクや適宜盛り込みたい内容を伝えてmarkdown形式で生成してもらいました.Mermaid記法での図解もサクッと作ってくれました👏
使い方
Perplexityに課金している方は,これ以上課金することなく無料の範囲内で使えます
課金せずに,APIだけ取得してきて使う場合の使用料の目安は,参考までに筆者が活用した範囲だと,月に80本ほど論文要約が配信されて,かかった費用は$1未満です
基本的に,必要な情報はREADMEにあります.補足資料もdocsフォルダ内にあります.
- リポジトリのクローン/フォーク
- GitHubリポジトリの設定からSecretで環境変数を設定
- ここで用いる環境変数は各自用意してください.手順はREADME内にあるドキュメントを見てください.
-
.github/workflows/announce.yamlにワークフローの実行タイミングを記載- 公開しているリポジトリでは,ワークフローが自動で動かないようにあえてコメントアウトしているので,コメントアウトを外して,適時希望の時間に合わせて貰えればOKです.
-
arxiv_settings.yamlにキーワードやカテゴリを設定 - これで設定に漏れがなければワークフローが定期実行されます
うまくいくとDiscordのアナウンスチャンネルに投稿されます
下図は,そのアナウンスチャンネルをフォローしているチャンネルに投稿が届いたときのスクショです

- リポジトリの実装はフォーラムチャンネルへの投稿を前提にしているので,テキストチャンネルに投稿したい方はその旨修正して活用ください
- 必要な情報はリポジトリ内にあるので,なにかうまく行かなかった場合は各々でAIを活用してリポジトリ内の情報を参照させるなどしてみてください
- ドキュメントに不備があるように見られる場合や実装に問題があると思われる場合はコメントかXで教えてください
最後に
- このワークフローを作成したことで,興味のある分野から,自分が読みたい/読むべき論文を選びやすくなりました!
- また,最近はどういうアプローチで研究されているのかがわかるようになりました