TrendRadarDocs项目来自sansansansan 个人项目与软件主页sandev.cc
首页文档社区企业合作个人支持致谢
  • 开始使用
    • 选择部署方式
    • 无服务器:GitHub Actions
    • 服务器 / NAS:Docker
    • 本机试用:本地运行
    • 配置内容与推送
  • 数据源配置
    • 平台配置
    • 自建热点源(AI 部署)
    • RSS 订阅配置
  • 内容筛选
    • 关键词配置
    • AI 智能筛选
  • 推送通知
    • 推送渠道
    • 推送模式
    • 调度系统
  • AI 增强
    • AI 分析推送
    • AI 多语言翻译
    • MCP 对话分析
    • MCP 提问指南
  • 数据与运维
    • 存储配置
    • 配置编辑器
    • 发布网页报告
    • 系统架构
  • 其他
    • 常见问题
  1. 文档
  2. /
  3. 数据与运维
  4. /
  5. 系统架构
上一篇发布网页报告下一篇常见问题
© TrendRadar·GPL-3.0 License·官网·GitHub·by sansan

系统架构

TrendRadar 由主程序和 MCP 分析服务两部分组成。主程序负责数据采集、处理和推送; MCP 服务提供基于 AI 的数据查询和分析能力。

主程序三段式流水线

主程序的核心工作流程分为三个阶段,每次运行时依次执行:
1
第一阶段:数据采集
从多个数据源获取原始信息。热榜数据通过 newsnow API 获取, 涵盖知乎、微博、抖音、百度等多个平台的实时热点。 同时从用户配置的 RSS/Atom 订阅源中拉取最新内容。
2
第二阶段:数据处理
对采集到的原始数据进行多层处理。首先通过关键词匹配和 AI 智能过滤筛选相关内容; 然后使用加权算法(综合排名、出现频率、热度值等因素)进行评分排序; 最后进行去重处理,并对新出现的内容标记「新」标识,实现增量检测。
3
第三阶段:输出与推送
将处理后的结果以多种形式输出。生成 HTML 格式的可视化报告; 向已配置的推送渠道发送消息(共支持 9 种推送渠道); 如果启用了 AI 分析功能,分析结果会附加到推送内容中; 如果启用了翻译功能,内容会被翻译为指定语言。

数据流向

以下展示了数据从采集到最终输出的完整流转过程:
数据源(newsnow API / RSS 订阅)
         |
         v
    数据采集模块
         |
         v
    原始新闻数据
         |
         v
  关键词匹配 / AI 过滤
         |
         v
    匹配的新闻条目
         |
         v
   加权评分与排序
         |
         v
    排序后的结果
         |
    +----+----+--------+
    |         |         |
    v         v         v
 HTML 报告  推送消息  AI 分析

MCP 分析服务

MCP Server 是一个独立的服务,基于 Model Context Protocol(模型上下文协议)提供 AI 对话式的数据分析能力。它与主程序分开运行,可以独立部署。
功能:提供 27 个工具函数,用于查询和分析 TrendRadar 采集到的本地数据。 支持按日期、关键词、平台等维度进行数据检索和趋势分析。
通信方式:支持两种通信协议:
  • HTTP -- 通过端口 3333 提供 HTTP 接口,适合远程调用
  • STDIO -- 标准输入输出流,适合本地集成
数据来源:MCP 分析的是本地 output/ 目录中的数据, 不会访问互联网。因此需要先运行主程序完成数据采集,MCP 才有数据可供分析。

配置文件说明

TrendRadar 的行为由以下配置文件控制,每个文件负责不同方面的设置:
文件作用修改频率
文件
作用
修改频率
config/config.yaml核心系统配置:推送模式、平台选择、AI 设置、通知渠道、存储方案低
config/frequency_words.txt关键词定义:分组、过滤规则、正则匹配高
config/timeline.yaml调度和时间控制:每日各时段的任务安排低
config/ai_analysis_prompt.txtAI 分析的人设和输出格式模板中
config/ai_translation_prompt.txtAI 翻译的提示词模板低
config/ai_interests.txtAI 智能过滤的兴趣描述中
docker/.env密钥信息和 Docker 专用配置(API Key、Webhook URL 等)低
配置优先级
当使用 Docker 部署时,环境变量(.env 文件中的值)的优先级高于 config.yaml 中的配置。建议将密钥类信息(API Key、Webhook URL 等) 放在环境变量中,将业务逻辑配置放在 config.yaml 中。

存储架构

TrendRadar 支持两种存储方式,根据部署环境自动选择:
本地存储
使用 SQLite 数据库,文件存放在 output/ 目录中。 适用于 Docker 部署和本地部署场景。数据文件包括新闻数据库、RSS 数据库、HTML 报告和运行日志。
远程存储
支持 S3 兼容的云存储服务(如 Cloudflare R2、阿里云 OSS、腾讯云 COS 等)。 主要用于 GitHub Actions 部署场景,因为 Actions 每次运行不保留本地文件, 需要远程存储来持久化数据。

模块结构

项目的主要目录和对应的功能模块:
目录说明
目录
说明
trendradar/主程序包:数据采集、关键词过滤、评分排序、报告生成、通知推送、存储管理
mcp_server/MCP 分析服务:基于 Model Context Protocol 的 AI 对话分析工具
config/配置文件目录:系统配置、关键词、提示词、调度计划
docker/Docker 部署文件:Compose 编排文件和环境变量配置
output/输出目录:生成的数据库、HTML 报告、日志文件