Hotdry.
ai-systems

使用 Docker 部署 TrendRadar:实现多平台热点聚合与自动化通知

通过 Docker 快速部署 TrendRadar,实现无缝多平台新闻聚合,利用 MCP AI 分析热点趋势,并配置 WeChat、Email、Telegram 等自动化推送,无需编码。

在信息爆炸的时代,如何高效聚合多平台新闻热点,并通过 AI 驱动的分析实现智能趋势跟踪和自动化通知,成为工程化部署的关键挑战。TrendRadar 项目提供了一个轻量级的解决方案,通过 Docker 容器化部署,可以无缝集成多平台数据采集、MCP 协议的 AI 分析,以及多渠道推送机制,无需复杂的自定义编码。本文将聚焦于 Docker 部署的工程实践,阐述观点、提供证据支持,并给出可落地的参数配置和操作清单,帮助开发者快速上线系统。

首先,观点上,Docker 部署 TrendRadar 的核心优势在于其容器化特性,确保环境一致性和可移植性,避免了传统 Python 依赖安装的痛点。根据项目设计,TrendRadar 支持聚合 11 个主流平台(如知乎、抖音、Bilibili、华尔街见闻等)的热点新闻,并通过 MCP (Model Context Protocol) 协议接入 AI 模型进行深度分析,包括趋势追踪、情感分析和相似新闻检索。同时,自动化通知功能覆盖企业微信(WeChat)、Email 和 Telegram 等渠道,支持三种推送模式:当日汇总(daily)、当前榜单(current)和增量监控(incremental),这使得系统适用于投资者、自媒体人或企业舆情监控场景。证据来源于项目 GitHub 仓库的文档,明确指出 Docker 镜像 wantcat/trendradar:latest 已支持多架构运行,部署仅需一行命令,即可实现 30 秒网页浏览和 1 分钟手机通知的快速响应。

进一步证据显示,TrendRadar 的 AI 分析模块基于 MCP 协议,提供 13 种工具,如 get_latest_news(获取最新新闻)、analyze_topic_trend(话题趋势分析)和 generate_summary_report(摘要生成)。这些工具允许自然语言查询,例如 “分析最近一周 AI 热点的热度变化”,无需编写额外代码,即可从本地积累的新闻数据中提取洞察。推送机制的证据在于支持环境变量覆盖配置,例如通过 -e FEISHU_WEBHOOK_URL 设置飞书通知,或 -e TELEGRAM_BOT_TOKEN 配置 Telegram Bot,确保安全性和灵活性。项目更新日志(v3.0.5)还优化了 Docker 环境变量支持,解决了 NAS 用户配置不生效的问题,证明了其工程化成熟度。

在可落地参数方面,部署 TrendRadar 时,首先准备配置目录:创建 config 文件夹,下载 config.yaml 和 frequency_words.txt 文件。其中,config.yaml 定义核心参数,如 report.mode: "daily"(当日汇总模式,适合全面趋势跟踪);notification.push_window.enabled: true(启用时间窗口,start: "09:00", end: "18:00",避免非工作时段打扰);crawler.platforms 列出监控平台,默认包括 toutiao、baidu、wallstreetcn-hot 等,可扩展至 35 个。frequency_words.txt 支持关键词语法:普通词如 “AI”,必须词如 “+ 技术”,过滤词如 “! 广告”,用空行分隔词组,实现精准筛选。例如,第一组:AI\nChatGPT\n + 趋势;第二组:比特币 \n + 价格 \n! 预测。这确保了推送内容的针对性,减少信息噪音。

对于通知参数,WeChat(企业微信)配置 -e WEWORK_WEBHOOK_URL="https://qyapi.weixin.qq.com/cgi-bin/webhook/send?key=your_key";Email 配置 -e EMAIL_FROM="user@example.com" -e EMAIL_PASSWORD="auth_code" -e EMAIL_TO="recipient@example.com",支持 SMTP 自动识别(如 QQ 邮箱端口 465,SSL);Telegram 配置 -e TELEGRAM_BOT_TOKEN="123456:ABC"-e TELEGRAM_CHAT_ID="your_chat_id"。推送频率通过 CRON_SCHEDULE="*/30 * * * *"设置为每 30 分钟执行一次,平衡实时性和资源消耗。AI 分析需额外启动 MCP 服务:uv run python -m mcp_server.server --transport http --port 3333,然后在客户端如 Claude Desktop 配置 {"url":"http://localhost:3333/mcp"}。

操作清单如下,确保部署成功:

  1. 环境准备:安装 Docker 和 Docker Compose,确保系统支持多架构(arm64/x86_64)。创建项目目录:mkdir trendradar && cd trendradar。

  2. 配置文件挂载:wget https://raw.githubusercontent.com/sansan0/TrendRadar/master/config/config.yaml -P config/;wget https://raw.githubusercontent.com/sansan0/TrendRadar/master/config/frequency_words.txt -P config/。编辑 frequency_words.txt 添加关键词组,config.yaml 调整 report.mode 和 push_window。

  3. Docker Compose 启动:下载 docker-compose.yml 和 .env,编辑 .env 中的 webhook 变量,如 NTFY_TOPIC="trendradar-alerts"(可选 ntfy 推送)。运行 docker-compose up -d。

  4. 验证运行:docker logs -f trend-radar 检查日志;docker exec -it trend-radar python manage.py status 查看状态。手动触发:docker exec -it trend-radar python manage.py run。

  5. AI 集成:在 output 目录积累数据后,启动 MCP 服务。测试查询:“搜索今天知乎的热点新闻”。

  6. 监控与优化:设置阈值,如 weight.rank_weight: 0.6(排名权重 60%),frequency_weight: 0.3(频次 30%),hotness_weight: 0.1(热度 10%)。监控点包括推送成功率(>95%)、数据更新延迟(<5 分钟)、MCP 响应时间(<2 秒)。

风险控制:数据持久化使用 -v ./output:/app/output 挂载卷,避免容器重启丢失历史新闻;回滚策略若推送失败,切换至 incremental 模式,仅发新增;若 Docker 镜像拉取慢,使用本地构建 docker-compose build。

通过以上配置,TrendRadar 的 Docker 部署不仅实现了多平台聚合和 AI 分析,还确保了通知的可靠性和低侵入性。实际落地中,可根据场景调整参数,如投资者优先 incremental 模式和高频 CRON(*/15 * * * *),自媒体人选用 current 模式和图片导出功能(GitHub Pages)。此方案无需编程基础,适用于个人或团队使用。

资料来源:GitHub 项目仓库 https://github.com/sansan0/TrendRadar,包含详细部署文档和更新日志。

查看归档