ai-news-digest について
ai-news-digestは、英語と中国語のRSSソースからAIニュースを集め、類似記事を除いて順位付けします。Markdownダイジェストを作成し、メール送信やObsidianへの保存もできます。
主な機能
- 01複数のRSSソースからニュースを収集
- 02類似記事を重複排除
- 03新しさと重要度で順位付け
- 04MarkdownとHTMLのダイジェストを作成
- 05メール送信とObsidianへの保存
- 06時間・日・週単位の期間指定
活用シーン
- 01毎日のAIニュースダイジェストを作成
- 02直近数時間の速報を確認
- 03週次のAIニュースまとめを作成
- 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.txtassets/example_asset.txtconfig/output.jsonsources.jsonreferences/advanced_usage.mdapi_reference.mdscripts/ai_helper.pyenhance_content.pyexample.pyfetch_news.pygenerate_digest.pyprocess_news.pytest_components.pytest_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
これにより、以下が実行されます。
- 過去 24 時間のニュースを取得
- 記事の重複を排除してランク付け
- HTML メールと Markdown ファイルを生成
- 設定済みのメールアドレスに送信
- 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=AI | EN |
| TechCrunch AI | 業界 | https://techcrunch.com/category/artificial-intelligence/feed/ | EN |
| The Verge AI | コンシューマーテクノロジー | https://www.theverge.com/ai-artificial-intelligence/rss/index.xml | EN |
| OpenAI Blog | 公式 | https://openai.com/blog/rss.xml | EN |
| 机器之心 | 研究 | https://www.jiqizhixin.com/rss | CN |
| 量子位 | 業界 | https://www.qbitai.com/feed | CN |
| 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 ライセンス - 自由に使用および改変できます
コメント
Markdown 対応