論文自動収集 Slack Bot

2025年11月 - 現在

趣味
Screenshot 1
Screenshot 2
プロジェクト概要

研究者が研究概要を入力するだけで、生成AI(Ollama)を用いて関連する論文を自動収集・通知するSlack Botを開発しました。研究タイトルと概要を登録すると、LangChainとOllamaを使用してarXiv API用の検索クエリを自動生成し、定期的に新着論文を検索してSlackに通知します。Slack Boltを使用してSlackアプリとして実装し、モーダルUIで研究情報の登録・表示・削除が可能です。APSchedulerを使用して30分間隔で自動実行し、SQLModel/SQLAlchemyを使用してデータベースに研究情報を永続化しています。

アーキテクチャ

PythonとSlack Boltを使用してSlack Botとして実装しました。LangChainとOllamaを使用して研究概要からarXiv API用の検索クエリを自動生成し、feedparserとarxivライブラリを使用して論文を取得します。APSchedulerを使用して定期実行を実現し、SQLModel/SQLAlchemyを使用してSQLiteまたはPostgreSQLに研究情報を保存します。Slack BoltのSocket Modeを使用してリアルタイムでイベントを受信し、モーダルUIで研究情報の管理を行います。依存性注入にはinjectorを使用し、Pydanticを使用して型安全な設定管理を実現しています。

技術的挑戦
  • LangChainとOllamaを使用した検索クエリの自動生成 → 研究概要から適切なarXiv検索クエリを生成するプロンプト設計と、LLMの出力を安定させるための調整
  • Slack BoltのモーダルUIとイベント処理の実装 → モーダルの状態管理と、複数の起動方法(コマンド、ショートカット、App Home)への対応
  • 定期実行とデータベース管理の実装 → APSchedulerを使用した定期実行の実装と、SQLModelを使用したデータモデルの設計