Skip to main content
Glama
17191004

TrendRadar MCP Server

by 17191004

最速30秒でデプロイできるホットトピックアシスタント —— 無駄な情報に振り回されず、本当に気になるニュースだけを

🌐 公式サイト · 📖 公式ドキュメント

GitHub Stars GitHub Forks License Version MCP Docker Pulls Docker Pulls RSS AI翻译 MCP Support AI分析推送 AI智能筛选

企业微信通知 个人微信通知 Telegram通知 dingtalk通知 飞书通知 邮件通知 ntfy通知 Bark通知 Slack通知 通用Webhook

GitHub Actions GitHub Pages Docker 本地部署 Cloudflare Pages

日本語 | English

本プロジェクトは軽量・簡単デプロイを目指しています

📑 クイックナビゲーション

💡 下のリンクをクリックすると対応するセクションにジャンプできます。デプロイは「クイックスタート」から始めるのがおすすめです。詳細なカスタマイズが必要な場合は「設定の詳細」をご覧ください

  • プロジェクトにスターを付けてくださった皆様に感謝します。forkstar も、両方いただけるのが😍オープンソース精神への最高の支援です

初期サポーターへの謝辞

💡 特別な説明

  1. リストについて:下の表はプロジェクト立ち上げ段階(エンジェルラウンド)のサポーターを記録したものです。初期の手動集計は煩雑なため、漏れや記録不足が生じる可能性があります。もし漏れがあっても、意図したものではありませんので、ご容赦ください

  2. 今後の計画:限られた労力をコードと機能開発に集中させるため、本日よりこのリストの手動メンテナンスを終了します

名前がリストに載っているかどうかに関わらず、皆様のサポートの一つ一つが TrendRadar が今日まで続けてこれた基盤です。🙏

インフラストラクチャサポート

GitHub が無料で提供するインフラに感謝します。これは本プロジェクトがワンクリック fork で簡単に実行できる最大の前提です。

データサポート

本プロジェクトは newsnow プロジェクトの API を使用してマルチプラットフォームのデータを取得しています。作者に感謝します。

連絡したところ、作者はサーバー負荷を心配する必要はないとのことですが、これは彼の善意と信頼に基づくものです。皆様にお願い:

  • newsnow プロジェクト にスターを付けて支援

  • Docker デプロイ時は、プッシュ頻度を適切に制御し、過度な利用は控えてください

プロモーション支援

以下のプラットフォームと個人の推薦に感謝します(時系列順)

視聴者サポート

資金支援をいただいた皆様に感謝します。皆様の寛大さはキーボードのそばのお菓子や飲み物となり、プロジェクトの毎回のイテレーションに寄り添っています。

「1元いいね」の復活について: v5.0.0 のリリースに伴い、プロジェクトは新たな段階に入りました。増え続ける API コストとカフェイン消費を支えるため、「1元いいね」チャンネルを再開しました。皆様の気持ちは、コードの世界の Token と原動力に変わります。🚀 支援する

いいねした人

金額

日付

備考

D*5

1.8 * 3

2025.11.24

*

1

2025.11.17

*

10

2025.11.17

R*w

10

2025.11.17

この agent すごいですね、兄弟

J*o

1

2025.11.17

オープンソースに感謝、成功をお祈りします

*

8.88

2025.11.16

良いプロジェクトですね、研究中です

*

1

2025.11.15

*

1.99

2025.11.15

*

8.8

2025.11.14

オープンソースに感謝、素晴らしいプロジェクト、応援します

M*e

10

2025.11.14

オープンソースは大変です、お疲れ様です

**

1

2025.11.14

*

88

2025.11.13

良いプロジェクト、オープンソースに感謝

*W

6

2025.11.13

*

1

2025.11.13

*.

1

2025.11.13

Thanks for your TrendRadar

s*y

1

2025.11.13

**

10

2025.11.13

良いプロジェクト、もっと早く出会いたかった、オープンソースに感謝!

*

9.9

2025.11.13

TrendRadar 最高、先生にコーヒーをおごります〜

h*p

5

2025.11.12

中国のオープンソースを応援、頑張って!

c*r

6

2025.11.12

a*n

5

2025.11.12

*c

1

2025.11.12

オープンソースの共有に感謝

*

1

2025.11.11

*

1

2025.11.10

*

10

2025.11.09

*

5

2025.11.08

*

8.80

2025.11.07

開発は大変です、応援します。

Q*Q

6.66

2025.11.07

オープンソースに感謝!

C*e

1

2025.11.05

Peter Fan

20

2025.10.29

M*n

1

2025.10.27

オープンソースに感謝

*

8.88

2025.10.23

先生、初心者です。数日触ってみましたがまだ動かせていません。教えてください

Eason

1

2025.10.22

まだよくわかっていませんが、良いことをしていますね

P*n

1

2025.10.20

*

1

2025.10.19

*

1

2025.10.18

*

1

2025.10.17

*😀

10

2025.10.16

いいね

**

10

2025.10.16

*

10

2025.10.16

*

5

2025.10.14

TrendRadar

J*d

1

2025.10.14

ツールありがとうございます、とても面白いです...

*H

1

2025.10.14

*O

10

2025.10.13

*

1

2025.10.13

P*g

6

2025.10.13

Ocean

20

2025.10.12

...本当に素晴らしい!!!初心者レベルでもそのまま使えます...

**

5.2

2025.10.2

github-yzyf1312:オープンソース万歳

*椿

3

2025.9.23

頑張って、とても良いです

*🍍

10

2025.9.21

E*f

1

2025.9.20

*

1

2025.9.20

z*u

2

2025.9.19

**

5

2025.9.17

*

1

2025.9.15

T*T

2

2025.9.15

いいね

*

10

2025.9.10

*X

1.11

2025.9.3

*

20

2025.8.31

老童より、ありがとう

*

1

2025.8.30

2*D

88

2025.8.13 下午

2*D

1

2025.8.13 上午

S*o

1

2025.8.05

応援します

*

10

2025.8.04

x*x

2

2025.8.03

trendRadar 良いプロジェクト、いいね

*

1

2025.8.01

*

5

2025.8.01

*

0.1

2025.7.30

**

10

2025.7.29

応援します

Related MCP server: TrendRadar

🪄 スポンサー

バイトダンス自社開発の豆包大規模言語モデルと主要なオープンソース SOTA モデルのフルバージョンを一か所で利用可能。テキスト、視覚理解(VLM)、画像生成などのマルチモーダル機能を完全カバー。Seed-2.1、Seedream 5.0、GLM-5.2、DeepSeek などの人気モデルを一か所で揃え、効率的なプログラミングだけでなく、複雑な長期的 Agent タスクにも対応します。

❤️ 気に入った?応援する

TrendRadar があなたに価値を提供したなら、ぜひ力を注いで、進化を続けるのを助けてください

金額は任意です。1元でもオープンソースへの励みになります。応援の際にコメントを残していただけると嬉しいです (´▽`ʃ♡ƪ)

微信サポート

支付宝サポート

🤝 二次開発と引用

もしあなたのプロジェクトで本プロジェクトのアイデアや核心コードを利用・参照した場合は、大歓迎です。README やドキュメントの中で出典を明記し、本リポジトリへのリンクを添えてください。

これはプロジェクトの継続的なメンテナンスとコミュニティの発展につながります。あなたの尊重とサポートに感謝します!❤️

💬 交流とフィードバック

  • GitHub Issues:具体的な技術的な質問に適しています。質問の際は、スクリーンショットやエラーログなどの完全な情報を提供してください。迅速な問題特定に役立ちます。

  • 公式アカウントでの交流:関連記事のコメント欄での交流を優先することをおすすめします。管理側に質問したい場合は、まず記事に「いいね」/「おすすめ」を押すのが一番の「ちょっとした工夫」です。管理側でもその気持ちはちゃんと伝わっていますよ (´▽`ʃ♡ƪ)。

  • QQグループ交流:公式アカウントをフォローし、「交流群」と返信すると参加できます。AI 初心者でもハードコアな開発者でも、技術的な質問をしたい方でも、日々の試行錯誤の気づきを共有したい方でも、誰でも歓迎です。グループは互助・交流とアイデアの遠超に重点を置いています。入群後はまずグループのお知らせをご確認ください。質問するときは問題を明確に説明し、スクリーンショットを添えれば、空き時間にグループメンバーが助けてくれます。皆さんの実体験は、私一人で対応するよりも速く、より総合的であることがよくあります。🤝

お知らせ: 本プロジェクトはオープンソース共有であり、商用製品ではありません。作者をカスタマーサポートではなく友達として接することで、コミュニケーションがより円滑になります!

公式アカウントのフォロー

📝 更新履歴

📌 最新の更新を見る**[元リポジトリの更新履歴](https://github.com/sansan0/TrendRadar?

  • 独立した MCP サービスイメージ wantcat/trendradar-mcp を新規追加

  • Docker デプロイで AI 分析機能をサポートし、HTTP インターフェース(ポート 3333)でサービスを提供

  • デュアルコンテナ構成:ニュース配信サービスと MCP サービスが独立して動作し、それぞれ個別にスケール・再起動が可能

  • 詳細は Docker デプロイ - MCP サービス を参照

🌐 Web サーバーサポート

  • 生成されたレポートをブラウザで閲覧できる内蔵 Web サーバーを新規追加

  • manage.py コマンドで起動・停止を制御:docker exec -it trendradar python manage.py start_webserver

  • アクセスアドレス:http://localhost:8080(ポートは設定可能)

  • セキュリティ機能:静的ファイルサービス、ディレクトリ制限、ローカルアクセス

  • 自動起動と手動制御の2つのモードをサポート

📖 ドキュメント最適化

🔧 アップグレード説明

  • GitHub Fork ユーザーmain.pyconfig/config.yaml を更新(複数アカウントプッシュ対応を追加、既存設定の変更は不要)

  • 複数アカウントプッシュ:新機能、デフォルトでは無効、既存の単一アカウント設定には影響なし

2025/11/26 - mcp-v1.0.3

MCP モジュール更新:

  • AI モデルの日付計算の不一致問題を解決する日付解析ツール resolve_date_range を新規追加

  • 自然言語による日付表現の解析をサポート(今週、直近7日間、先月など)

  • ツール総数が 13 個から 14 個に増加

2025/11/28 - v3.4.1

🔧 フォーマット最適化

  1. Bark プッシュ強化

    • Bark が Markdown レンダリングをサポート

    • ネイティブ Markdown フォーマットを有効化:太字、リンク、リスト、コードブロックなど

    • プレーンテキスト変換を廃止し、Bark のネイティブレンダリング機能を最大限活用

  2. Slack フォーマットの精密化

    • 専用の mrkdwn フォーマットで分割コンテンツを処理

    • バイトサイズ見積もりの精度を向上(メッセージ上限超過を回避)

    • リンク形式 <url|text> と太字構文 *text* を最適化

  3. パフォーマンス向上

    • フォーマット変換を分割処理中に完了させ、2次処理を回避

    • メッセージサイズを正確に見積もり、送信失敗率を低減

🔧 アップグレード説明

  • GitHub Fork ユーザーmain.pyconfig.yaml を更新

2025/11/25 - v3.4.0

🎉 Slack プッシュサポートを新規追加

  1. チームコラボレーションプッシュチャネル

    • Slack Incoming Webhooks をサポート(世界的に人気のチームコラボレーションツール)

    • メッセージを一元管理し、チームでのホットニュース共有に最適

    • mrkdwn フォーマットをサポート(太字、リンクなど)

  2. 複数のデプロイ方法

    • GitHub Actions:SLACK_WEBHOOK_URL Secret を設定

    • Docker:環境変数 SLACK_WEBHOOK_URL

    • ローカル実行:config/config.yaml 設定ファイル

📖 詳細設定チュートリアルクイックスタート - Slack プッシュ

  • setup-windows.bat と setup-windows-en.bat の MCP ワンクリックインストール体験を最適化

🔧 アップグレード説明

  • GitHub Fork ユーザーmain.pyconfig/config.yaml.github/workflows/crawler.yml を更新

2025/11/24 - v3.3.0

🎉 Bark プッシュサポートを新規追加

  1. iOS 専用プッシュチャネル

    • Bark プッシュをサポート(APNs ベース、iOS プラットフォーム)

    • 無料・オープンソース・シンプルで効率的、広告なし

    • 公式サーバーと自前サーバーの両方をサポート

  2. 複数のデプロイ方法

    • GitHub Actions:BARK_URL Secret を設定

    • Docker:環境変数 BARK_URL

    • ローカル実行:config/config.yaml 設定ファイル

📖 詳細設定チュートリアルクイックスタート - Bark プッシュ

🐛 バグ修正

  • config.yamlntfy_server_url 設定が反映されない問題を修正 (#345)

🔧 アップグレード説明

  • GitHub Fork ユーザーmain.pyconfig/config.yaml.github/workflows/crawler.yml を更新

2025/11/23 - v3.2.0

🎯 高度なカスタマイズ機能を新規追加

  1. キーワード並び順の優先度設定

    • 2つの並び順戦略をサポート:人気度優先 vs 設定順優先

    • さまざまな利用シーンに対応:ホットトピック追跡 or パーソナライズ注目

  2. 表示数の精密な制御

    • グローバル設定:全キーワードの表示数を一括制限

    • 個別設定:@数字 構文で特定キーワードの制限を設定

    • プッシュ長を効果的に制御し、重要な内容を強調

📖 詳細設定チュートリアルキーワード設定 - 詳細設定

🔧 アップグレード説明

  • GitHub Fork ユーザーmain.pyconfig/config.yaml を更新

2025/11/18 - mcp-v1.0.2

MCP モジュール更新:

  • 今日のニュースを照会した際に誤って過去の日付が返される可能性がある問題を最適化

2025/11/22 - v3.1.1

  • データ異常によるクラッシュ問題を修正:一部のユーザーが GitHub Actions 環境で遭遇した 'float' object has no attribute 'lower' エラーを解決

  • 二重防御メカニズムを新規追加:データ取得段階で無効なタイトル(None、float、空文字列)をフィルタリングし、関数呼び出し箇所にも型チェックを追加

  • システムの安定性を向上させ、データソースが異常な形式を返した場合でも正常に動作

アップグレード説明(GitHub Fork ユーザー):

  • 必須更新:main.py

  • マイナーバージョンアップグレード方式を推奨:上記ファイルをコピーして置換

2025/11/20 - v3.1.0

  • 個人微信プッシュサポートを新規追加:企業微信アプリで個人微信にプッシュ可能、企業微信 APP のインストール不要

  • 2つのメッセージ形式をサポート:markdown(企業微信グループロボット)と text(個人微信アプリ)

  • 新規 WEWORK_MSG_TYPE 環境変数設定を追加し、GitHub Actions、Docker、docker compose など複数のデプロイ方法をサポート

  • text モードは Markdown 構文を自動的に除去し、プレーンテキストのプッシュ効果を提供

  • 詳細はクイックスタートの「個人微信プッシュ」設定説明を参照

アップグレード説明(GitHub Fork ユーザー):

  • 必須更新:main.pyconfig/config.yaml

  • 任意更新:.github/workflows/crawler.yml(GitHub Actions でデプロイする場合)

  • マイナーバージョンアップグレード方式を推奨:上記ファイルをコピーして置換

2025/11/12 - v3.0.5

  • メール送信の SSL/TLS ポート設定ロジックエラーを修正

  • メールサービスプロバイダー(QQ/163/126)のデフォルトを 465 ポート(SSL)に最適化

  • Docker 環境変数サポートを新規追加:主要な設定項目(enable_crawlerreport_modepush_window など)が環境変数による上書きをサポートし、NAS ユーザーの設定ファイル変更が反映されない問題を解決(詳細は 🐳 Docker デプロイ の章を参照)

2025/10/26 - mcp-v1.0.1

MCP モジュール更新:

  • 日付クエリパラメータの受け渡しエラーを修正

  • 全ツールの時間パラメータ形式を統一

2025/10/31 - v3.0.4

  • 飛書(Feishu)のプッシュ内容が長すぎるために発生するエラーを解決し、分割プッシュを実装

2025/10/23 - v3.0.3

  • ntfy エラー情報の表示範囲を拡大

2025/10/21 - v3.0.2

  • ntfy プッシュのエンコーディング問題を修正

2025/10/20 - v3.0.0

メジャーアップデート - AI 分析機能が登場

  • コア機能

    • MCP (Model Context Protocol) ベースの AI 分析サーバーを新規追加

    • 17種類のスマート分析ツールをサポート:基本クエリ、スマート検索、高度な分析、RSS クエリ、システム管理

    • 自然言語インタラクション:会話形式でニュースデータを照会・分析

    • 複数クライアントをサポート:Claude Desktop、Cherry Studio、Cursor、Cline など

  • 分析機能

    • トピックトレンド分析(人気度追跡、ライフサイクル、バズ検出、トレンド予測)

    • データインサイト(プラットフォーム比較、アクティビティ統計、キーワード共起)

    • 感情分析、類似ニュース検索、スマート要約生成

    • 過去の関連ニュース検索、マルチモード検索

  • 更新情報

    • これは独立した AI 分析機能であり、既存のプッシュ機能には影響しません

    • 選択的に使用可能で、既存のデプロイをアップグレードする必要はありません

2025/10/15 - v2.4.4

  • 更新内容

    • ntfy プッシュのエンコーディング問題を修正 + 1

    • プッシュ時間ウィンドウの判定問題を修正

  • 更新情報

    • 【マイナーバージョンアップグレード】を推奨

2025/10/10 - v2.4.3

nidaye996 さんが発見した体験問題に感謝

  • 更新内容

    • 「サイレントプッシュモード」を「プッシュ時間ウィンドウ制御」にリネームし、機能の理解度を向上

    • プッシュ時間ウィンドウをオプションの追加機能として明確化し、3つのプッシュモードと組み合わせて使用可能

    • コメントとドキュメントの説明を改善し、機能の位置づけをより明確に

  • 更新情報

    • これはリファクタリングのみで、アップグレードは不要

2025/10/8 - v2.4.2

  • 更新内容

    • ntfy プッシュのエンコーディング問題を修正

    • 設定ファイル欠落の問題を修正

    • ntfy プッシュ効果を最適化

    • github page の画像分割エクスポート機能を追加

  • 更新情報

    • 【メジャーバージョンアップデート】を推奨

2025/10/2 - v2.4.0

ntfy プッシュ通知を新規追加

  • コア機能

    • ntfy.sh パブリックサービスとセルフホストサーバーをサポート

  • 利用シーン

    • プライバシーを重視するユーザーに最適(セルフホスト対応)

    • クロスプラットフォームプッシュ(iOS、Android、Desktop、Web)

    • アカウント登録不要(パブリックサーバー)

    • オープンソース・無料(MIT ライセンス)

  • 更新情報

    • 【メジャーバージョンアップデート】を推奨

2025/09/26 - v2.3.2

  • メール通知設定チェックが漏れていた問題を修正(#88

修正説明

  • メール通知を正しく設定していても「webhook が設定されていません」と表示される問題を解決

2025/09/22 - v2.3.1

  • メールプッシュ機能を新規追加、ホットニュースレポートをメールで送信可能

  • スマート SMTP 認識:Gmail、QQメール、Outlook、网易メールなど 10+ 種類のメールサービスプロバイダー設定を自動認識

  • HTML 高品質フォーマット:メール内容は Web 版と同じ HTML フォーマットで、美しいレイアウト、モバイル対応

  • 一括送信サポート:複数の受信者をカンマ区切りで指定し、同時に複数人へ送信可能

  • カスタム SMTP:SMTP サーバーとポートをカスタマイズ可能

  • Docker ビルドのネットワーク接続問題を修正

使用方法

  • 適用シーン:メールアーカイブ、チーム共有、定期レポートが必要なユーザーに最適

  • 対応メール:Gmail、QQメール、Outlook/Hotmail、163/126メール、新浪メール、搜狐メールなど

更新情報

  • 今回の更新内容は多いため、アップグレードする場合は【メジャーバージョンアップグレード】を推奨

2025/09/17 - v2.2.0

  • ニュース画像をワンクリック保存する機能を新規追加。注目のホットトピックを簡単に共有可能

使用方法

  • 適用シーン:チュートリアルに従って Web 版機能(GitHub Pages)を有効にした場合

  • 使用方法:スマートフォンまたは PC でその Web リンクを開き、ページ上部の「画像として保存」ボタンをクリック

  • 実際の効果:システムが現在のニュースレポートを自動的に美しい画像に変換し、スマートフォンのアルバムまたは PC のデスクトップに保存

  • 共有の便利さ:その画像を直接友人に送信したり、WeChat モーメンツに投稿したり、仕事のグループで共有して、自分が見つけた重要な情報を他の人にも見せることが可能

2025/09/13 - v2.1.2

  • 钉钉(DingTalk)のプッシュ容量制限によるニュースプッシュ失敗問題を解決(分割プッシュを採用)

2025/09/04 - v2.1.1

  • docker が一部のアーキテクチャで正常に動作しない問題を修正

  • 公式 Docker イメージ wantcat/trendradar を正式リリース、マルチアーキテクチャ対応

  • Docker デプロイプロセスを最適化し、ローカルビルドなしで迅速に使用可能

2025/08/30 - v2.1.0

コア改善

  • プッシュロジックの最適化:「実行ごとにプッシュ」から「時間ウィンドウ内で制御可能なプッシュ」に変更

  • 時間ウィンドウ制御:プッシュ時間範囲を設定可能、非勤務時間の妨害を回避

  • プッシュ頻度の選択肢:時間帯内で単回プッシュまたは複数回プッシュをサポート

更新情報

  • 本機能はデフォルトで無効。config.yaml でプッシュ時間ウィンドウ制御を手動で有効にする必要あり

  • アップグレードには main.py と config.yaml の両ファイルを同時に更新する必要あり

2025/08/27 - v2.0.4

  • 今回のバージョンは機能修正ではなく、重要な注意喚起です

  • webhooks は厳重に保管してください。公開しないでください。公開しないでください。公開しないでください

  • このプロジェクトを fork 方式で GitHub にデプロイしている場合は、webhooks を GitHub Secret に入力してください。config.yaml には入力しないでください

  • すでに webhooks を公開した場合や config.yaml に入力した場合は、削除して再生成することを推奨します

2025/08/06 - v2.0.3

  • github page の Web 版表示効果を最適化し、モバイルでの利用を容易に

2025/07/28 - v2.0.2

  • コードをリファクタリング

  • バージョン番号の更新漏れが発生しやすい問題を解決

2025/07/27 - v2.0.1

修正された問題:

  1. docker のシェルスクリプトの改行コードが CRLF であるために発生する実行異常問題

  2. frequency_words.txt が空の場合、ニュース送信も空になるロジック問題

  • 修正後、frequency_words.txt を空に選択した場合、すべてのニュースがプッシュされますが、メッセージプッシュサイズ制限のため、以下の調整を行ってください

    • 方法1:スマートフォンプッシュをオフにし、Github Pages のみを選択(最も完全な情報を得られる方法で、全プラットフォームのホットトピックをカスタムのホット検索アルゴリズムに従って再ソート)

    • 方法2:プッシュプラットフォームを減らし、企業微信またはTelegramを優先的に選択。この2つのプッシュには分割プッシュ機能を実装(分割プッシュはプッシュ体験に影響し、この2つのプラットフォームのみプッシュ容量がわずかなため、やむを得ず分割プッシュ機能を実装しましたが、少なくとも情報の完全性は保証されます)

    • 方法3:方法2と組み合わせて、モードを current または incremental に選択すると、一度にプッシュされる内容を効果的に削減可能

2025/07/17 - v2.0.0

メジャーリファクタリング

  • 設定管理のリファクタリング:すべての設定を config/config.yaml ファイルで管理(main.py は引き続き分割せず、コピーアップグレードを容易に)

  • 実行モードのアップグレード:3つのモードをサポート - daily(当日集計)、current(現在のランキング)、incremental(増分モニタリング)

  • Docker サポート:完全な Docker デプロイソリューション、コンテナ化実行をサポート

設定ファイルの説明

  • config/config.yaml - メイン設定ファイル(アプリ設定、クローラー設定、通知設定、プラットフォーム設定など)

  • config/frequency_words.txt - キーワード設定(監視語彙の設定)

2025/07/09 - v1.4.1

新機能:増分プッシュを追加(main.py の先頭で FOCUS_NEW_ONLY を設定)。このスイッチは継続的な人気ではなく新しいトピックのみに注目し、新しい内容がある場合のみ通知を送信します。

修正された問題: 特定の状況下で、ニュース自体に特殊記号が含まれることによる偶発的なレイアウト異常。

2025/06/23 - v1.3.0

企業微信 と Telegram のプッシュメッセージには長さ制限があるため、メッセージを分割してプッシュする方式を採用しました。開発ドキュメントは企業微信Telegram を参照

2025/06/21 - v1.2.1

このバージョンより前の旧バージョンでは、main.py のコピー置換だけでなく、crawler.yml もコピー置換する必要があります https://github.com/sansan0/TrendRadar/blob/master/.github/workflows/crawler.yml

2025/06/19 - v1.2.0

claude research が整理した各プラットフォームの API に感謝。各プラットフォームへの対応を迅速に完了できました(コードはより冗長になりましたが〜)

  1. telegram、企業微信、钉钉のプッシュチャネルをサポート。マルチチャネル設定と同時プッシュをサポート

2025/06/18 - v1.1.0

200 star⭐ 達成!引き続き皆さんに楽しんでいただけるよう頑張ります〜最近、私の「そそのかし」で、多くの方が私の公式アカウントでいいね・シェア・推薦をして応援してくださいました。バックエンドで具体的なアカウントの応援データをすべて確認しています。多くがエンジェルラウンドの古参ファンになりました(私が公式アカウントを始めてまだ1ヶ月ちょっとですが、登録は7〜8年前のことです。早く乗って遅く出発した感じですね)。ただし、コメントやダイレクトメッセージをいただけなかったため、個別に応答して感謝をお伝えすることができません。この場を借りてお礼申し上げます!

  1. 重要な更新:重み付けを追加しました。今見ているニュースは、最もホットで注目度の高いものが一番上に表示されます

  2. ドキュメントの使用方法を更新。最近多くの機能を更新したため、以前の使用ドキュメントは手抜きで簡単に書いていました(下記の ⚙️ frequency_words.txt 設定完全チュートリアルを参照)

2025/06/16 - v1.0.0

  1. プロジェクトの新バージョン更新通知を追加。デフォルトでオン。オフにする場合は、main.py の "FEISHU_SHOW_VERSION_UPDATE": True の True を False に変更

2025/06/13+14

  1. 互換コードを削除。以前 fork した方は、コードを直接コピーすると当日表示が異常になります(翌日には正常に戻ります)

  2. feishu と html の下部に新着ニュース表示を追加

2025/06/09

100 star⭐ 達成!小さな機能を追加して皆さんに楽しんでいただきます frequency_words.txt ファイルに【必須語】機能を追加。+ 記号を使用

  1. 必須語の構文は以下の通り:
    唐僧(三蔵法師)または猪八戒がタイトルに同時に出現する必要があり、その場合のみプッシュニュースに収録されます

+唐僧
+猪八戒
  1. フィルター語の優先度が高い:
    タイトルでフィルター語が唐僧念経(三蔵法師のお経唱え)にマッチした場合、必須語に唐僧があっても表示されません

+唐僧
!唐僧念经

2025/06/02

  1. Web飛書メッセージでスマートフォンから詳細ニュースへ直接ジャンプ可能

  2. 表示効果を最適化 + 1

2025/05/26

  1. 飛書メッセージの表示効果を最適化

✨ コア機能

全ネットワークホットトピック集約

  • 知乎

  • 抖音

  • bilibili ホット検索

  • ウォールストリートジャーナル(华尔街见闻)

  • 貼吧

  • 百度ホット検索

  • 財聯社ホット

  • 澎湃新聞

  • 鳳凰網

  • 今日頭条

  • 微博

デフォルトで 11 の主要プラットフォームを監視。追加のプラットフォームも自由に追加可能

💡 詳細設定チュートリアルは 設定詳細 - プラットフォーム設定 を参照

RSS 購読ソースサポート(v4.5.0 で新規追加)

RSS/Atom 購読ソースの取得をサポートし、キーワードごとにグループ化して統計(ホットランキングと同じ形式):

  • 統一フォーマット:RSS とホットランキングは同じキーワードマッチングと表示形式を使用

  • 簡単設定config.yaml に直接 RSS ソースを追加

  • 統合プッシュ:ホットランキングと RSS を1つのメッセージに統合してプッシュ

  • 鮮度フィルタリング:指定日数を超えた古い記事を自動的にフィルタリングし、重複プッシュを回避。グローバルデフォルト日数とソースごとの個別設定をサポート

💡 RSS はホットランキングと同じ frequency_words.txt を使用してキーワードフィルタリングを行います

ビジュアル設定エディター

Web ベースのグラフィカル設定インターフェースを提供。YAML ファイルを手動編集する必要がなく、フォームで全設定項目の変更とエクスポートが可能。

👉 オンライン体験https://sansan0.github.io/TrendRadar/

スマートプッシュ戦略

3つのプッシュモード

モード

適用シーン

プッシュ特徴

当日集計 (daily)

企業管理者/一般ユーザー

定時に当日の全マッチングニュースをプッシュ(以前にプッシュしたものを含む)

現在のランキング (current)

自媒体人/コンテンツクリエイター

定時に現在のランキングのマッチングニュースをプッシュ(ランキングに残っているものは毎回表示)

増分モニタリング (incremental)

投資家/トレーダー

新規コンテンツのみプッシュ、重複ゼロ

💡 クイック選択ガイド:

  • 重複ニュースを見たくない → incremental(増分モニタリング)を使用

  • 完全なランキングトレンドを見たい → current(現在のランキング)を使用

  • 毎日の集計レポートが必要 → daily(当日集計)を使用

詳細な比較と設定チュートリアルは 設定詳細 - プッシュモード詳細 を参照

追加機能(オプション):

機能

説明

デフォルト

スケジュールシステム

月曜から日曜まで日ごとに編成:各日に異なる時間帯、プッシュモード、AI 分析戦略を割り当て。各時間帯でフィルタリング方法(キーワード/AI)と注目方向を個別に設定可能。異なる時間に異なるタイプのニュースを閲覧可能。内蔵 5 つのプリセット(always_on / morning_evening / office_hours / night_owl / custom)、カスタムも可能。平日/週末の差別化、深夜をまたぐ時間帯、per-period 重複排除、時間帯競合検出をサポート(v6.0.0 + v6.5.0)

morning_evening

コンテンツ順序設定

display.region_order で各領域(ホットランキング、新着ホットトピック、RSS、独立表示エリア、AI 分析)の表示順序を調整;display.regions で各領域の表示/非表示を制御(v5.2.0)

設定ファイルを参照

表示モード切り替え

keyword=キーワードごとにグループ化、platform=プラットフォームごとにグループ化(v4.6.0 で新規追加)

keyword

💡 詳細設定チュートリアルは プッシュ内容はどう表示される?いつプッシュされる? を参照

精密なコンテンツフィルタリング

個人キーワード(例:AI、BYD、教育政策)を設定し、関連するホットトピックのみをプッシュ、無関係な情報をフィルタリング

💡 基本設定チュートリアルキーワード設定 - 基本構文

💡 詳細設定チュートリアルキーワード設定 - 詳細設定

💡 フィルタリングなしで全ホットトピックを完全プッシュすることも可能(frequency_words.txt を空にする)

AI スマートニュースフィルタリング(v6.5.0 で新規追加)

自然言語で興味を記述すると、AI がニュースを自動分類し、従来のキーワードマッチングに代わります

  • 自然言語による興味記述ai_interests.txt に日常言語で関心分野を記述するだけで、キーワードの文法を学ぶ必要はありません

  • 2段階スマート処理:AI がまず興味記述から構造化タグを抽出し、次にニュースをタグ別に一括分類・スコアリングします

  • スコア閾値制御ai_filter.min_score で配信品質を精密に制御し、関連性の高いニュースのみを配信します

  • 自動フォールバック保証:AI フィルタリング失敗時は自動的にキーワードマッチングへ切り替わり、配信の中断を防ぎます

  • スマートタグ更新:興味が変更された際、AI が変更の規模を自動評価し、増分更新か全量再分類かを決定します

  • 柔軟な切り替えfilter.methodkeyword(デフォルト)と ai の2モードをサポートし、Timeline では時間帯ごとに上書き可能です

  • 時間帯別パーソナライズ:時間帯ごとに異なるキーワードファイルや AI 興味記述を使用できます。例えば朝は「テック辞書」で高速フィルタリング、夜は「金融興味」に切り替えて AI による深いフィルタリングが可能です

# config.yaml 快速启用示例
filter:
  method: ai          # keyword(默认)| ai
ai_filter:
  min_score: 6         # 推送最低分数阈值(1-10)

💡 AI フィルタリングは AI 分析・翻訳とモデル設定を共有するため、ai.api_key は一度設定するだけで済みます

ホットトレンド分析

ニュースの熱度変化をリアルタイムで追跡し、「何がホット検索されているか」だけでなく「ホットトピックがどのように進化するか」も把握できます

  • タイムライン追跡:各ニュースの初出から最終出現までの完全な時間スパンを記録

  • 熱度変化:異なる時間帯におけるニュースのランキング変動と出現頻度を統計

  • 新規検出:新たに出現したホットトピックをリアルタイムで識別し、🆕マークで即座に通知

  • 持続性分析:一過性のホットトピックと継続的に発展する深層ニュースを区別

  • クロスプラットフォーム比較:同一ニュースのプラットフォーム別ランキングを比較し、メディアの注目度の違いを把握

💡 配信メッセージの形式説明は メッセージの見た目 を参照

パーソナライズホットトピックアルゴリズム

各プラットフォームのアルゴリズムに振り回されることなく、TrendRadar が全ネットのホット検索を再整理します

💡 3つの比率は調整可能です。詳細は 設定詳細 - ホットトピック重み調整 を参照

マルチチャネル・マルチアカウント配信

企業微信(+ 個人微信配信ソリューション)、飛書(Feishu)钉钉(DingTalk)TelegramメールntfyBarkSlack汎用 Webhook(Discord、IFTTT など任意のプラットフォームに接続可能)をサポートし、メッセージをスマホとメールに直接配信します

💡 詳細な設定チュートリアルは 複数のグループ・デバイスへの配信 を参照

AI 多言語翻訳(v5.2.0 新機能)

配信コンテンツを任意の言語に翻訳し、言語の壁を打破します。国内のホットトピックを読む場合も、RSS で海外情報を購読する場合も、母語で簡単に取得できます

  • ワンクリック翻訳config.yamlai_translation.enabled: true と対象言語を設定するだけ

  • 多言語サポート:English、Korean、Japanese、French など任意の言語に対応

  • スマート一括処理:自動でバッチ翻訳し、API 呼び出し回数を削減してコストを節約

  • カスタムスタイルai_translation_prompt.txt で翻訳スタイルと用語をカスタマイズ

  • モデル設定共有:AI 分析機能と ai 設定セクションのモデル設定を共用

# config.yaml 快速启用示例
ai_translation:
  enabled: true
  language: "English"  # 翻译目标语言

💡 翻訳機能は AI 分析機能とモデル設定を共有するため、ai.api_key を一度設定するだけで両方の機能を使用できます

RSS ソース参考:以下は RSS 購読ソースのコレクションです。必要に応じて選択してください

  • awesome-tech-rss - テクノロジー、スタートアップ、プログラミング分野のブログとメディア

  • awesome-rss-feeds - 世界各国の主要ニュースメディア RSS コレクション

⚠️ 一部の海外メディアのコンテンツはデリケートな話題を含む場合があり、AI モデルが翻訳を拒否する可能性があります。実際のニーズに応じて購読ソースを選別することをお勧めします

HTML レポートブラウザ拡張(v6.6.0 新機能)

ブラウザで配信された HTML レポートを開くと、拡張エクスペリエンスが自動的に有効になります(メールクライアントには影響しません):

  • ワイドスクリーンモード:デスクトップでは自動的に 1200px のワイドレイアウトに切り替わり、画面スペースを最大限に活用

  • タブクイック切り替え:キーワードグループと独立展示エリアの両方でタブナビゲーションをサポートし、長いページのスクロールを解消

  • ダークモード:ワンクリックでダークテーマに切り替え、設定を自動的に記憶

  • リアルタイム検索/ キーで検索ボックスを呼び出し、ニュースタイトルを即時フィルタリング

  • ワンクリックコピー:ニュースの番号にホバーするとタイトルとリンクをコピー

  • ショートカットキーW ワイドスクリーン、D ダークモード、/ 検索、? すべてのショートカットキーを表示

💡 すべての拡張機能はプログレッシブエンハンスメントに基づいており、メールクライアントでは元の 600px レイアウトが表示され、回帰はゼロです

柔軟なストレージアーキテクチャ(v4.0.0 メジャーアップデート)

マルチストレージバックエンド対応

  • リモートクラウドストレージ:GitHub Actions 環境のデフォルト。S3 互換プロトコル(R2/OSS/COS など)をサポートし、データはクラウドに保存されるためリポジトリを汚染しません

  • ローカル SQLite データベース:Docker/ローカル環境のデフォルト。データを完全に制御可能

  • 自動バックエンド選択:実行環境に応じてストレージ方式をスマートに切り替え

💡 詳細は データはどこに保存されますか? を参照

マルチ環境デプロイ

  • GitHub Actions:定期自動クロール + リモートクラウドストレージ(定期サインイン更新が必要)

  • Docker デプロイ:マルチアーキテクチャのコンテナ実行をサポートし、データはローカルに保存

  • ローカル実行:Windows/Mac/Linux で直接実行

AI 分析配信(v5.0.0 新機能)

AI 大規模言語モデルを使用して配信コンテンツを深く分析し、ホットトピックのインサイトレポートを自動生成します

  • スマート分析:ホットトレンド、キーワード熱度、クロスプラットフォーム関連性、潜在的な影響を自動分析

  • マルチプロバイダー:LiteLLM 統一インターフェースに基づき、100以上の AI プロバイダー(DeepSeek、OpenAI、Gemini、Anthropic、ローカル Ollama など)をサポート。バックアップモデルへの自動切り替えにも対応

  • 分析モード独立:AI の分析範囲は配信と異なる場合があります——配信は新規メッセージのみ送信(通知過多を防止)しつつ、AI は当日の全ニュースを分析(全体トレンドを把握)できます

  • 柔軟な配信:元のコンテンツのみ、AI 分析のみ、または両方の配信を選択可能

  • カスタムプロンプトconfig/ai_analysis_prompt.txt で分析の視点をカスタマイズ

💡 詳細な設定チュートリアルは AI にホットトピックを分析してもらう を参照

独立展示エリア(v5.0.0 新機能)

指定プラットフォームに完全なホットランキングを提供し、キーワードフィルタリングの影響を受けません

  • 完全なホットランキング:指定プラットフォームのホットランキングを完全表示。完全なランキングを見たいユーザー向け

  • RSS 独立展示:RSS ソースのコンテンツを完全表示でき、キーワード制限の影響を受けません

  • AI 深層分析:完全なホットランキングに対する AI トレンド分析を独立して有効化でき、配信に表示する必要はありません

  • 柔軟な設定:表示プラットフォーム、RSS ソース、最大件数を設定可能

💡 詳細な設定チュートリアルは 配信コンテンツの表示方法 - 独立展示エリア を参照

AI スマート分析(v3.0.0 新機能)

MCP (Model Context Protocol) プロトコルに基づく AI 対話分析システムで、自然言語でニュースデータを深く掘り下げることができます

💡 使用ヒント:AI 機能にはローカルニュースデータが必要です

  • プロジェクトにはテストデータが同梱されており、すぐに機能を体験できます

  • よりリアルタイムなデータを取得するには、プロジェクトを自分でデプロイして実行することをお勧めします

詳細は AI スマート分析 を参照

Web デプロイ

実行後、ルートディレクトリに index.html が生成されます。これが完全なニュースレポートページです。

デプロイ方法Use this template ボタンをクリックしてリポジトリを作成し、Cloudflare Pages や GitHub Pages などの静的ホスティングプラットフォームにデプロイできます。

💡 ヒント:GitHub Pages を有効にするとオンラインアクセス URL が取得できます。リポジトリの Settings → Pages で有効化してください。プレビュー

⚠️ 旧 GitHub Actions 自動ストレージ機能は廃止されました(この方式は GitHub サーバーに過大な負荷をかけ、プラットフォームの安定性に影響を与えたため)。

☁️ Cloudflare Pages への自動デプロイ(オプション・国内アクセス高速化)

GitHub Pages は国内からのアクセスが遅いため、Cloudflare Pages の方がアクセス速度が良好です。設定完了後、GitHub Actions が実行されるたびに最新の index.html が自動的に Cloudflare Pages へプッシュされ、手動操作は一切不要です。

前提条件GitHub Actions デプロイ が完了し、Web レポートが正常に生成されていること。

① Cloudflare Pages プロジェクトの作成

Cloudflare Dashboard にログイン → Workers & PagesCreatePagesUpload assets(直接アップロード) を選択し、プロジェクト名(例:trendradar、覚えておいてください)を入力し、適当なファイルをアップロードして初回作成を完了します(以降は Actions が自動的に上書きします)。

② API Token と Account ID の取得

  • API Token:右上のアバター → My ProfileAPI TokensCreate TokenCreate Custom Token で、権限として AccountCloudflare PagesEdit を選択し、作成後に Token をコピーします(一度しか表示されません)。

  • Account IDWorkers & Pages ページの右側バーに表示されます(または任意のドメインの Overview ページ右下)。

③ GitHub リポジトリに 3 つの Secrets を追加

リポジトリの SettingsSecrets and variablesActionsNew repository secret に移動し、順番に追加します:

Name(名前)

Secret(値)

CLOUDFLARE_API_TOKEN

前の手順で作成した API Token

CLOUDFLARE_ACCOUNT_ID

あなたの Cloudflare Account ID

CLOUDFLARE_PROJECT_NAME

Cloudflare Pages プロジェクト名(例:trendradar

設定完了後、次回の GitHub Actions 実行時に自動デプロイされ、アクセス URL は https://<プロジェクト名>.pages.dev になります。

💡 説明:3つの Secret のうち1つでも欠けていると Cloudflare デプロイは自動的にスキップされますが、ニュース配信などの他の機能には影響しません。カスタムドメインをバインドする場合は、Pages プロジェクトの Custom domains で設定できます。

APP 依存の軽減

「アルゴリズムによるレコメンドに支配される」状態から「自分が欲しい情報を能動的に取得する」状態へ

対象ユーザー: 投資家、自メディア運営者、企業広報、時事に関心のある一般ユーザー

典型的なシナリオ: 株式投資モニタリング、ブランド風評追跡、業界動向の把握、生活情報の取得

ウェブ効果(メール配信効果)

飛書配信効果

AI 分析配信効果

ウェブ効果

飛書配信効果

AI分析配信効果

🚀 クイックスタート

注意最新の公式ドキュメント を先に確認し、設定手順が最新であることを確認することをお勧めします。

あなたに合ったデプロイ方法を選択してください

Ⓐ 方法1:Docker デプロイ(推奨 🔥)

  • 特徴:GitHub Actions より安定しており、データはローカルに保存(クラウドストレージの設定不要)

  • 対象:自前のサーバー、NAS、または長期稼働するコンピューターをお持ちの方

  • 注意:以下の基本設定フローを理解した上で、Docker チュートリアルに進んでデプロイしてください。

Ⓑ 方法2:GitHub Actions デプロイ(本章の内容 ⬇️)

  • 特徴:サーバーレス。データは リモートクラウドストレージ に保存(推奨設定)

  • 対象:サーバーを持たないユーザー。GitHub の無料リソースを活用

  • 注意:完全な体験にはクラウドストレージの設定が必要で、定期的なサインイン更新も必要です

Ⓒ 方法3:ローカルデプロイ(uv)

  • 特徴:Docker なしで本機で直接実行可能。開発デバッグや Docker 環境のないユーザーに適しています

  • 対象:Windows / Mac / Linux ユーザー(Python の事前インストール不要。uv が自動管理)

  • 手順

    1. uv のインストール(インストール済みの場合はスキップ可。Python の事前インストールは不要)

    # macOS / Linux
    curl -LsSf https://astral.sh/uv/install.sh | sh
    
    # Windows (PowerShell)
    powershell -ExecutionPolicy ByPass -c "irm https://astral.sh/uv/install.ps1 | iex"

    2. クローンして実行

    git clone https://github.com/sansan0/TrendRadar.git
    cd TrendRadar
    uv sync          # 自动安装 Python 和项目依赖
    uv run python -m trendradar

    💡 ヒント

    • uv が Python バージョンを自動管理するため、Python を手動インストールする必要はありません

    • Windows ユーザーは setup-windows.bat をダブルクリックするだけで依存関係をインストールできます

    • Mac ユーザーは bash setup-mac.sh を使用できます

    • 実行前に config/config.yaml を編集して配信チャネルなどの設定を記入してください。以下の基本設定フローを参照

1️⃣ ステップ1:プロジェクトコードの取得

このリポジトリページ右上の緑色の [Use this template] ボタンをクリック → 「Create a new repository」を選択します。

⚠️ 注意:

  • 以降のドキュメントで言及される「Fork」はすべて「Use this template」と理解してください

  • Fork を使用すると実行エラーが発生する可能性があります。詳細は Issue #606 を参照

2️⃣ ステップ2:GitHub Secrets の設定

Fork したリポジトリで、Settings > Secrets and variables > Actions > New repository secret に移動します

📌 重要な説明(必ずよくお読みください):

  • 1つの Name に1つの Secret:設定項目ごとに「New repository secret」ボタンをクリックし、「Name」と「Secret」のペアを1組入力します

  • 保存後に値が見えないのは正常です:セキュリティ上の理由から、保存後に再編集しても Name(名前)しか見えず、Secret(値)の内容は見えません

  • 名前の自作は厳禁:Secret の Name(名前)は下記に記載された名前を厳密に使用してください(例:WEWORK_WEBHOOK_URLFEISHU_WEBHOOK_URL など)。勝手に変更したり新しい名前を作成したりすると、システムが認識できません

  • 複数プラットフォームの同時設定が可能:設定されたすべてのプラットフォームに通知が送信されます

設定例:

上の図のように、各行が1つの設定項目です:

  • Name(名前):下記の展開コンテンツに記載されている固定名を使用する必要があります(例:WEWORK_WEBHOOK_URL

  • Secret(値):各プラットフォームから取得した実際の内容(Webhook アドレス、Token など)を入力します

GitHub Secret 設定(⚠️ Name は厳密に一致させること):

  • Name(名前)WEWORK_WEBHOOK_URL(この名前をコピー&ペーストしてください。手入力は誤字の原因になるため避けてください)

  • Secret(値):あなたの企業微信ボットの Webhook アドレス

ボット設定手順:

スマホでの設定:

  1. 企業微信 App を開く → 対象の内部グループチャットに入る

  2. 右上の「…」ボタンをクリック → 「メッセージ配信」を選択

  3. 「追加」をクリック → 名前に「TrendRadar」と入力

  4. Webhook アドレスをコピーし、保存をクリック。コピーした内容を上記の GitHub Secret に設定

PC での設定手順も同様

この方法は企業微信のプラグイン機構に基づくため、配信スタイルはプレーンテキスト(markdown 形式なし)ですが、企業微信 App をインストールせずに個人微信へ直接配信できます。

GitHub Secret 設定(⚠️ Name は厳密に一致させること):

  • Name(名前)WEWORK_WEBHOOK_URL(この名前をコピー&ペーストしてください。手入力は避けてください)

  • Secret(値):あなたの企業微信アプリの Webhook アドレス

  • Name(名前)WEWORK_MSG_TYPE(この名前をコピー&ペーストしてください。手入力は避けてください)

  • Secret(値)text

設定手順:

  1. 上記の企業微信ボット Webhook 設定を完了する

  2. WEWORK_MSG_TYPE Secret を追加し、値を text に設定

  3. 下の画像の手順に従って、個人微信を連携する

  4. 設定完了後、スマホの企業微信 App は削除して構いません

説明

  • 企業微信ボットと同じ Webhook アドレスを使用

  • 違いはメッセージ形式:text はプレーンテキスト、markdown はリッチテキスト(デフォルト)

  • プレーンテキスト形式では、すべての markdown 構文(太字、リンクなど)が自動的に除去されます

注意:旧「飛書ボットアシスタント (BotBuilder)」は 2026 年 6 月 30 日に廃止予定です。下記のグループカスタムボット方式で設定してください。既存の BotBuilder webhook アドレスは無効になるため、再設定が必要です。

AI 分析を有効にすると、飛書配信で偶発的(約 5% の確率)に数分の遅延が発生する場合があります(AI 生成コンテンツに対するプラットフォームのコンプライアンス審査が原因と推測されます)。

GitHub Secret 設定(⚠️ Name は厳密に一致させること):

  • Name(名前)FEISHU_WEBHOOK_URL(この名前をコピー&ペーストしてください。手入力は避けてください)

  • Secret(値):あなたの飛書カスタムボットの Webhook アドレス(形式:https://open.feishu.cn/open-apis/bot/v2/hook/xxxxxxxxx

設定手順:

  1. 対象グループに入り、グループ右上の その他 ボタンをクリックし、設定 をクリックします。

グループ設定に入る

  1. 右側の 設定 画面で、グループボット をクリックします。

グループボットをクリック

  1. グループボット 画面で ボットを追加 をクリックします。

  2. ボットを追加 ダイアログで、カスタムボット を見つけてクリックします。

カスタムボットを選択

  1. カスタムボットのアバター、名前(例:「TrendRadar ホットトピック監視」)、説明を設定し、追加 をクリックします。

ボット情報を設定

  1. カスタムボットの webhook アドレス を取得し、完了 をクリックします。

⚠️ この webhook アドレスは大切に保管し、GitHub やブログなど公開閲覧可能なサイトに公開しないでください。アドレスが漏洩すると悪意のあるスパムメッセージ送信に利用される可能性があります。

webhook アドレスをコピー

  1. コピーした Webhook アドレスを GitHub Secrets の FEISHU_WEBHOOK_URL に設定します。

💡 設定完了後、グループ名の右側にあるボット画像をクリックすると、カスタムボットの詳細ページで設定情報を管理できます。

📖 公式ドキュメント:カスタムボット使用ガイド

GitHub Secret 設定(⚠️ Name は厳密に一致させること):

  • Name(名前)DINGTALK_WEBHOOK_URL(この名前をコピー&ペーストしてください。手入力は避けてください)

  • Secret(値):あなたの钉钉ボットの Webhook アドレス

ボット設定手順:

  1. ボットの作成(PC 版のみ対応)

    • 钉钉 PC クライアントを開き、対象のグループチャットに入る

    • グループ設定アイコン(⚙️)をクリック → 下にスクロールして「ボット」を開く

    • 「ボットを追加」→「カスタム」を選択

  2. ボットの設定

    • ボット名を設定

    • セキュリティ設定

      • カスタムキーワード:「热点」を設定

  3. 設定の完了

    • サービス利用規約にチェック → 「完了」をクリック

    • 取得した Webhook URL をコピー

    • URL を GitHub Secrets の DINGTALK_WEBHOOK_URL に設定

注意:モバイル版ではメッセージの受信のみ可能で、新しいボットの作成はできません。

GitHub Secret 設定(⚠️ Name は厳密に一致させること):

  • Name(名前)TELEGRAM_BOT_TOKEN(この名前をコピー&ペーストしてください。手入力は避けてください)

  • Secret(値):あなたの Telegram Bot Token

  • Name(名前)TELEGRAM_CHAT_ID(この名前をコピー&ペーストしてください。手入力は避けてください)

  • Secret(値):あなたの Telegram Chat ID

説明:Telegram は2つの Secret を設定する必要があります。「New repository secret」ボタンをそれぞれ2回クリックして追加してください

ボット設定手順:

  1. ボットの作成

    • Telegram で @BotFather を検索(大文字小文字に注意。青いバッジのチェックマークがあり、類似の 37849827 monthly users と表示されるものが公式です。公式に似せた偽アカウントに注意)

    • /newbot コマンドを送信して新しいボットを作成

    • ボット名を設定(「bot」で終わる必要があります。重複名が非常に多いため、ユニークな名前を考える必要があります)

    • Bot Token を取得(形式:123456789:AAHfiqksKZ8WmR2zSjiQ7_v4TMAKdiHm9T0

  2. Chat ID の取得

    方法1:公式 API で取得

    • 先にボットにメッセージを送信

    • https://api.telegram.org/bot<あなたのBot Token>/getUpdates にアクセス

    • 返ってきた JSON の "chat":{"id":数字} の数字を確認

    方法2:サードパーティツールを使用

    • @userinfobot を検索して /start を送信

    • 取得したユーザー ID を Chat ID として使用

  3. GitHub に設定

    • TELEGRAM_BOT_TOKEN:手順1で取得した Bot Token を入力

    • TELEGRAM_CHAT_ID:手順2で取得した Chat ID を入力

  • 注意事項:メールの一括送信機能の悪用を防ぐため、現在の一括送信では全受信者がお互いのメールアドレスを確認できます。

  • 下記のようなメール送信の設定経験がない場合は、試さないことをお勧めします

⚠️ 重要な設定依存:メール配信には HTML レポートファイルが必要です。config/config.yamlstorage.formats.htmltrue に設定されていることを確認してください:

storage:
  formats:
    sqlite: true
    txt: false
    html: true   # 必须启用,否则邮件推送会失败

false に設定すると、メール配信時にエラーが発生します:错误:HTML文件不存在或未提供: None

GitHub Secret 設定(⚠️ Name は厳密に一致させること):

  • Name(名前)EMAIL_FROM(この名前をコピー&ペーストしてください。手入力は避けてください)

  • Secret(値):送信元メールアドレス

  • Name(名前)EMAIL_PASSWORD(この名前をコピー&ペーストしてください。手入力は避けてください)

  • Secret(値):メールパスワードまたは認証コード

  • Name(名前)EMAIL_TO(この名前をコピー&ペーストしてください。手入力は避けてください)

  • Secret(値):受信者メールアドレス(複数の受信者は英語のカンマで区切ります。EMAIL_FROM と同じにして自分宛に送信することもできます)

  • Name(名前)EMAIL_SMTP_SERVER(オプション設定。この名前をコピー&ペーストしてください)

  • Secret(値):SMTP サーバーアドレス(空欄可。システムが自動認識します)

  • Name(名前)EMAIL_SMTP_PORT(オプション設定。この名前をコピー&ペーストしてください)

  • Secret(値):SMTP ポート(空欄可。システムが自動認識します)

説明:メール配信には少なくとも3つの必須 Secret(EMAIL_FROM、EMAIL_PASSWORD、EMAIL_TO)の設定が必要で、残り2つはオプション設定です

対応メールサービスプロバイダー(SMTP 設定を自動認識):

邮件服务商

域名

SMTP 服务器

端口

加密方式

Gmail

gmail.com

smtp.gmail.com

587

TLS

QQメール

qq.com

smtp.qq.com

465

SSL

Outlook

outlook.com

smtp-mail.outlook.com

587

TLS

Hotmail

hotmail.com

smtp-mail.outlook.com

587

TLS

Live

live.com

smtp-mail.outlook.com

587

TLS

163メール

163.com

smtp.163.com

465

SSL

126メール

126.com

smtp.126.com

465

SSL

Sinaメール

sina.com

smtp.sina.com

465

SSL

Sohuメール

sohu.com

smtp.sohu.com

465

SSL

天翼メール

189.cn

smtp.189.cn

465

SSL

阿里云メール

aliyun.com

smtp.aliyun.com

465

TLS

Yandexメール

yandex.com

smtp.yandex.com

465

TLS

iCloudメール

icloud.com

smtp.mail.me.com

587

SSL

自動認識:上記のメールサービスを利用する場合、EMAIL_SMTP_SERVEREMAIL_SMTP_PORT を手動で設定する必要はなく、システムが自動的に認識します。

フィードバックのお願い

  • 上記以外のメールサービスで動作確認が取れた方は、ぜひ Issues でお知らせください。サポートリストに追加します

  • 上記のメール設定に誤りがある場合や利用できない場合も、Issues でフィードバックをお願いします。プロジェクトの改善に役立ちます

特別な感謝

  • @DYZYD さん、天翼メール(189.cn)の設定を提供し、自己送受信テストを完了していただきました (#291)

  • @longzhenren さん、阿里云メール(aliyun.com)の設定を提供し、テストを完了していただきました (#344)

  • @ACANX さん、Yandex メール(yandex.com)の設定を提供し、テストを完了していただきました (#663)

  • @Sleepy-Tianhao さん、iCloud メール(icloud.com)の設定を提供し、テストを完了していただきました (#728)

よく使うメールの設定:

QQメール:

  1. QQメールのWeb版にログイン → 設定 → アカウント

  2. POP3/SMTPサービスを有効にする

  3. 認証コード(16桁の英字)を生成

  4. EMAIL_PASSWORD にはQQパスワードではなく、認証コードを入力

Gmail:

  1. 2段階認証を有効にする

  2. アプリ用パスワードを生成

  3. EMAIL_PASSWORD にはアプリ用パスワードを入力

163/126メール:

  1. Web版にログイン → 設定 → POP3/SMTP/IMAP

  2. SMTPサービスを有効にする

  3. クライアント認証コードを設定

  4. EMAIL_PASSWORD には認証コードを入力

詳細設定: 自動認識に失敗した場合は、SMTP を手動で設定できます:

  • EMAIL_SMTP_SERVER:例 smtp.gmail.com

  • EMAIL_SMTP_PORT:例 587(TLS)または 465(SSL)

受信者が複数いる場合(区切りは英数カンマであることに注意)

2つの利用方法:

方法1:無料で利用(初心者におすすめ) 🆓

特徴

  • ✅ アカウント登録不要ですぐに利用可能

  • ✅ 1日250件のメッセージ(90%のユーザーに十分)

  • ✅ Topic名がそのまま「パスワード」(推測されにくい名前を選ぶ必要あり)

  • ⚠️ メッセージは暗号化されていないため機密情報には不向きですが、このプロジェクトのような非機密情報には適しています

クイックスタート:

  1. ntfyアプリをダウンロード

  2. トピックを購読(推測されにくい名前を選ぶ):

    建议格式:trendradar-{你的名字缩写}-{随机数字}
    
    不能使用中文
    
    ✅ 好例子:trendradar-zs-8492
    ❌ 坏例子:news、alerts(太容易被猜到)
  3. GitHub Secret を設定(⚠️ Name は厳密に一致させる必要があります)

    • Name(名前)NTFY_TOPIC(この名前はコピー&ペーストしてください。手入力は避けてください)

    • Secret(値):先ほど購読したトピック名を入力

    • Name(名前)NTFY_SERVER_URL(オプション設定。この名前はコピー&ペーストしてください)

    • Secret(値):空欄のまま(デフォルトで ntfy.sh を使用)

    • Name(名前)NTFY_TOKEN(オプション設定。この名前はコピー&ペーストしてください)

    • Secret(値):空欄のまま

    説明:ntfy は最低1つの必須 Secret (NTFY_TOPIC) の設定が必要で、残り2つはオプション設定です

  4. テスト

    curl -d "测试消息" ntfy.sh/你的主题名称

方法2:セルフホスト(完全なプライバシー管理) 🔒

こんな人におすすめ:サーバーを持っている、完全なプライバシーを求める、技術力が高い

メリット

  • ✅ 完全オープンソース(Apache 2.0 + GPLv2)

  • ✅ データを完全に自社管理

  • ✅ 制限なし

  • ✅ 費用ゼロ

Docker ワンクリックデプロイ

docker run -d \
  --name ntfy \
  -p 80:80 \
  -v /var/cache/ntfy:/var/cache/ntfy \
  binwiederhier/ntfy \
  serve --cache-file /var/cache/ntfy/cache.db

TrendRadar の設定

NTFY_SERVER_URL: https://ntfy.yourdomain.com
NTFY_TOPIC: trendradar-alerts  # 自托管可用简单名称
NTFY_TOKEN: tk_your_token  # 可选:启用访问控制

アプリで購読

  • 「Use another server」をクリック

  • サーバーアドレスを入力

  • トピック名を入力

  • (オプション)ログイン認証情報を入力


よくある質問:

1日250件のメッセージはほとんどのユーザーにとって十分です。30分ごとに1回の取得として計算すると、1日約48回のプッシュで完全に足りています。

ランダムで十分に長い名前(例 trendradar-zs-8492-news)を選べば、ブルートフォース攻撃はほぼ不可能です:

  • ntfy には厳格なレート制限があります(1秒間に1リクエスト)

  • 64文字の選択肢(A-Z、a-z、0-9、_, -)

  • 10桁のランダム文字列には64^10通りの可能性があります(解読に数年かかります)


おすすめの選択:

ユーザータイプ

おすすめの方法

理由

一般ユーザー

方法1(無料)

簡単・速い・十分

技術系ユーザー

方法2(セルフホスト)

完全な管理、制限なし

高頻度ユーザー

方法3(有料)

これは自分で公式サイトを確認してください

関連リンク:

GitHub Secret 設定(⚠️ Name は厳密に一致させる必要があります):

  • Name(名前)BARK_URL(この名前はコピー&ペーストしてください。手入力は避けてください)

  • Secret(値):あなたの Bark プッシュ通知 URL

Bark について:

Bark は iOS プラットフォーム向けの無料オープンソースのプッシュ通知ツールで、シンプル・高速・広告なしが特徴です。

利用方法:

方法1:公式サーバーを利用(初心者におすすめ) 🆓

  1. Bark App をダウンロード

  2. プッシュ通知 URL を取得

    • Bark App を開く

    • ホーム画面に表示されているプッシュ通知 URL(形式例:https://api.day.app/your_device_key)をコピー

    • URL を GitHub Secrets の BARK_URL に設定

方法2:サーバーを自建(完全なプライバシー管理) 🔒

こんな人におすすめ:サーバーを持っている、完全なプライバシーを求める、技術力が高い

Docker ワンクリックデプロイ

docker run -d \
  --name bark-server \
  -p 8080:8080 \
  finab/bark-server

TrendRadar の設定

BARK_URL: http://your-server-ip:8080/your_device_key

注意事項:

  • ✅ Bark は APNs プッシュ通知を使用し、メッセージ1件あたり最大 4KB

  • ✅ 自動で分割プッシュに対応しており、メッセージが長すぎる心配はありません

  • ✅ プッシュ形式はプレーンテキスト(Markdown 構文は自動的に削除されます)

  • ⚠️ iOS プラットフォームのみ対応

関連リンク:

GitHub Secret 設定(⚠️ Name は厳密に一致させる必要があります):

  • Name(名前)SLACK_WEBHOOK_URL(この名前はコピー&ペーストしてください。手入力は避けてください)

  • Secret(値):あなたの Slack Incoming Webhook URL

Slack について:

Slack はチームコラボレーションツールで、Incoming Webhooks を使用するとメッセージを Slack チャンネルにプッシュできます。

設定手順:

ステップ 1:Slack App を作成

  1. Slack API ページにアクセス

  2. 作成方法を選択

    • 「From scratch」(ゼロから作成)をクリック

  3. App 情報を入力

    • App Name:アプリ名を入力(例 TrendRadar または 热点新闻监控

    • Workspace:ドロップダウンリストからワークスペースを選択

    • 「Create App」 ボタンをクリック

ステップ 2:Incoming Webhooks を有効化

  1. Incoming Webhooks に移動

    • 左側のメニューで 「Incoming Webhooks」 を見つけてクリック

  2. 機能を有効化

    • 「Activate Incoming Webhooks」 スイッチを見つける

    • スイッチを OFF から ON に切り替え

    • ページが自動的に更新され、新しい設定オプションが表示されます

ステップ 3:Webhook URL を生成

  1. 新しい Webhook を追加

    • ページ下部までスクロール

    • 「Add New Webhook to Workspace」 ボタンをクリック

  2. 対象チャンネルを選択

    • 認証ページが表示されます

    • ドロップダウンリストからメッセージを受信するチャンネルを選択(例 #热点新闻

    • ⚠️ プライベートチャンネルを選択する場合は、事前にそのチャンネルに参加している必要があります

  3. アプリを認証

    • 「Allow」 ボタンをクリックして認証を完了

    • 設定ページに自動的に戻ります

ステップ 4:Webhook URL をコピーして保存

  1. 生成された URL を確認

    • 「Webhook URLs for Your Workspace」エリア

    • 作成したばかりの Webhook URL が表示されます

    • 形式例:https://hooks.slack.com/services/T00000000/B00000000/XXXXXXXXXXXXXXXXXXXXXXXX

  2. URL をコピー

    • URL 右側の 「Copy」 ボタンをクリック

    • または URL を手動で選択してコピー

  3. TrendRadar に設定

    • GitHub Actions:URL を GitHub Secrets の SLACK_WEBHOOK_URL に追加

    • ローカルテスト:URL を config/config.yamlslack_webhook_url フィールドに入力

    • Docker デプロイ:URL を docker/.env ファイルの SLACK_WEBHOOK_URL 変数に追加


注意事項:

  • ✅ Markdown 形式に対応(Slack mrkdwn に自動変換)

  • ✅ 自動分割プッシュに対応(1バッチ 4KB)

  • ✅ チームコラボレーションに最適で、メッセージを一元管理

  • ⚠️ Webhook URL にはシークレットキーが含まれているため、公開しないでください

メッセージ形式プレビュー:

*[第 1/2 批次]*

📊 *热点词汇统计*

🔥 *[1/3] AI ChatGPT* : 2 条

  1. [百度热搜] 🆕 ChatGPT-5正式发布 *[1]* - 09时15分 (1次)

  2. [今日头条] AI芯片概念股暴涨 *[3]* - [08时30分 ~ 10时45分] (3次)

関連リンク:

GitHub Secret 設定(⚠️ Name は厳密に一致させる必要があります):

  • Name(名前)GENERIC_WEBHOOK_URL(この名前はコピー&ペーストしてください。手入力は避けてください)

  • Secret(値):あなたの Webhook URL

  • Name(名前)GENERIC_WEBHOOK_TEMPLATE(オプション設定。この名前はコピー&ペーストしてください)

  • Secret(値):JSON テンプレート文字列。{title}{content} のプレースホルダーに対応

汎用 Webhook について:

汎用 Webhook は HTTP POST リクエストを受け付ける任意のプラットフォームに対応しており、以下を含みます:

  • Discord:Webhook でチャンネルにプッシュ

  • Matrix:Webhook ブリッジでプッシュ

  • IFTTT:自動化フローのトリガー

  • 自建サービス:Webhook に対応した任意のカスタムサービス

設定例:

Discord 設定

  1. Webhook URL を取得

    • Discord サーバー設定 → 連携サービス → Webhooks に移動

    • 新しい Webhook を作成し、URL をコピー

  2. テンプレートを設定

    {"content": "{content}"}
  3. GitHub Secret 設定

    • GENERIC_WEBHOOK_URL:Discord Webhook URL

    • GENERIC_WEBHOOK_TEMPLATE{"content": "{content}"}

カスタムテンプレート

テンプレートは2つのプレースホルダーに対応:

  • {title} - メッセージタイトル

  • {content} - メッセージ内容

テンプレート例

# 默认格式(留空时使用)
{"title": "{title}", "content": "{content}"}

# Discord 格式
{"content": "{content}"}

# 自定义格式
{"text": "{content}", "username": "TrendRadar"}

注意事項:

  • ✅ Markdown 形式に対応(企业微信の形式と同一)

  • ✅ 自動分割プッシュに対応

  • ✅ 複数アカウント設定に対応(; で区切る)

  • ⚠️ テンプレートは有効な JSON 形式である必要があります

  • ⚠️ プラットフォームによってメッセージ形式の要件が異なるため、対象プラットフォームのドキュメントを参照してください

3️⃣ ステップ3:ニュースプッシュ通知を手動テスト

⚠️ 注意:

  • ステップ1〜2が完了したら、すぐにテストしてください!テストが成功してから必要に応じて設定を調整してください(ステップ4)

  • 自分のプロジェクトに移動してください。このプロジェクトではありません!

自分の Actions ページの見つけ方

  • 方法1:フォークしたプロジェクトのホームページを開き、上部の Actions タブをクリック

  • 方法2https://github.com/あなたのユーザー名/TrendRadar/actions に直接アクセス

比較例

  • ❌ 作者のプロジェクト:https://github.com/sansan0/TrendRadar/actions

  • ✅ あなたのプロジェクト:https://github.com/あなたのユーザー名/TrendRadar/actions

テスト手順

  1. 自分のプロジェクトの Actions ページに移動

  2. 「Get Hot News」(この表記である必要があります)を見つけてクリックし、右側の 「Run workflow」 ボタンをクリックして実行

    • この表記が表示されない場合は、#109 を参照して解決してください

  3. 約3分で、設定したプラットフォームにメッセージがプッシュされます

⚠️ 注意:

  • 手動テストを頻繁に行いすぎると、GitHub Actions の制限が発生する可能性があります

  • Run workflow をクリックした後、ブラウザページを更新しないと新しい実行記録が表示されません

4️⃣ ステップ4:設定説明(オプション)

デフォルト設定で正常に使用できますが、個別に調整したい場合は、以下のファイルを理解してください:

ファイル

役割

config/config.yaml

メイン設定ファイル:プッシュモード、時間枠、プラットフォームリスト、ホットワードの重みなど

config/frequency_words.txt

キーワードファイル:関心のある語彙を設定し、プッシュ内容をフィルタリング

config/ai_analysis_prompt.txt

AI プロンプトテンプレート:AIアナリストの役割と分析軸をカスタマイズ

.github/workflows/crawler.yml

実行頻度:実行間隔を制御(⚠️ 慎重に変更して)

👉 詳細設定チュートリアル設定の詳細

5️⃣ ステップ5:リモートクラウドストレージ & チェックイン設定

v4.0.0 の重要な変更点:「アクティビティ検出」メカニズムを導入しました。GitHub Actions は実行を維持するために定期的なチェックインが必要です。

  • 実行周期:有効期限は 7日間 で、カウントダウンが終了するとサービスは自動的に一時停止します。

  • 更新方法:Actions ページで手動で「Check In」ワークフローをトリガーすると、7日間の有効期限がリセットされます。

  • 操作手順ActionsCheck InRun workflow

  • 設計コンセプト

    • 7日間チェックインを忘れてしまうようであれば、おそらくこの情報は必須ではないでしょう。適切な一時停止は、情報の流れから離れて、脳に休息のスペースを与えるのに役立ちます。

    • GitHub Actions は貴重な公共の計算リソースです。チェックイン機構の導入は、計算能力の無駄な空回りを避け、リソースを実際にアクティブで必要なユーザーに確実に割り当てることを目的としています。ご理解とご支援に感謝します。


リモートクラウドストレージ設定について(デプロイ方法に応じて選択してください):

  • GitHub Actions ユーザー

    • 現状:Actions は実行のたびに新しい環境で、ファイルは保存されません。クラウドストレージを設定しない場合、プロジェクトはライトモード(差分プッシュなし、履歴追跡なし)で実行されます。

    • 推奨:完全な体験を得るためにリモートクラウドストレージを設定してください。

  • Docker / ローカルユーザー

    • 現状:データはデフォルトでローカルディスクに保存されます。

    • 推奨:クラウドストレージはオプションで、リモートバックアップとして利用できます。

⚠️ 前提条件(重要):

Cloudflare のプラットフォーム規則により、R2 を開通するには支払い方法の登録が必要です。

  • 目的:本人確認のみ(Verify Only)、課金は発生しません

  • 支払い:デュアルカレンシークレジットカードまたは中国国内の PayPal に対応。

  • 使用量:R2 の無料枠(10GBストレージ/月)でこのプロジェクトの日常運用を十分にカバーでき、有料の心配はありません。


GitHub Secret 設定(4項目を追加する必要があります):

Name(名前)

Secret(値)の説明

S3_BUCKET_NAME

バケット名(例 trendradar-data

S3_ACCESS_KEY_ID

アクセスキー ID(Access Key ID)

S3_SECRET_ACCESS_KEY

シークレットアクセスキー(Secret Access Key)

S3_ENDPOINT_URL

S3 API エンドポイント(例 R2:https://<account-id>.r2.cloudflarestorage.com

オプション設定:

Name(名前)

Secret(値)の説明

S3_REGION

リージョン(デフォルト auto、一部のサービスプロバイダーでは指定が必要な場合があります)

💡 その他のストレージ設定オプションデータはどこに保存されますか? を参照

詳細な操作手順(認証情報の取得):

  1. R2 の概要ページへ

    • Cloudflare Dashboard にログイン。

    • 左側のサイドバーで R2对象存储 を見つけてクリック。

  2. バケットを作成

    • 概述 をクリック

    • 右上の 创建存储桶 (Create bucket) をクリック。

    • 名前を入力し(例 trendradar-data)、创建存储桶 をクリック。

  3. API トークンを作成

    • 概述ページに戻る。

    • 右下の Account Details をクリックし、Manage (Manage R2 API Tokens) を見つけてクリック。

    • 同時に S3 APIhttps://<account-id>.r2.cloudflarestorage.com が表示されます(これが S3_ENDPOINT_URL です)

    • 创建 Account APl 令牌 をクリック。

    • ⚠️ 重要な設定

      • トークン名:任意(例 github-action-write)。

      • 権限管理员读和写 を選択。

      • ストレージバケット指定:セキュリティのため、仅适用于指定存储桶 を選択し、自分のバケット(例 trendradar-data)を選択することをお勧めします。

    • 创建 API 令牌 をクリックし、表示される Access Key IDSecret Access Keyすぐにコピーしてください(一度しか表示されません!)。

6️⃣ ステップ6:AI 分析プッシュ通知を有効化

これは v5.0.0 のコア機能で、AI がニュースを要約・分析してくれます。ぜひお試しください。

設定方法: GitHub Secrets(または .env / config.yaml)に以下を追加:

  • AI_API_KEY: あなたの API キー(DeepSeek、OpenAI などに対応)

  • AI_PROVIDER: サービスプロバイダー名(例 deepseek, openai

これだけです。複雑なデプロイは不要で、次回のプッシュ時にスマート分析レポートが表示されます。

7️⃣ ステップ7:🎉 デプロイ成功!

おめでとうございます!これで TrendRadar がもたらす効率的な情報フローを楽しめるようになりました。

💬 コミュニティに参加:公式アカウント「硅基茶水间」をフォローして、使用感や高度な活用法を共有しましょう。

8️⃣ ステップ8:発展編:AI アシスタントを選択

TrendRadar は2つの AI 利用方法を提供しており、さまざまなニーズに対応します:

特徴

✨ AI 分析プッシュ

🧠 AI スマート分析

モード

パッシブ受信 (毎日レポート)

アクティブ対話 (深層調査)

シーン

「今日は何か大きな出来事がある?」

「過去1週間の AI 業界の変化を分析して」

デプロイ

極簡 (Key を入力するだけ)

上級 (ローカル実行/Docker が必要)

クライアント

スマホ

パソコン

👉 結論:まずは AI 分析プッシュ で日常のニーズを満たしましょう。データアナリストの方や深い分析が必要な方は、AI スマート分析 をお試しください。

⚙️ 設定の詳細

📖 リマインド:この章では詳細な設定方法を説明します。まず クイックスタート の基本設定を完了してから、必要に応じて詳細オプションを確認することをお勧めします。

1. どのプラットフォームを監視する?

設定場所: config/config.yamlplatforms セクション

このプロジェクトのニュースデータは newsnow から取得しています。ウェブサイト をクリックし、[もっと見る] をクリックすると、希望のプラットフォームがあるか確認できます。

具体的な追加方法は プロジェクトソースコード を参照し、ファイル名に応じて config/config.yaml ファイルの platforms 設定を変更してください:

platforms:
  enabled: true                       # 是否启用热榜平台抓取
  sources:
    - id: "toutiao"
      name: "今日头条"
    - id: "baidu"
      name: "百度热搜"
    - id: "wallstreetcn-hot"
      name: "华尔街见闻"
    # 添加更多平台...

💡 ショートカット:ソースコードが読めない場合は、他の人が整理した プラットフォーム設定まとめ をコピーできます。

⚠️ 注意:プラットフォームは多ければ多いほど良いわけではありません。コアとなる10〜15個のプラットフォームを選ぶことをお勧めします。多すぎると情報過多になり、かえって使用体験が低下します。

2. どんな内容に関心がある?

frequency_words.txt ファイルでボットに監視してほしい内容を伝えると、見張ってくれます。通常語、必須語、フィルター語など、さまざまな使い方に対応しています。

構文タイプ

記号

機能

マッチングロジック

通常語

なし

基本マッチング

华为

いずれか1つを含めばOK

必須語

+

範囲限定

+手机

すべて同時に含む必要あり

フィルター語

!

ノイズ排除

!广告

含む場合は直接除外

件数制限

@

表示件数の制御

@10

最大10件のニュースを表示(v3.2.0 新機能)

グローバルフィルター

[GLOBAL_FILTER]

指定内容をグローバルに除外

下記の例を参照

どのような場合でもフィルター(v3.5.0 新機能)

正規表現

/pattern/

パターンの正確なマッチング

/\bai\b/

正規表現でマッチング(v4.7.0 新機能)

表示名

=> 備考

カスタム表示テキスト

/\bai\b/ => AI相关

プッシュとHTMLに備考名を表示(v4.7.0 新機能)

2.1 基本構文

設定場所: config/frequency_words.txt

1. 通常キーワード - 基本マッチング
华为
OPPO
苹果

機能: ニュースタイトルにいずれかの語が含まれていればキャプチャされます

2. 必須語 +語彙 - 範囲限定
华为
OPPO
+手机

機能: 通常語必須語の両方を同時に含む場合のみキャプチャされます

3. フィルター語 !語彙 - ノイズ排除
苹果
华为
!水果
!价格

機能: フィルター語を含むニュースは、キーワードを含んでいても直接除外されます

4. 件数制限 @数字 - 表示件数の制御(v3.2.0 新機能)
特斯拉
马斯克
@5

機能: そのキーワードグループが表示するニュースの最大件数を制限します

設定優先順位: @数字 > グローバル設定 > 制限なし

5. グローバルフィルター [GLOBAL_FILTER] - 指定内容をグローバルに除外(v3.5.0 新機能)
[GLOBAL_FILTER]
广告
推广
营销
震惊
标题党

[WORD_GROUPS]
科技
AI

华为
鸿蒙
!车

機能: どのような場合でも指定語を含むニュースをフィルターします。最優先です

使用シーン:

  • 低品質コンテンツのフィルター:衝撃的、釣りタイトル、暴露など

  • マーケティングコンテンツのフィルター:広告、プロモーション、スポンサーなど

  • 特定テーマのフィルター:エンタメ、ゴシップ(ニーズに応じて)

フィルター優先順位: グローバルフィルター > グループ内フィルター(!) > グループマッチング

セクション説明:

  • [GLOBAL_FILTER]:グローバルフィルターエリア。含まれる語はどのような場合でもフィルターされます

  • [WORD_GROUPS]:語グループエリア。既存の構文(!+@)を維持

  • セクション記号を使用しない場合、デフォルトですべて語グループとして処理されます(後方互換)

マッチング例:

[GLOBAL_FILTER]
广告

[WORD_GROUPS]
科技
AI
  • ❌ 「広告:最新テクノロジー製品発表」 ← グローバルフィルター語「広告」を含むため、直接拒否

  • ✅ 「テクノロジー企業がAI新製品を発表」 ← グローバルフィルター語を含まず、「テクノロジー」グループにマッチ

  • ✅ 「AI技術の突破が注目を集める」 ← グローバルフィルター語を含まず、「テクノロジー」グループの「AI」にマッチ

注意事項:

  • グローバルフィルター語は慎重に使用し、過度なフィルターによる価値あるコンテンツの見落としを避けてください

  • グローバルフィルター語は5〜15個以内に抑えることをお勧めします

  • 特定のグループのフィルターには、グループ内フィルター語(! プレフィックス)を優先的に使用してください

6. 正規表現 /pattern/ - パターンの正確なマッチング(v4.7.0 新機能)

通常キーワードは部分文字列マッチングを使用します。これは中国語環境では便利ですが、英語環境では誤マッチングが発生する可能性があります。例えば aitraining の中の ai にもマッチしてしまいます。

正規表現構文 /pattern/ を使用すると、正確なマッチングが可能です:

/(?<![a-z])ai(?![a-z])/
人工智能

機能: 正規表現でマッチングします。Python のすべての正規表現構文に対応

よく使う正規表現パターン:

ニーズ

正規表現の書き方

説明

英単語の境界

/\bword\b/

独立した単語にマッチ。例:/\bai\b/ は "AI" にマッチするが "training" にはマッチしない

前後が非英字

/(?<![a-z])ai(?![a-z])/

より緩やかな境界。中英混合シーンに適する

先頭マッチ

/^breaking/

"breaking" で始まるタイトルのみにマッチ

末尾マッチ

/发布$/

"发布" で終わるタイトルのみにマッチ

複数から1つ

/苹果|华为|小米/

いずれか1つにマッチ(| のエスケープに注意)

マッチング例:

# 配置
/(?<![a-z])ai(?![a-z])/
人工智能
  • ✅ "AI is the future" ← 独立した "AI" にマッチ

  • ✅ "你好ai这里" ← 前後が中国語なので、"ai" にマッチ

  • ✅ "人工智能发展迅速" ← "人工智能" にマッチ

  • ❌ "Resistance training is important" ← "training" の中の "ai" にはマッチしない

  • ❌ "The maid cleaned the room" ← "maid" の中の "ai" にはマッチしない

組み合わせ使用:

# 正则 + 普通词 + 过滤词
/\bai\b/
人工智能
机器学习
!广告

注意事項:

  • 正規表現は自動的に大文字小文字を区別しないマッチング(re.IGNORECASE)が有効になります

  • /pattern/i などの JavaScript スタイルの書き方に対応(フラグは無視されます。デフォルトで大文字小文字を区別しないため)

  • 無効な正規表現構文は通常語として処理されます

  • 正規表現は通常語、必須語(+)、フィルター語(!)に使用可能

💡 正規表現が書けない?AI に生成してもらいましょう!

正規表現に詳しくない場合は、ChatGPT / Gemini / DeepSeek に直接生成してもらうことができます。AI に伝えるだけでOK:

Python 正規表現が必要です。英単語 "ai" にマッチするが、"training" の中の "ai" にはマッチしないもの。 正規表現を /pattern/ 形式で直接教えてください。追加の説明は不要です。

AI は次のような結果を返してくれます:/(?<![a-zA-Z])ai(?![a-zA-Z])/

7. 表示名 => 備考 - カスタム表示テキスト(v4.7.0 新機能)

正規表現はプッシュメッセージや HTML ページでの表示時にわかりにくい場合があります。=> 備考 構文で表示名を設定できます:

/(?<![a-zA-Z])ai(?![a-zA-Z])/ => AI 相关
人工智能

機能: プッシュメッセージと HTML ページに複雑な正規表現ではなく「AI 関連」と表示されます

構文形式:

# 正则 + 显示名称
/pattern/ => 显示名称
/pattern/i => 显示名称    # 支持 flags 写法(flags 被忽略)
/pattern/=>显示名称       # => 两边空格可选

# 普通词 + 显示名称
deepseek => DeepSeek 动态

マッチング例:

# 配置
/(?<![a-zA-Z])ai(?![a-zA-Z])/ => AI 相关
人工智能

元の設定

プッシュ/HTML 表示

/(?<![a-z])ai(?![a-z])/ + 人工智能

(?<![a-z])ai(?![a-z]) 人工智能

/(?<![a-z])ai(?![a-z])/ => AI 相关 + 人工智能

AI 相关

注意事項:

  • 表示名はグループの最初の語にのみ記述します

  • グループ内の複数の語に表示名がある場合は、最初のものを使用します

  • 表示名を設定しない場合、グループ内のすべての語を連結して自動的に使用します


🔗 語グループ機能 - 空行区切りの重要な役割

コアルール: 空行で異なる語グループを区切り、各グループは独立して集計されます

設定例:
iPhone
华为
OPPO
+发布

A股
上证
深证
+涨跌
!预测

世界杯
欧洲杯
亚洲杯
+比赛
語グループの説明とマッチング効果:

第1グループ - スマホ新製品カテゴリ:

  • キーワード:iPhone、华为、OPPO

  • 必須語:发布

  • 効果:スマホブランド名を含み、かつ「发布」を含む必要があります

マッチング例:

  • ✅ 「iPhone 15正式发布售价公布」 ← 「iPhone」+「发布」あり

  • ✅ 「华为Mate60系列发布会直播」 ← 「华为」+「发布」あり

  • ✅ 「OPPO Find X7发布时间确定」 ← 「OPPO」+「发布」あり

  • ❌ 「iPhone销量创新高」 ← 「iPhone」はあるが「发布」がない

第2グループ - 株式市場カテゴリ:

  • キーワード:A股、上证、深证

  • 必須語:涨跌

  • フィルター語:预测

  • 効果:株式市場の値動きの実況を監視し、予測系コンテンツを除外

マッチング例:

  • ✅ 「A股今日大幅涨跌分析」 ← 「A股」+「涨跌」あり

  • ✅ 「上证指数涨跌幅创新高」 ← 「上证」+「涨跌」あり

  • ❌ 「专家预测A股涨跌趋势」 ← 「A股」+「涨跌」はあるが「预测」を含む

第3グループ - サッカー大会カテゴリ:

  • キーワード:世界杯、欧洲杯、亚洲杯

  • 必須語:比赛

  • 効果:試合関連のニュースのみを監視


📝 設定のコツ

1. 広い範囲から厳密へ
# 第一步:先用宽泛关键词测试
人工智能
AI
ChatGPT

# 第二步:发现误匹配后,加入必须词限定
人工智能
AI
ChatGPT
+技术

# 第三步:发现干扰内容后,加入过滤词
人工智能
AI
ChatGPT
+技术
!广告
!培训
2. 過度な複雑化を避ける

非推奨: 1つのグループにあまりに多くの語彙を含める

华为
OPPO
苹果
三星
vivo
一加
魅族
+手机
+发布
+销量
!假货
!维修
!二手

推奨: 複数の正確なグループに分割する

华为
OPPO
+新品

苹果
三星
+发布

手机
销量
+市场

2.2 高度な設定(v3.2.0 新機能)

キーワードの並び順の優先順位

設定場所: config/config.yaml

report:
  sort_by_position_first: false  # 排序优先级配置

設定値

並び順ルール

適用シーン

false(デフォルト)

ホット件数 ↓ → 設定位置 ↑

トレンドの注目度に注目

true

設定位置 ↑ → ホット件数 ↓

個人の優先順位に注目

例: 設定順 A、B、C、ホット数 A(3件)、B(10件)、C(5件)

  • false:B(10件) → C(5件) → A(3件)

  • true:A(3件) → B(10件) → C(5件)

グローバル表示件数制限
report:
  max_news_per_keyword: 10  # 每个关键词最多显示10条(0=不限制)

Docker 環境変数:

SORT_BY_POSITION_FIRST=true
MAX_NEWS_PER_KEYWORD=10

総合例:

# config.yaml
report:
  sort_by_position_first: true   # 按配置顺序优先
  max_news_per_keyword: 10       # 全局默认每个关键词最多10条
# frequency_words.txt
特斯拉
马斯克
@20              # 重点关注,显示20条(覆盖全局配置)

华为            # 使用全局配置,显示10条

比亚迪
@5               # 限制5条

最終効果: 設定順に 特斯拉(20件) → 华为(10件) → 比亚迪(5件) と表示

3. プッシュモードはどれを選ぶ?

設定場所: config/config.yamlreport.mode

report:
  mode: "daily"  # 可选: "daily" | "incremental" | "current"

詳細比較表

モード

対象者

プッシュタイミング

表示内容

典型的な使用シーン

当日サマリーdaily

📋 企業管理者/一般ユーザー

定時プッシュ(デフォルトは毎時1回)

当日のすべてのマッチングニュース+ 新着ニュースエリア

ケース:毎日18時に今日のすべての重要ニュースを確認特徴:1日の完全なトレンドを見られ、ホットトピックを逃さない注意:以前プッシュしたニュースも含まれます

現在のランキングcurrent

📰 自媒体人/コンテンツ制作者

定時プッシュ(デフォルトは毎時1回)

現在のランキングのマッチングニュース+ 新着ニュースエリア

ケース:毎時「今どの話題が最もホットか」を追跡特徴:現在のホット度ランキングの変化をリアルタイムに把握注意:ランキングに残り続けるニュースは毎回表示されます

増分モニタリングincremental

📈 投資家/トレーダー

新着がある場合のみプッシュ

新しく出現したマッチング頻度語ニュース

ケース:「特斯拉」を監視し、新着メッセージがある時のみ通知特徴:重複ゼロ、初出のニュースのみ表示適している:高頻度モニタリング、情報の煩わしさを回避

実際のプッシュ効果の例

「苹果」キーワードを監視し、毎時実行すると仮定します:

時間

daily モードのプッシュ

current モードのプッシュ

incremental モードのプッシュ

10:00

ニュースA、ニュースB

ニュースA、ニュースB

ニュースA、ニュースB

11:00

ニュースA、ニュースB、ニュースC

ニュースB、ニュースC、ニュースD

ニュースCのみ

12:00

ニュースA、ニュースB、ニュースC

ニュースC、ニュースD、ニュースE

ニュースD、ニュースEのみ

説明

  • daily:当日のすべてのニュースを累積表示(A、B、C すべて保持)

  • current:現在のランキングのニュースを表示(ランキング変動、ニュースDがランクイン、ニュースAがランク外)

  • incremental新しく出現したニュースのみプッシュ(重複による煩わしさを回避)

よくある質問

💡 こんな問題に遭遇? 👉 「毎時実行しているのに、最初の実行で出力されたニュースが次の実行時にも表示される」

  • 原因daily(当日サマリー)または current(現在のランキング)モードを選択している可能性があります

  • 解決incremental(増分モニタリング)モードに変更し、新着コンテンツのみプッシュ

⚠️ 増分モードの重要なお知らせ

incremental(増分モニタリング)モードを選択したユーザーへの注意:

📌 増分モードは新しくマッチングしたニュースがある場合のみプッシュされます

長時間プッシュが届かない場合、以下の原因が考えられます:

  1. 現在の時間帯にキーワードに合致する新しいホットトピックがない

  2. キーワード設定が厳しすぎる、または広すぎる

  3. 監視プラットフォームの数が少ない

解決策:

  • 解決策1:👉 キーワード設定の最適化 - キーワードの精度を調整し、監視語彙を追加・変更

  • 解決策2:プッシュモードの切り替え - current または daily モードに変更すると、定期的にプッシュを受信できます

  • 解決策3:👉 監視プラットフォームの追加 - ニュースプラットフォームを追加し、情報ソースを拡大

4. ホットトピックアルゴリズムの調整

設定場所: config/config.yamladvanced.weight セクション

advanced:
  weight:
    rank: 0.6           # 排名权重
    frequency: 0.3      # 频次权重
    hotness: 0.1        # 热度权重

現在のデフォルト設定はバランス型設定です

2つのコアシーン

リアルタイムホットトピック追跡型

advanced:
  weight:
    rank: 0.8           # 主要看排名
    frequency: 0.1      # 不太在乎持续性
    hotness: 0.1

対象者:自媒体ブロガー、マーケティング担当者、今最もホットな話題を素早く知りたいユーザー

深層トピック追跡型

advanced:
  weight:
    rank: 0.4           # 适度看排名
    frequency: 0.5      # 重视当天内的持续热度
    hotness: 0.1

対象者:投資家、研究者、ジャーナリスト、トレンドの深層分析が必要なユーザー

調整方法

  1. 3つの数字の合計は必ず 1.0 にすること

  2. 重要なものを大きくする:ランキングを重視するなら rank を大きく、持続性を重視するなら frequency を大きく

  3. 一度に 0.1〜0.2 ずつ調整し、効果を確認することをお勧めします

核心的な考え方:スピードと即時性を追求するユーザーはランキングの重みを上げ、深さと安定性を追求するユーザーは頻度の重みを上げます。

5. 受け取るメッセージはどんな見た目?

プッシュ例

📊 ホットワード統計

🔥 [1/3] AI ChatGPT : 2 件

  1. [百度热搜] 🆕 ChatGPT-5正式发布 [1] - 09時15分 (1回)

  2. [今日头条] AI芯片概念股暴涨 [3] - [08時30分 ~ 10時45分] (3回)

━━━━━━━━━━━━━━━━━━━

📈 [2/3] 比亚迪 特斯拉 : 2 件

  1. [微博] 🆕 比亚迪月销量破纪录 [2] - 10時20分 (1回)

  2. [抖音] 特斯拉降价促销 [4] - [07時45分 ~ 09時15分] (2回)

━━━━━━━━━━━━━━━━━━━

📌 [3/3] A股 股市 : 1 件

  1. [华尔街见闻] A股午盘点评分析 [5] - [11時30分 ~ 12時00分] (2回)

🆕 今回の新着ホットニュース (全 2 件)

百度热搜 (1 件):

  1. ChatGPT-5正式发布 [1]

微博 (1 件):

  1. 比亚迪月销量破纪录 [2]

更新時間:2025-01-15 12:30:15

メッセージ形式の説明

形式要素

意味

説明

🔥📈📌

🔥 [1/3] AI ChatGPT

ホット度レベル

🔥高ホット度(≥10件) 📈中ホット度(5-9件) 📌通常ホット度(<5件)

[番号/総数]

[1/3]

並び順位置

現在の語グループの全マッチンググループ内での順位

頻度語グループ

AI ChatGPT

キーワードグループ

設定ファイル内のグループ。タイトルにその中の語彙を含む必要があります

: N 件

: 2 件

マッチング数

そのグループがマッチしたニュースの総数

[プラットフォーム名]

[百度热搜]

ソースプラットフォーム

ニュースが属するプラットフォーム名

🆕

🆕 ChatGPT-5正式发布

新着マーク

今回の取得で初めて出現したホットトピック

[数字]

[1]

高ランキング

ランキング≤しきい値のホット検索。赤色太字で表示

[数字]

[7]

通常ランキング

ランキング>しきい値のホット検索。通常表示

- 時間

- 09時15分

初回時間

そのニュースが初めて発見された時間

[時間~時間]

[08時30分 ~ 10時45分]

持続時間

初回出現から最後の出現までの時間範囲

(N回)

(3回)

出現頻度

監視期間中に出現した合計回数

新着エリア

🆕 今回の新着ホットニュース

新トピックまとめ

今回新しく出現したホットトピックを個別に表示

6. Docker デプロイ

イメージ説明:

TrendRadar は2つの独立した Docker イメージを提供しており、ニーズに応じてデプロイを選択できます:

イメージ名

用途

説明

wantcat/trendradar

ニュースプッシュサービス

定時ニュース取得、通知プッシュ(必須)

wantcat/trendradar-mcp

AI 分析サービス

MCP プロトコル対応、AI 対話分析(任意)

💡 提案

  • プッシュ機能のみ必要な場合:wantcat/trendradar イメージのみデプロイ

  • AI 分析機能が必要な場合:両方のイメージをデプロイ

方法1:docker compose を使用(推奨)

  1. プロジェクトディレクトリと設定を作成:

    # 克隆项目到本地
    git clone https://github.com/sansan0/TrendRadar.git
    cd TrendRadar

    💡 説明:Docker デプロイに必要な主要なディレクトリ構造は以下の通りです:

当前目录/
├── config/
│   ├── config.yaml                 # 核心功能配置(必需)
│   ├── frequency_words.txt         # 关键词配置(必需)
│   ├── timeline.yaml               # 时间线配置
│   ├── ai_analysis_prompt.txt      # AI 分析提示词(可选)
│   ├── ai_translation_prompt.txt   # AI 翻译提示词(可选)
│   ├── ai_interests.txt            # AI 兴趣过滤配置(可选)
│   ├── ai_filter/                  # AI 过滤相关提示词
│   │   ├── prompt.txt
│   │   ├── extract_prompt.txt
│   │   └── update_tags_prompt.txt
│   └── custom/                     # 用户自定义配置(可选)
│       ├── ai/                     # 自定义 AI 提示词
│       └── keyword/                # 自定义关键词文件
└── docker/
    ├── .env                        # 敏感信息 + Docker 特有配置
    └── docker-compose.yml          # Docker Compose 编排文件
  1. 設定ファイルの説明:

    設定の役割分担の原則(v4.6.0 の改善)

    ファイル

    用途

    変更頻度

    説明

    config/config.yaml

    コア機能の設定

    レポートモード、配信設定、保存形式、配信ウィンドウ、AI 分析のオン/オフ、チャネルの有効化などのグローバルな動作を制御

    config/frequency_words.txt

    キーワード設定

    気になるホットワードを設定します。グループ化、正規表現、エイリアスなどの高度な構文に対応

    config/timeline.yaml

    タイムライン設定

    ニュースのタイムライン表示とフィルタリングルールを制御

    config/ai_analysis_prompt.txt

    AI 分析プロンプト

    AI 分析のロール定義と出力形式をカスタマイズ(v5.0.0+)

    config/ai_translation_prompt.txt

    AI 翻訳プロンプト

    AI 翻訳のプロンプトテンプレートをカスタマイズ

    config/ai_interests.txt

    AI 興味フィルタ

    AI が興味に基づいてニュースを自動的にフィルタリングするルールを定義

    config/ai_filter/

    AI フィルタリング用プロンプト

    AI フィルタリングモジュールの内部プロンプト(通常は変更不要)

    config/custom/

    ユーザーカスタム拡張

    必要に応じて

    custom/ai/ にはカスタム AI プロンプト、custom/keyword/ にはカスタムキーワードファイルを配置

    docker/.env

    機密情報 + Docker 固有の設定

    webhook の URL、API キー、S3 キー、スケジュールタスクなどを設定。git では追跡されません

    💡 役割分担のポイント

    • 機能の動作config.yaml を変更(例:あるチャネルの有効化/無効化、配信モードの調整)

    • 関心のあるコンテンツfrequency_words.txt を変更(例: 新しい関心キーワードの追加)

    • AI の出力スタイルai_analysis_prompt.txt または ai_translation_prompt.txt を変更

    • キーと認証情報docker/.env を変更(API キー、webhook URL などの機密情報はここにまとめる)

    • 個別の拡張config/custom/ ディレクトリを使用し、既定の設定を直接変更してアップデートで上書きされることを避ける

    💡 設定変更の反映config.yaml を変更後、docker compose up -d を実行してコンテナを再起動すると反映されます

    ⚙️ 環境変数の上書きメカニズム(v3.0.5+)

        `.env` ファイルの環境変数は、`config.yaml` の対応する設定を上書きします:

    環境変数

    対応する設定

    例の値

    説明

    WEBSERVER_PORT

    -

    8080

    Web サーバーのポート

    FEISHU_WEBHOOK_URL

    notification.channels.feishu.webhook_url

    https://...

    飞书 Webhook(複数アカウントは ; で区切り)

    AI_ANALYSIS_ENABLED

    ai_analysis.enabled

    true / false

    AI 分析を有効にするかどうか(v5.0.0 で追加)

    AI_API_KEY

    ai.api_key

    sk-xxx...

    AI API キー(ai_analysis と ai_translation で共用)

    AI_PROVIDER

    ai.provider

    deepseek / openai / gemini

    AI プロバイダー

    S3_*

    storage.remote.*

    -

    リモートストレージ設定(5 つのパラメータ)

    設定の優先順位: 環境変数 > config.yaml

    使い方

    • .env ファイルを編集して、必要な設定を記入します

    • または NAS/群晖 の Docker 管理画面の「環境変数」で直接追加します

    • コンテナを再起動すると有効になります: docker compose up -d

  2. サービスの起動:

    オプション A:すべてのサービスを起動(配信 + AI 分析)

    # 拉取最新镜像
    docker compose pull
    
    # 启动所有服务(trendradar + trendradar-mcp)
    docker compose up -d

    オプション B:ニュース配信サービスのみ起動

    # 只启动 trendradar(定时抓取和推送)
    docker compose pull trendradar
    docker compose up -d trendradar

    オプション C:MCP AI 分析サービスのみ起動

    # 只启动 trendradar-mcp(提供 AI 分析接口)
    docker compose pull trendradar-mcp
    docker compose up -d trendradar-mcp

    💡 ヒント

    • ほとんどのユーザーは trendradar を起動するだけでニュース配信機能を利用できます

    • ChatGPT/Gemini による AI 対話分析が必要な場合のみ、trendradar-mcp を起動します

    • 2 つのサービスは相互に独立しているので、必要に応じて自由に組み合わせられます

  3. 実行状態の確認:

    # 查看新闻推送服务日志
    docker logs -f trendradar
    
    # 查看 MCP AI 分析服务日志
    docker logs -f trendradar-mcp
    
    # 查看所有容器状态
    docker ps | grep trendradar
    
    # 停止特定服务
    docker compose stop trendradar      # 停止推送服务
    docker compose stop trendradar-mcp  # 停止 MCP 服务

方法 2: 自分で構築する場合(開発者オプション)

コードをカスタマイズしたり、自分のイメージを構築したい場合:

# 克隆项目
git clone https://github.com/sansan0/TrendRadar.git
cd TrendRadar

# 修改配置文件
vim config/config.yaml
vim config/frequency_words.txt

# 使用构建版本的 docker compose
cd docker
cp docker-compose-build.yml docker-compose.yml

イメージの構築とサービスの起動

# 选项 A:构建并启动所有服务
docker compose build
docker compose up -d

# 选项 B:仅构建并启动新闻推送服务
docker compose build trendradar
docker compose up -d trendradar

# 选项 C:仅构建并启动 MCP AI 分析服务
docker compose build trendradar-mcp
docker compose up -d trendradar-mcp

💡 アーキテクチャパラメータの説明:

  • 既定では amd64 アーキテクチャのイメージを構築(ほとんどの x86_64 サーバーに対応)

  • arm64 アーキテクチャ(Apple Silicon、Raspberry Pi など)を構築する場合は、環境変数を設定します:

    export DOCKER_ARCH=arm64
    docker compose build

イメージの更新

# 方式一:手动更新(爬虫 + MCP 镜像)
docker pull wantcat/trendradar:latest
docker pull wantcat/trendradar-mcp:latest
docker compose down
docker compose up -d

# 方式二:使用 docker compose 更新
docker compose pull
docker compose up -d

利用可能なイメージ

イメージ名

用途

説明

wantcat/trendradar

ニュース配信サービス

定期的にニュースを取得して通知を配信

wantcat/trendradar-mcp

MCP サービス

AI 分析機能(オプション)

サービスの管理コマンド

# 查看运行状态
docker exec -it trendradar python manage.py status

# 手动执行一次爬虫
docker exec -it trendradar python manage.py run

# 查看实时日志
docker exec -it trendradar python manage.py logs

# 显示当前配置
docker exec -it trendradar python manage.py config

# 显示输出文件
docker exec -it trendradar python manage.py files

# Web 服务器管理(用于浏览器访问生成的报告)
docker exec -it trendradar python manage.py start_webserver   # 启动 Web 服务器
docker exec -it trendradar python manage.py stop_webserver    # 停止 Web 服务器
docker exec -it trendradar python manage.py webserver_status  # 查看 Web 服务器状态

# 查看帮助信息
docker exec -it trendradar python manage.py help

# 重启容器
docker restart trendradar

# 停止容器
docker stop trendradar

# 删除容器(保留数据)
docker rm trendradar

💡 Web サーバーの説明:

  • cron モードでは自動起動し、ブラウザで http://localhost:8080 にアクセスすると最新のレポートを確認できます

  • ディレクトリのナビゲーションで過去のレポートにアクセスできます(例: http://localhost:8080/2025-xx-xx/

  • ポートは .env ファイルの WEBSERVER_PORT パラメータで設定できます

  • 手動停止: docker exec -it trendradar python manage.py stop_webserver

  • 手動起動: docker exec -it trendradar python manage.py start_webserver

  • セキュリティのヒント: 静的ファイルアクセスのみ提供し、output ディレクトリに限定し、ローカルアクセスのみにバインドします

データの永続化

生成されたレポートとデータはデフォルトで ./output ディレクトリに保存されます。コンテナを再起動または削除しても、データは保持されます。

📊 Web 版レポートのアクセスパス

TrendRadar が生成した当日の集計 HTML レポートは、同時に 2 つの場所に保存されます:

ファイルの場所

アクセス方法

適用シーン

output/index.html

ホストから直接アクセス

Docker デプロイ(Volume マウントでホストから参照可)

index.html

ルートディレクトリからのアクセス

GitHub Pages(リポジトリのルート、Pages が自動認識)

output/html/YYYY-MM-DD/当日汇总.html

過去のレポートへのアクセス

すべての環境(日付ごとにアーカイブ)

ローカルアクセスの例

# 方式 1:通过 Web 服务器访问(推荐,Docker 环境)
# 1. 启动 Web 服务器
docker exec -it trendradar python manage.py start_webserver
# 2. 在浏览器访问
http://localhost:8080                           # 访问最新报告(默认 index.html)
http://localhost:8080/html/2025-xx-xx/          # 访问指定日期的报告

# 方式 2:直接打开文件(本地环境)
open ./output/index.html             # macOS
start ./output/index.html            # Windows
xdg-open ./output/index.html         # Linux

# 方式 3:访问历史归档
open ./output/html/2025-xx-xx/当日汇总.html

GXP54 が 2 つあるのはなぜ?

  • output/index.html:Docker Volume がホストにマウントされ、ローカルで直接開くことができます

  • index.html:GitHub Actions がリポジトリにプッシュし、GitHub Pages が自動デプロイします

💡 ヒント: 2 つのファイルの内容は完全に同じです。どちらにアクセスしても構いません。

トラブルシューティング

# 检查容器状态
docker inspect trendradar

# 查看容器日志
docker logs --tail 100 trendradar

# 进入容器调试
docker exec -it trendradar /bin/bash

# 验证配置文件
docker exec -it trendradar ls -la /app/config/

MCP サービスのデプロイ(AI 分析機能)

AI 分析機能を使用する必要がある場合は、独立した MCP サービスコンテナをデプロイできます。

アーキテクチャの説明

flowchart TB
    subgraph trendradar["trendradar"]
        A1[定时抓取新闻]
        A2[推送通知]
    end
    
    subgraph trendradar-mcp["trendradar-mcp"]
        B1[127.0.0.1:3333]
        B2[AI 分析接口]
    end
    
    subgraph shared["共享卷"]
        C1["config/ (ro)"]
        C2["output/ (ro)"]
    end
    
    trendradar --> shared
    trendradar-mcp --> shared

クイックスタート

方法 1: docker compose でデプロイする をすでに完了している場合は、MCP サービスを起動するだけです:

cd TrendRadar/docker
docker compose up -d trendradar-mcp

# 查看运行状态
docker ps | grep trendradar-mcp

MCP サービスを単独で起動する(docker compose を使わない場合):

# Linux/Mac
docker run -d --name trendradar-mcp \
  -p 127.0.0.1:3333:3333 \
  -v $(pwd)/config:/app/config:ro \
  -v $(pwd)/output:/app/output:ro \
  -e TZ=Asia/Shanghai \
  wantcat/trendradar-mcp:latest

# Windows PowerShell
docker run -d --name trendradar-mcp `
  -p 127.0.0.1:3333:3333 `
  -v ${PWD}/config:/app/config:ro `
  -v ${PWD}/output:/app/output:ro `
  -e TZ=Asia/Shanghai `
  wantcat/trendradar-mcp:latest

⚠️ 注意: 単独で実行する場合は、現在のディレクトリに config/output/ フォルダがあり、設定ファイルとニュースデータが含まれていることを確認してください。

サービスの確認

# 检查 MCP 服务健康状态
curl http://127.0.0.1:3333/mcp

# 查看 MCP 服务日志
docker logs -f trendradar-mcp

AI クライアントでの設定

MCP サービス起動後、クライアントに応じて設定します:

Cherry Studio(推奨、GUI 設定):

  • 設定 → MCP サーバー → 追加

  • タイプ: streamableHttp

  • URL: http://127.0.0.1:3333/mcp

Claude Desktop / Cline(JSON 設定):

{
  "mcpServers": {
    "trendradar": {
      "url": "http://127.0.0.1:3333/mcp",
      "type": "streamableHttp"
    }
  }
}

💡 ヒント: MCP サービスはローカルポート(127.0.0.1)のみをリッスンするので、安全性が確保されます。リモートアクセスが必要な場合は、リバースプロキシと認証を自分で設定してください。

7. 配信内容はどう表示されますか?

設定場所: config/config.yamlreportdisplay 部分

report:
  mode: "daily"                    # 推送模式
  display_mode: "keyword"          # 显示模式(v4.6.0 新增)
  rank_threshold: 5                # 排名高亮阈值
  sort_by_position_first: false    # 排序优先级
  max_news_per_keyword: 0          # 每个关键词最大显示数量

display:
  region_order:                    # 区域显示顺序(v5.2.0 新增)
    - new_items                    # 新增热点区域
    - hotlist                      # 热榜区域
    - rss                          # RSS 订阅区域
    - standalone                   # 独立展示区
    - ai_analysis                  # AI 分析区域

よく使う設定項目の説明

調整したい項目

変更するパラメータ

デフォルト値

説明

配信モード

mode

daily

配信タイミングと内容を決定します。詳細は 配信モードの詳細 を参照

グループ化方式

display_mode

keyword

keyword=キーワードでグループ化(例: "AI")、platform=重視 (例: "微博")

ハイライト

rank_threshold

5

ランキング上位 5 件のニュースは太字表示で、最もホットなものがひと目で分かります

ソート順序

sort_by_position_first

false

false=人気が高いものが先、true=設定したキーワードが先

件数制限

max_news_per_keyword

0

キーワードごとの最大ニュース件数? 0 は制限なし

表示順序

display.region_order

上の設定を参照

リストの並びを調整することで、各領域の表示位置を制御できます

グループ化方式の比較(display_mode)

「このトピックのニュースが見たい」のか、それとも「このプラットフォームのニュースが見たい」のか。

モード

グループ化方式

見出しプレフィック

適用シーン

keyword(デフォルト)

キーワード で集約

[プラットフォーム名]

「AI」を注目し、各プラットフォームの AI 関連ニュースを見たい

platform

プラットフォームで集約

[キーワード]

「微博」に注目し、微博上の気になるキーワードに関するニュースを見たい

名前表示順序(region_order

display.region_order リストの順序を調整することで、配信メッセージ内の各領域の表示位置を制御できます。

デフォルトの順序: 新着ホットトピック → ホットランキング → RSS → スタンドアロン表示エリア → AI

カスタム例:AI 分析を先頭にしたい場合は?

display:
  region_order:
    - ai_analysis                  # 移到第一行
    - new_items
    - hotlist
    - rss
    - standalone

注意:領域が表示されるには 、次の 2 つの条件を同時に満たす必要があります。

  1. region_order リストに含まれている

  2. display.regions で対応するスイッチが true になっている

の領域のスイッチ(regions

display.regions で、配信に各領域に表示するかどうかを制御します:

display:
  regions:
    hotlist: true                    # 热榜区域(关键词匹配的热点新闻)
    new_items: false                 # 新增热点区域(含热榜新增 + RSS 新增)
    rss: true                       # RSS 订阅区域(关键词匹配的 RSS 内容)
    standalone: false                # 独立展示区(完整热榜/RSS,不受关键词过滤)
    ai_analysis: true                # AI 分析区域

領域

設定キー

デフォルト値

説明

ヒットランキング

hotlist

true

キーワードに一致するホットなを集約

新着ホットトピック

new_items

false

今回新たに出現したホットトピック(ホットランキングの新規 + RSS の新規を含む)。なお、ホットランキング領域の🆕マークはが OFF に付いています

RSS

rss

true

キーワードに一致する RSS の購読内容。オフにすると RSS 分析をスキップしますが、独立表示領域.

独立表示エリア

standalone

false

指定したプラットフォーム/RSS の全内容を表示し、キーワードの影響を受けません

AI Analysis

ai_analysis

true

AI が生成するホットトピックの分析サマリー

表示優先順位(sort_by_position_first

次のようなキーワードを設定したとします:1.特斯拉、2.比亚迪 実際のホット度:比亚迪(10 条)、特斯拉(3 条)

設定値

表示順

意図

false(デフォルト)

比亚迪(10 条)→ 特斯拉(3 条)

"ホットなものが先"

true

特斯拉(3 条)→ 比亚迪(10 条)

"設定した順序が優先で、ホット度は関係しない"

独立表示領域(standalone

シナリオ:一部のプラットフォーム(知乎ホットリスト、HackerNewsなど)は、キーワードに一致するかどうかかかわらず、その完全な内容をすべて見たい場合があります。

display:
  regions:
    standalone: true                  # 推送中展示独立展示区(关闭不影响 AI 分析)

  standalone:
    platforms: ["zhihu", "weibo"]     # 这些平台的热榜给我完整显示
    rss_feeds: ["hacker-news"]        # 这些RSS源的内容给我完整显示
    max_items: 20                     # 最多显示多少条

💡 配信表示と AI 分析は個別に制御できますregions.standalone は配信内で独立表示領域を表示するかどうかのみを制御します。配信表示をオフにしても、AI 設定で include_standalone: true を有効にすれば、AI はこれらのプラットフォームの完全なデータを分析します。AI に深い分析をさせたいが、配信メッセージを長くしたくないユーザーに向いています。

8. いつ配信されますか ?

設定場所: config/config.yamlschedule 部分 + config/timeline.yaml

クイックスタート

config.yaml でプリセットテンプレートを選択するだけで、timeline.yaml を編集する必要はありません:

schedule:
  enabled: true
  preset: "morning_evening"     # 改这里就行

選択できるプリセットテンプレート

テンプレート名

説明

配信動作

morning_evening

終日&夜間サマリー(推奨)

終日新しいランプがあったら配信 + 19:00-21:00 の夜間サマリー

always_in

終日監視

終日新しいランプがあれば全部配信時間区分なし

office_hours

勤務時間

平日 3 段構成(出勤時→昼・ランチ→終業時サマリー)、週末は自由

night_owl

夜型

午後のランチ + 深夜の終日サマリー(22:00-01:00 の深夜をまたぐ)

custom

完全カスタム

timeline.yaml 下部の custom セクションを編集

完全にカスタマイズ

すべての既存テンプレートが要件を満たさない場合は、config/timeline.yaml の下部にある custom セクションを編集して、時間帯、日のプラン、週間マッピングを自由に定義できます。詳細は timeline.yaml ファイル内のコメントを参照してください。

重要なヒント

⚠️ 以前のバージョンからアップグレードする場合の注意:

v6.0.0 では、古い notification.push_windowanalysis_window の設定が廃止されました 新しい scheduletimeline.yaml のスケジュールシステムを使用してください 以前の「毎日 1 回配信」は morning_evening プリセットで、以前の「勤務時間配信」は office_hours プリセットで置き換えられます

⚠️ GitHub Actions を利用する場合の注意書き:

GitHub Actions は実行時間の不確認があるため、±15 分程度のずれが生じることがあります 時間帯の範囲は少なくとも2 時間の余裕を持たせるわすときめ 予定ピック正確なタイミング配信えいには個人・ホストで Docker デプロイがおすすめ

9. どのくらいの頻度 ?

設定場所: .github/workflows/crawler.ymlschedule セクション

on:
  schedule:
    - cron: "0 * * * *"  # 每小时运行一次

実行間隔のはどう変更する?

GitHub Actions は 「Cron」 という時間形式を使います。詳しく理解する必要はなく、下記のコードをコピペするだけです。

設定場所: ファイル .github/workflows/crawler.yml 内の schedule セクション

希望する間隔

コピーする行

説明

1 時間ごと

- cron: "0 * * * *"

デート設定, 0 分に実行

30 分ご

- cron: "*/30 * * * *"

30 分ごとに実行

毎日 8 時

- cron: "0 0 * * *"

⚠️ 0 と書くのは UTC 時間(0時) = 北京時間(8時) のため

勤務時間は 30 分ご

- cron: "*/30 0-14 * * *"

北京時間 8:00 - 22:00 に対応

朝晩の2回

- cron: "0 0,6,12 * * *"

北京時間 8:00、14:00、20:00 に対応

⚠️ 重要な注意点

  1. 時差の問題:GitHub のサーバーの本拠地海外のため、UTC 時間が使われています。

    • 簡単な計算:設定したい北京時刻 マイナス8時間 = 記入する時刻

    • 例:北京時刻 20:00 に実行するには、設定に 12:00 を入力します

  2. 頻度を高くしないでほしい:間隔は 30 分以上のあいだ推奨します。

    • GitHub の無料リソースは限られているため、動きすぎるとアカウントが制限される場合があります

    • また、Actions の起動自体も数分の遅延さがあるため、細かい制御はあまり意味ありますません

手順解説

  1. GitHub リポジトリの .github/workflows/crawler.yml を見つけます

  2. 右上の ✏️(Edit) をクリックします

  3. cron: "..." の行の引用符の中身を、上記の「コード」に変更します

  4. 右上の緑色の Commit changes ボタンをクリックして保存します

10. 複数のグループ・デバイに配信

⚠️ セキュリティ最優先

config.yamlに直接パスワード・トークン・キーを書かないでください! パスワードを含むファイルを GitHub アップロードすると、全世界に見られてしまいます。

正しい作法

  • GitHub Actions のお場合:Settings の Secrets に追加

  • Docker 場ユschema.env ファイルに記載(このファイルはアップロードされません)

複数の場所に同時配信するどうするか?

簡単です。設定時にセミコロン ; で複数のアドレスを区切るだけです。

: あなたに2つのふたつの飞书グループがあり、両方に同時に配信したいとします:

  • グループ 1 のWebhook:https://.../webhook/aaa

  • グループ 2 のWebhook:https://.../webhook/bbb

設定時には次のように記入します: https://.../webhook/bbb;https://.../webhook/bbb

複数さん台をサポートするプラットフォーム

プラットフォーム

設定方法

注意事項

飛書/钉钉/企微

; で複数の Webhook URL を区切る

最も簡単で、そのまま繋げるだけ

Bark (iOS)

; で複数の Key URL を区切る

複数台の iPhone にプッシュ

Telegram

Token と ChatID の両方を ; で区切る

⚠️ 順序を対応させることToken1 は ChatID1 に対応Token2 は ChatID2 に対応

ntfy

Topic と Token の両方を ; で区切る

Token が不要な Topic がある場合は空欄に:token1;;token3 (真ん中は空)

よく使う設定例 (GitHub Secrets / .env)

# 飞书发给 3 个群
FEISHU_WEBHOOK_URL=https://hook1...;https://hook2...;https://hook3...

# 钉钉发给 2 个群
DINGTALK_WEBHOOK_URL=https://oapi...;https://oapi...

# Telegram 发给 2 个人 (注意一一对应)
TELEGRAM_BOT_TOKEN=tokenA;tokenB
TELEGRAM_CHAT_ID=userA;userB

ヒント:悪用防止のため、デフォルトでは各プラットフォーム最大 3 アカウントまでプッシュできます。それ以上必要な場合は、MAX_ACCOUNTS_PER_CHANNEL 設定を変更してください。

11. データはどこに保存されますか?

データはどこに保存されますか?

システムが自動的に最適な場所を選択するため、通常は気にする必要はありません:

実行環境

データ保存先

説明

Docker / ローカル実行

ローカルディスク

プロジェクトディレクトリ内の output/ フォルダに保存され、いつでも確認できます。

GitHub Actions

クラウドストレージ

GitHub Actions は実行後に環境が破棄されるため、クラウドストレージ(例:Cloudflare R2)の設定が必須です。

クラウドストレージの設定方法 (GitHub Actions ユーザー必読)

GitHub Actions で実行する場合、データを保存するための「クラウドドライブ」が必要です。例えば Cloudflare R2(無料枠があるため)を使用します。

GitHub Secrets に以下の 5 つの変数を追加:

変数名

設定値

STORAGE_BACKEND

remote

S3_BUCKET_NAME

バケット名

S3_ACCESS_KEY_ID

Access Key

S3_SECRET_ACCESS_KEY

Secret Key

S3_ENDPOINT_URL

R2 エンドポイント URL

💡 詳細チュートリアル:R2 の申請方法は? クイックスタート - リモートストレージ設定 をご覧ください

データはどのくらい保存されますか?

デフォルトでは、データは自動的に削除されません。ただし、データ量が多くてスペースを圧迫する場合は、「自動クリーンアップ」を設定できます。

設定場所config/config.yaml

storage:
  local:
    retention_days: 30    # 本地数据只保留 30 天 (0 表示永久)
  remote:
    retention_days: 30    # 云端数据只保留 30 天

プッシュ時間が合わない?(タイムゾーン設定)

海外にいる場合や、プッシュ時間がローカルタイムと合わない場合は、タイムゾーンを変更できます。

設定場所config/config.yaml

app:
  timezone: "Asia/Shanghai"  # 默认是中国时间
  • 例:アメリカ・ロサンゼルス在住の場合:America/Los_Angeles に変更

  • 例:イギリス・ロンドン在住の場合:Europe/London に変更

12. AI にホットトピックを分析させる

AI は何ができるの?

この機能を有効にすると、AI がプロのアナリストのように、ニュースの各バッチをプッシュする際に:

  1. 自動読取:マッチしたすべてのホットニュースを読む

  2. 深い思考:本来は独立しているニュース間の関連性を分析

  3. レポート作成:プッシュメッセージの末尾に、簡潔で深い「インサイトレポート」を添付

含まれる内容:ホットトピックのトレンド要約、世論の方向性の判断、クロスプラットフォーム関連分析、潜在的な影響評価など。

AI 分析を有効にするには?

最も簡単な方法は環境変数での設定です(GitHub Secrets または .env 推奨)。

必須の設定項目

変数名

設定値

説明

AI_ANALYSIS_ENABLED

true

有効スイッチ

AI_API_KEY

sk-xxxxxx

API Key

AI_MODEL

deepseek/deepseek-chat

モデル識別子(形式:provider/model

対応 AI プロバイダー(LiteLLM ベース、100+ プロバイダー対応):

プロバイダー

AI_MODEL の設定値

説明

DeepSeek (推奨)

deepseek/deepseek-chat

コストパフォーマンスが非常に高く、高頻度分析に最適

OpenAI

openai/gpt-4oopenai/gpt-4o-mini

GPT-4o シリーズ

Google Gemini

gemini/gemini-1.5-flashgemini/gemini-1.5-pro

Gemini シリーズ

カスタム API

任意の形式

AI_API_BASE と併用

💡 新機能LiteLLM ベースの統一インターフェースにより、100+ の AI プロバイダーに対応。設定がより簡単になり、エラーハンドリングも改善されました。

オプションの設定項目

変数名

デフォルト値

説明

AI_API_BASE

(自動)

カスタム API アドレス(OneAPI、ローカルモデルなど)

AI_TEMPERATURE

1.0

サンプリング温度(0-2、高いほどランダム)

AI_MAX_TOKENS

5000

最大生成トークン数

AI_TIMEOUT

120

リクエストタイムアウト(秒)

AI_NUM_RETRIES

2

失敗時のリトライ回数

上級テクニック:AI 翻訳

海外の RSS フィード(例:Hacker News)をフォローしている場合、AI がコンテンツを中国語に翻訳してプッシュできます。

設定場所config/config.yaml

ai_translation:
  enabled: true          # 开启翻译
  language: "Chinese"    # 翻译成什么语言 (Chinese, English, Japanese...)

上級テクニック:カスタム AI「ペルソナ」

AI の話し方が堅苦しいと感じますか?プロンプトを変更して、好みのスタイル(例:「毒舌評論家」、「シニア投資アドバイザー」)にカスタマイズできます。

  • 変更ファイルconfig/ai_analysis_prompt.txt

  • 変更方法:メモ帳などで開いて編集し、AI に希望する分析スタイルを指示します。

✨ AI スマート分析

TrendRadar v3.0.0 では、MCP (Model Context Protocol) ベースの AI 分析機能が新たに追加されました。自然言語でニュースデータと対話し、深い分析を行うことができます。

⚠️ 使用前の必読事項

重要:AI 機能にはローカルニュースデータが必要です

AI 分析機能は、ネットワーク上のリアルタイムデータを直接クエリするのではなくローカルに蓄積されたニュースデータoutput フォルダに保存)を分析します。

使用方法:

  1. プロジェクトにテストデータ付属output ディレクトリにはデフォルトで 2025-12-21~2025-12-27 の 1 週間分のホットランキングニュースデータが含まれており、AI 機能をすぐに体験できます。

  2. クエリ制限

    • ✅ 既存の日付範囲内のデータのみクエリ可能(12月21日〜27日、計7日間)

    • ❌ リアルタイムニュースや未来の日付はクエリ不可

  3. 最新データの取得

    • テストデータはクイック体験用です。リアルタイムデータを取得するには、プロジェクトを自分でデプロイすることをお勧めします

    • クイックスタート に従ってプロジェクトをデプロイ・実行

    • ニュースデータが 1 日以上蓄積された後、最新のホットトピックをクエリできます

1. クイックデプロイ

Cherry Studio は GUI 設定インターフェースを提供し、5 分でクイックデプロイが可能です。複雑な部分はワンクリックインストールです。

図解デプロイチュートリアル:私の公式アカウントに更新済みです。「mcp」と返信してください

詳細デプロイチュートリアルREADME-Cherry-Studio.md

デプロイモードの説明

  • STDIO モード(推奨):一度設定すれば以降は再設定不要です。図解デプロイチュートリアルではこのモードの設定のみを例としています。

  • HTTP モード(代替):STDIO モードの設定で問題が発生した場合は、HTTP モードを使用できます。このモードの設定方法は STDIO とほぼ同じですが、コピー&ペーストする内容が 1 行だけで、エラーが発生しにくいです。唯一の注意点は、使用前に毎回手動でサービスを起動する必要があることです。詳細は README-Cherry-Studio.md 下部の HTTP モードの説明を参照してください。

2. AI との対話方法を学ぶ

詳細な対話チュートリアルREADME-MCP-FAQ.md

💡 ヒント:実際には、一度に複数の質問をすることはお勧めしません。選択した AI モデルが下図の順次呼び出しさえできない場合は、別のモデルに変更することをお勧めします。

🔌 MCP クライアント

TrendRadar MCP サービスは標準の Model Context Protocol (MCP) プロトコルをサポートしており、MCP 対応のさまざまな AI クライアントに接続してスマート分析を行うことができます。

対応クライアント

注意事項

  • /path/to/TrendRadar を実際のプロジェクトパスに置き換えてください

  • Windows のパスは二重バックスラッシュを使用:C:\\Users\\YourName\\TrendRadar

  • 保存後は必ず再起動してください

方法1:HTTP モード

  1. HTTP サービスの起動

    # Windows
    start-http.bat
    
    # Mac/Linux
    ./start-http.sh
  2. Cursor の設定

    プロジェクトレベル設定(推奨): プロジェクトルートディレクトリに .cursor/mcp.json を作成:

    {
      "mcpServers": {
        "trendradar": {
          "url": "http://localhost:3333/mcp",
          "description": "TrendRadar 新闻热点聚合分析"
        }
      }
    }

    グローバル設定: ユーザーディレクトリに ~/.cursor/mcp.json を作成(同じ内容)

  3. 使用手順

    • 設定ファイルを保存後、Cursor を再起動

    • チャットインターフェースの "Available Tools" で接続済みツールを確認

    • 使用開始:今日の「AI」関連ニュースを検索

方法2:STDIO モード(推奨)

.cursor/mcp.json を作成:

{
  "mcpServers": {
    "trendradar": {
      "command": "uv",
      "args": [
        "--directory",
        "/path/to/TrendRadar",
        "run",
        "python",
        "-m",
        "mcp_server.server"
      ]
    }
  }
}

Cline 設定

Cline の MCP 設定に追加:

HTTP モード

{
  "trendradar": {
    "url": "http://localhost:3333/mcp",
    "type": "streamableHttp",
    "autoApprove": [],
    "disabled": false
  }
}

STDIO モード(推奨):

{
  "trendradar": {
    "command": "uv",
    "args": [
      "--directory",
      "/path/to/TrendRadar",
      "run",
      "python",
      "-m",
      "mcp_server.server"
    ],
    "type": "stdio",
    "disabled": false
  }
}

Continue 設定

~/.continue/config.json を編集:

{
  "experimental": {
    "modelContextProtocolServers": [
      {
        "transport": {
          "type": "stdio",
          "command": "uv",
          "args": [
            "--directory",
            "/path/to/TrendRadar",
            "run",
            "python",
            "-m",
            "mcp_server.server"
          ]
        }
      }
    ]
  }
}

使用例

分析最近7天"特斯拉"的热度变化趋势
生成今天的热点摘要报告
搜索"比特币"相关新闻并分析情感倾向

MCP Inspector は公式デバッグツールで、MCP 接続のテストに使用します:

使用手順

  1. TrendRadar HTTP サービスの起動

    # Windows
    start-http.bat
    
    # Mac/Linux
    ./start-http.sh
  2. MCP Inspector の起動

    npx @modelcontextprotocol/inspector
  3. ブラウザで接続

    • アクセス:http://localhost:3333/mcp

    • "Ping Server" 機能で接続をテスト

    • "List Tools" が 17 個のツールを返すか確認:

      • 基本クエリ:get_latest_news, get_news_by_date, get_trending_topics

      • スマート検索:search_news, find_related_news

      • 高度な分析:analyze_topic_trend, analyze_data_insights, analyze_sentiment, aggregate_news, compare_periods, generate_summary_report

      • RSS クエリ:get_latest_rss, search_rss, get_rss_feeds_status

      • システム管理:get_current_config, get_system_status, resolve_date_range

Model Context Protocol に対応するクライアントはすべて TrendRadar に接続できます:

HTTP モード

サービスアドレスhttp://localhost:3333/mcp

基本設定テンプレート

{
  "name": "trendradar",
  "url": "http://localhost:3333/mcp",
  "type": "http",
  "description": "新闻热点聚合分析"
}

STDIO モード(推奨)

基本設定テンプレート

{
  "name": "trendradar",
  "command": "uv",
  "args": [
    "--directory",
    "/path/to/TrendRadar",
    "run",
    "python",
    "-m",
    "mcp_server.server"
  ],
  "type": "stdio"
}

注意事項

  • /path/to/TrendRadar を実際のプロジェクトパスに置き換えてください

  • Windows のパスはバックスラッシュでエスケープ:C:\\Users\\...

  • プロジェクトの依存関係のインストールが完了していることを確認(setup スクリプトを実行済み)

よくある質問

確認手順

  1. ポート 3333 が使用されていないことを確認:

    # Windows
    netstat -ano | findstr :3333
    
    # Mac/Linux
    lsof -i :3333
  2. プロジェクトの依存関係がインストールされているか確認:

    # 重新运行安装脚本
    # Windows: setup-windows.bat 或者 setup-windows-en.bat
    # Mac/Linux: ./setup-mac.sh
  3. 詳細なエラーログを確認:

    uv run python -m mcp_server.server --transport http --port 3333
  4. カスタムポートを試す:

    uv run python -m mcp_server.server --transport http --port 33333

解決策

  1. STDIO モード

    • UV パスが正しいことを確認(which uv または where uv を実行)

    • プロジェクトパスが正しく、中国語文字が含まれていないことを確認

    • クライアントのエラーログを確認

  2. HTTP モード

    • サービスが起動していることを確認(http://localhost:3333/mcp にアクセス)

    • ファイアウォール設定を確認

    • localhost の代わりに 127.0.0.1 を試す

  3. 共通チェック

    • クライアントアプリを再起動

    • MCP サービスのログを確認

    • MCP Inspector で接続をテスト

考えられる原因

  1. データが存在しない

    • クローラーを実行済みか確認(output ディレクトリにデータがあるか)

    • クエリする日付範囲にデータがあるか確認

    • output ディレクトリの利用可能な日付を確認

  2. パラメータエラー

    • 日付形式を確認:YYYY-MM-DD

    • プラットフォーム ID が正しいか確認:zhihu, weibo など

    • ツールドキュメントのパラメータ説明を確認

  3. 設定の問題

    • config/config.yaml が存在するか確認

    • config/frequency_words.txt が存在するか確認

    • 設定ファイルの形式が正しいか確認

📚 プロジェクト関連

記事 4 本

AI 開発

  • ニッチなニーズがあれば、私のプロジェクトをベースに自由に開発できます。プログラミング未経験者でも試せます

  • 私のオープンソースプロジェクトは、多かれ少なかれ自作のAI 支援ソフトウェアを使用して開発効率を向上させています。このツールもオープンソース化しています

  • コア機能:プロジェクトコードを迅速に選別して AI に渡すことができ、個人のニーズを補足するだけで OK です

  • プロジェクトアドレスhttps://github.com/sansan0/ai-code-context-helper

その他のプロジェクト

📍 毛主席足跡マップ - 1893-1976年の完全な軌跡をインタラクティブに動的表示。データ提供歓迎

哔哩哔哩(bilibili)コメント欄データ可視化分析ソフトウェア

Star History Chart

📄 ライセンス

GPL-3.0 License


🔝 トップに戻る

Install Server
A
license - permissive license
A
quality
B
maintenance

Maintenance

Maintainers
Response time
Release cycle
Releases (12mo)
Commit activity

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

If you are the server author, to access and configure the admin panel.

Related MCP Servers

  • A
    license
    A
    quality
    D
    maintenance
    A real-time hotspot monitoring and news aggregation assistant that provides AI-powered analysis of trending topics across multiple platforms via the Model Context Protocol. It enables users to track news and receive automated notifications through various services like Telegram, WeChat, and Slack.
    14
    GPL 3.0
  • A
    license
    A
    quality
    Not graded
    maintenance
    An AI-powered news and trend aggregator that tracks real-time hot topics and RSS feeds with personalized filtering and summaries. It enables users to monitor global trends and receive automated reports across multiple platforms including WeChat, Telegram, and Slack.
    27
  • A
    license
    A
    quality
    D
    maintenance
    An aggregator for real-time hot topics and news from major social and financial platforms like Zhihu, Bilibili, and Wall Street News. It features an MCP server that allows AI models to fetch and analyze trending information for automated insights.
    17
    GPL 3.0
  • A
    license
    C
    quality
    D
    maintenance
    Aggregates hot trending data from 55+ platforms (e.g., Bilibili, Weibo, Zhihu) via MCP, enabling AI assistants to fetch real-time popular content.
    56
    126
    1
    MIT

View all related MCP servers

Related MCP Connectors

View all MCP Connectors

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/17191004/TrendRadar'

If you have feedback or need assistance with the MCP directory API, please join our Discord server