mcpField
A
ai-news-digest

ai-news-digest

github.com/konatatech生産性170 回インストール37 週間前に更新
リポジトリ

ai-news-digest について

ai-news-digestは、英語と中国語のRSSソースからAIニュースを集め、類似記事を除いて順位付けします。Markdownダイジェストを作成し、メール送信やObsidianへの保存もできます。

主な機能

  1. 01複数のRSSソースからニュースを収集
  2. 02類似記事を重複排除
  3. 03新しさと重要度で順位付け
  4. 04MarkdownとHTMLのダイジェストを作成
  5. 05メール送信とObsidianへの保存
  6. 06時間・日・週単位の期間指定

活用シーン

  1. 01毎日のAIニュースダイジェストを作成
  2. 02直近数時間の速報を確認
  3. 03週次のAIニュースまとめを作成
  4. 04ダイジェストをObsidianに保存

インストール

コマンドをコピーしてターミナルで実行します。

$npx skills add https://github.com/konatatech/ai-news-digest-skill --skill ai-news-digest

インストール後、Claude Code で/ai-news-digestを入力して読み込まれたか確認します。

同梱ファイル

SKILL.md と一緒にインストールされる参考資料やスクリプト。

requirements.txt
assets/
example_asset.txt
config/
output.json
sources.json
references/
advanced_usage.md
api_reference.md
scripts/
ai_helper.py
enhance_content.py
example.py
fetch_news.py
generate_digest.py
process_news.py
test_components.py
test_digest.py

詳細

AI News Digest スキル

概要

このスキルは、8 つ以上の信頼できる情報源(英語と中国語の両方)から AI ニュースを自動的に集約し、記事の重複をインテリジェントに排除して重要度順にランク付けし、Markdown 添付ファイル付きのメールでフォーマット済みのダイジェストを配信します。

主な機能:

  • 🌐 マルチソース集約(RSS ベースで、スクレイピングの問題なし)
  • 🧹 スマートな重複排除(類似度の検出)
  • 📊 インテリジェントなランキング(注目度スコア、新しさ、重要度)
  • 📧 HTML と Markdown 添付ファイル付きのメール配信
  • 📝 Obsidian の保管庫に自動保存
  • ⏰ 柔軟な期間設定(1 時間ごと、毎日、毎週)

クイックスタート

今日のダイジェストを生成してメールで送信
cd /data/workspace/TsunagiConfig/skills/ai-news-digest
python scripts/generate_digest.py

これにより、以下が実行されます。

  1. 過去 24 時間のニュースを取得
  2. 記事の重複を排除してランク付け
  3. HTML メールと Markdown ファイルを生成
  4. 設定済みのメールアドレスに送信
  5. Obsidian に保存(設定されている場合)
過去 6 時間の速報を取得
python scripts/generate_digest.py --hours 6
週間まとめ(過去 7 日間)
python scripts/generate_digest.py --days 7

ニュースソース

ソース種類RSS フィード言語
Hacker Newsテクノロジーニュースhttps://hn.algolia.com/api/v1/search_by_date?tags=story&query=AIEN
TechCrunch AI業界https://techcrunch.com/category/artificial-intelligence/feed/EN
The Verge AIコンシューマーテクノロジーhttps://www.theverge.com/ai-artificial-intelligence/rss/index.xmlEN
OpenAI Blog公式https://openai.com/blog/rss.xmlEN
机器之心研究https://www.jiqizhixin.com/rssCN
量子位業界https://www.qbitai.com/feedCN
AI科技评论学術(カスタム RSS)CN
36氪AIビジネス(カスタム RSS)CN

すべてのソースは、安定性を確保するために RSS フィードを使用しています(ウェブスクレイピングに伴う SSL の問題はありません)。

使用例

1. 手動で一度だけダイジェストを生成
# Default: last 24 hours, send email, save to Obsidian
python scripts/generate_digest.py

# Last 12 hours, no email
python scripts/generate_digest.py --hours 12 --no-email

# Last 3 days, custom output path
python scripts/generate_digest.py --days 3 --output ~/Desktop/ai_digest.md
2. 毎日のダイジェストをスケジュール実行(Cron)
# Add to crontab: Daily at 8 AM
0 8 * * * cd /data/workspace/TsunagiConfig/skills/ai-news-digest && python scripts/generate_digest.py --hours 24
3. Python モジュールとして使用
from scripts.fetch_news import fetch_all_news
from scripts.process_news import deduplicate_and_rank

# Fetch news from last 48 hours
articles = fetch_all_news(hours=48)
print(f"Fetched {len(articles)} articles")

# Process and rank
top_articles = deduplicate_and_rank(articles, top_n=15)

# Generate Markdown
from scripts.generate_digest import format_markdown
markdown = format_markdown(top_articles)
print(markdown)
4. メールのみ(ファイル出力なし)
from scripts.generate_digest import send_digest_email

articles = [...]  # Your processed articles
send_digest_email(
    articles=articles,
    recipient="[email protected]",
    subject="AI News Digest - 2024-01-15"
)

設定

メール設定(任意)

メール配信を追加する場合は、config/email.json を編集します。

{
  "smtp_host": "smtp.example.com",
  "smtp_port": 587,
  "sender": "[email protected]",
  "auth_code": "your-smtp-auth-code",
  "recipient": "[email protected]"
}

注: メール機能は任意です。このスキルはメール機能なしでも動作し、Markdown レポートのみを生成します。

ニュースソース

ソースを追加または削除するには、config/sources.json を編集します。

{
  "sources": [
    {
      "name": "Hacker News",
      "url": "https://hn.algolia.com/api/v1/search_by_date?tags=story&query=AI",
      "type": "api",
      "language": "en",
      "enabled": true
    },
    {
      "name": "机器之心",
      "url": "https://www.jiqizhixin.com/rss",
      "type": "rss",
      "language": "zh",
      "enabled": true
    }
  ]
}
Obsidian 連携

config/obsidian.json を編集します。

{
  "vault_path": "/data/workspace/obsidian/Daily Notes",
  "enabled": true,
  "filename_format": "AI Digest - {date}.md"
}

出力形式

Markdown の構造
# AI News Digest - 2024-01-15

**Time Range:** Last 24 hours  
**Total Articles:** 38 → 15 after deduplication  
**Generated:** 2024-01-15 08:00:00

---

## 🔥 Top Stories (Score ≥ 8.0)

### 1. OpenAI Announces GPT-5 with Multimodal Reasoning
- **Source:** OpenAI Blog | **Published:** 2 hours ago
- **Score:** 9.2/10 | **Category:** Product Launch
- **Summary:** OpenAI unveiled GPT-5, featuring advanced multimodal reasoning capabilities across text, images, and audio. The model shows significant improvements in complex problem-solving tasks.
- **Link:** [Read More](https://openai.com/blog/gpt-5-announcement)

---

## 📊 Industry News (Score 6.0-7.9)

### 2. Google DeepMind's AlphaFold 3 Predicts Protein Structures
...

---

## 🌏 Chinese AI Updates

### 8. 字节跳动发布新一代大模型"豆包Pro"
- **来源:** 量子位 | **发布:** 5小时前
...

---

## 📈 Statistics
- Total sources checked: 8
- Articles fetched: 38
- After deduplication: 15
- English articles: 10
- Chinese articles: 5
メールの HTML 形式
  • すっきりとしたレスポンシブ HTML デザイン
  • クリック可能な見出し
  • カテゴリバッジ(🔥 注目、📊 業界、🌏 中国語)
  • Markdown ファイルを .md として添付

コマンドラインオプション

python scripts/generate_digest.py [OPTIONS]

Options:
  --hours N          Time range in hours (default: 24)
  --days N           Time range in days (overrides --hours)
  --output PATH      Output Markdown file path
  --send-email       Send via email (default: true)
  --no-email         Skip email sending
  --save-obsidian    Save to Obsidian (default: true if configured)
  --top-n N          Number of top articles to include (default: 15)
  --min-score FLOAT  Minimum score threshold (default: 5.0)
  --debug            Enable debug logging

よくあるタスク

ニュース取得のテスト
python scripts/test_digest.py

出力:

✓ Fetched 16 articles from Hacker News
✓ Fetched 22 articles from 机器之心
✓ Total: 38 articles
✓ After deduplication: 15 articles
RSS フィードの問題をデバッグ
from scripts.fetch_news import test_single_source

# Test a specific source
test_single_source("https://www.jiqizhixin.com/rss")
カスタムのスコアリングアルゴリズム

scripts/process_news.py を編集します。

def calculate_score(article):
    score = 0.0
    
    # Recency (0-3 points)
    hours_ago = (datetime.now() - article['published']).total_seconds() / 3600
    if hours_ago < 6:
        score += 3.0
    elif hours_ago < 24:
        score += 2.0
    else:
        score += 1.0
    
    # Keyword boost (0-4 points)
    hot_keywords = ['GPT', 'OpenAI', 'breakthrough', 'AGI']
    for keyword in hot_keywords:
        if keyword.lower() in article['title'].lower():
            score += 1.0
    
    # Source authority (0-3 points)
    authority_map = {
        'OpenAI Blog': 3.0,
        'Hacker News': 2.5,
        '机器之心': 2.5
    }
    score += authority_map.get(article['source'], 1.0)
    
    return min(score, 10.0)

トラブルシューティング

問題:記事が取得されない
# Check internet connectivity
curl -I https://www.jiqizhixin.com/rss

# Test RSS parsing
python -c "import feedparser; print(feedparser.parse('https://www.jiqizhixin.com/rss'))"
問題:メールが送信されない
# Test email config
node /data/workspace/send_report_email.js

# Check SMTP credentials in config/email.json
問題:重複記事が多すぎる

scripts/process_news.py で類似度のしきい値を調整します。

SIMILARITY_THRESHOLD = 0.75  # Lower = stricter deduplication (default: 0.8)

クイックリファレンス

タスクコマンド時間
毎日のダイジェストpython scripts/generate_digest.py約 10 秒
速報(6 時間)python scripts/generate_digest.py --hours 6約 8 秒
週間まとめpython scripts/generate_digest.py --days 7約 15 秒
取得のテストpython scripts/test_digest.py約 5 秒
メールのみpython scripts/generate_digest.py --no-obsidian約 10 秒

インストール

このスキルを使用する前に、必要な依存関係をインストールしてください。

pip install -r requirements.txt

以下がインストールされます。

  • feedparser - RSS フィードの解析
  • beautifulsoup4 - HTML コンテンツの抽出
  • requests - HTTP リクエスト
  • python-dateutil - 日付と時刻の処理
  • numpy - 類似度の計算

システム要件:

  • Python 3.8+
  • インターネット接続
  • 任意:Node.js 14+(nodemailer によるメール送信に使用)

次のステップ

  • API リファレンスとデータ構造については、references/api_reference.md を参照してください
  • 高度なカスタマイズについては、references/advanced_usage.md を参照してください
  • ニュースソースを追加するには、config/sources.json を編集してください
  • 他のツールと連携するには、Python モジュール API を使用してください

ライセンス

MIT ライセンス - 自由に使用および改変できます

コメント