科学論文ジャーナル(Nature、Science等)のRSSフィードを定期的に取得し、新着論文をGemini APIでサマライズしてSlackに通知するシステムです。
- RSS取得: Nature、ScienceのRSSフィードから最新論文を自動取得
- 論文詳細取得: アブストラクト、著者情報、研究機関を含む詳細情報の取得
- AI要約: Gemini APIによる日本語での論文サマライズ(200-300文字)
- Slack通知: 毎日朝9時(JST)に最大10件の論文を通知
- フィルタリング: キーワードベースの論文フィルタリング機能
- フィードバック収集: Slackボタンによるリアルタイム評価収集
- AI分析: Gemini APIによるフィードバックパターン分析
- 自動フィルター更新: AI分析結果に基づく自動フィルター改善
- AWS Lambda統合: サーバーレスフィードバック処理
- GitHub Issues連携: フィードバックデータの永続化
git clone [your-repo]
cd rss_ai_reporteruv venv
source .venv/bin/activate # Linux/Mac
uv pip install -r requirements.txt.env ファイルを作成して以下を設定:
# Gemini API Configuration
GEMINI_API_KEY=your_gemini_api_key_here
# Slack Configuration
SLACK_WEBHOOK_URL=https://hooks.slack.com/services/YOUR/WEBHOOK/URL
# GitHub Configuration (自動更新用)
GITHUB_TOKEN=ghp_your_github_token_here
GITHUB_REPO=your_username/rss_ai_reporter
# Slack Signing Secret (フィードバック検証用)
SLACK_SIGNING_SECRET=your_slack_signing_secret_heredata/filter_config.jsonでキーワードフィルタを設定できます:
{
"include": ["CRISPR", "quantum", "AI"],
"exclude": ["review", "correction", "retraction"]
}include: これらのキーワードを含む論文のみを通知exclude: これらのキーワードを含む論文を除外
.github/workflows/summarize.ymlでスケジュールを変更できます。
デフォルトは毎日朝9時(JST)です。
.
├── .github/
│ └── workflows/
│ └── summarize.yml # GitHub Actions設定
├── src/
│ ├── rss_fetcher.py # RSS取得
│ ├── content_fetcher.py # 論文詳細取得
│ ├── summarizer.py # Gemini APIサマライズ
│ ├── slack_notifier.py # Slack通知
│ └── main.py # メイン処理
├── data/
│ ├── last_check.json # チェックポイント
│ ├── queue.json # 未処理キュー
│ └── filter_config.json # フィルタ設定
├── requirements.txt # Python依存関係
├── README.md # このファイル
└── CLAUDE.md # プロジェクト仕様
- API制限エラー: Gemini APIの無料枠制限に達した可能性があります
- RSS取得エラー: ネットワーク接続を確認してください
- Slack通知エラー: Webhook URLが正しいか確認してください
GitHub Actionsの実行ログで詳細なエラー情報を確認できます。
MIT License