news 2026/5/10 18:13:16

LLM应用剖析: 热点新闻助手TrendRadar

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
LLM应用剖析: 热点新闻助手TrendRadar

1. 背景

花了近三天时间,深入研究了Github近几天一直霸榜的热门项目TrendRadar,星标已达30K+,与先前的开源项目微舆,成为11月份github的趋势榜国产双雄。

项目的部署小白直接入手,基于Github Action实现一键配置与部署,项目介绍教程还是很详细的。

2. 整体流程

整体流程

(1) 数据源: 和微舆一样,是基于开源项目newsnow的35+个新闻及资讯网站的榜单获取,包括抖音、头条、微博、贴吧、知乎等

(2) 定时爬虫: 基于Github Actions部署,默认每小时执行一次爬虫,具体可以参考.github/workflows/crawler.yml中的配置,爬取的数据保存在本地output。

(3) 个性化推送: 通过设置个人关注的关键词、热度趋势、时间频次等策略,可推送至微信、钉钉、飞书、Telegram、邮件、ntfy等

(4) MCP服务: 通过FastMCP构建MCP服务,且项目中提供Cherry Studio接入教程,该MCP服务提供如下工具:

a. get_latest_news: 获取最新下载批次的新闻

b. get_trending_topics: 获取个人关注词的新闻出现频率统计

c. get_news_by_date: 获取指定日期的新闻数据,用于历史数据分析和对比

d. analyze_topic_trend: 统一话题趋势分析工具,整合多种趋势分析模式

e. analyze_data_insights: 统一数据洞察分析工具, 整合多种数据分析模式

f. analyze_sentiment: 分析新闻的情感倾向和热度趋势

g. find_similar_news: 查找与指定新闻标题相似的其他新闻

h. generate_summary_report: 每日/每周摘要生成器, 自动生成热点摘要报告

i. search_news: 统一搜索接口,支持多种搜索模式

j. search_related_news_history: 基于种子新闻,在历史数据中搜索相关新闻

k. get_current_config: 获取当前系统配置

l. get_system_status: 获取系统运行状态和健康检查信息

m. trigger_crawl: 手动触发一次爬取任务

3. 核心源码

(1) 整体代码非常简单,代码风格偏冗余(近5000行的main.py包含了所有),建议客官们源码可以浏览浏览。

(2) 仔细研读了FastMCP的操作手册,发现现在构建MCP服务,也是手拿把掐分分钟。以下是该项目MCP服务的部分内容

from fastmcp import FastMCP

# 创建 FastMCP 2.0 应用

mcp = FastMCP('trendradar-news')

@mcp.tool

async def trigger_crawl(

platforms: Optional[List[str]] = None,

save_to_local: bool = False,

include_url: bool = False

) -> str:

"""

手动触发一次爬取任务(可选持久化)

Args:

platforms: 指定平台ID列表,如 ['zhihu', 'weibo', 'douyin']

- 不指定时:使用 config.yaml 中配置的所有平台

- 支持的平台来自 config/config.yaml 的 platforms 配置

- 每个平台都有对应的name字段(如"知乎"、"微博"),方便AI识别

- 注意:失败的平台会在返回结果的 failed_platforms 字段中列出

save_to_local: 是否保存到本地 output 目录,默认 False

include_url: 是否包含URL链接,默认False(节省token)

Returns:

JSON格式的任务状态信息,包含:

- platforms: 成功爬取的平台列表

- failed_platforms: 失败的平台列表(如有)

- total_news: 爬取的新闻总数

- data: 新闻数据

Examples:

- 临时爬取: trigger_crawl(platforms=['zhihu'])

- 爬取并保存: trigger_crawl(platforms=['weibo'], save_to_local=True)

- 使用默认平台: trigger_crawl() # 爬取config.yaml中配置的所有平台

"""

tools = _get_tools()

result = tools['system'].trigger_crawl(platforms=platforms, save_to_local=save_to_local, include_url=include_url)

return json.dumps(result, ensure_ascii=False, indent=2)

def run_server(

project_root: Optional[str] = None,

transport: str = 'stdio',

host: str = '0.0.0.0',

port: int = 3333

):

"""

启动 MCP 服务器

Args:

project_root: 项目根目录路径

transport: 传输模式,'stdio' 或 'http'

host: HTTP模式的监听地址,默认 0.0.0.0

port: HTTP模式的监听端口,默认 3333

"""

# 初始化工具实例

_get_tools(project_root)

# 根据传输模式运行服务器

if transport == 'stdio':

mcp.run(transport='stdio')

elif transport == 'http':

# HTTP 模式(生产推荐)

mcp.run(

transport='http',

host=host,

port=port,

path='/mcp' # HTTP 端点路径

)

else:

raise ValueError(f"不支持的传输模式: {transport}")

4. 总结与思考

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/4/30 1:24:13

1小时搞定活动签到系统原型:Vue二维码实践

快速体验 打开 InsCode(快马)平台 https://www.inscode.net输入框内输入如下内容: 开发一个活动签到系统原型,功能包括:1. 后台生成活动签到二维码;2. 用户扫码签到;3. 签到数据统计展示。使用Vue 3 qrcode.vue实现前…

作者头像 李华
网站建设 2026/5/9 3:58:49

企业如何用VMware Horizon Client实现高效远程办公

快速体验 打开 InsCode(快马)平台 https://www.inscode.net输入框内输入如下内容: 开发一个企业级远程办公解决方案,基于VMware Horizon Client。功能包括:1. 一键部署企业虚拟桌面环境;2. 集成多因素认证确保安全性;…

作者头像 李华
网站建设 2026/5/6 4:15:01

《金仓数据库:体验升级》

兼容 是对企业历史投资的尊重 是确保业务平稳过渡的基石 然而 这仅仅是故事的起点 在数字化转型的深水区,企业对数据库的需求早已超越“语法兼容”的基础诉求。无论是核心业务系统的稳定运行,还是敏感数据的安全防护,亦或是复杂场景下的性能优…

作者头像 李华
网站建设 2026/5/5 21:09:13

1小时用Vue3文档完成项目原型开发

快速体验 打开 InsCode(快马)平台 https://www.inscode.net输入框内输入如下内容: 构建一个Vue3快速原型生成器,功能包括:1) 从Vue3文档中提取常用组件模板;2) 可视化拖拽界面组合组件;3) 一键生成可运行的项目骨架&a…

作者头像 李华
网站建设 2026/5/2 7:00:20

延凡 APM 应用性能管理系统:AI+eBPF 驱动全栈智能可观测

延凡 APM 应用性能管理系统是专为中小企业、互联网团队及数字化转型企业打造的轻量化智能可观测平台,紧扣《数据中心智能化运维综合管控技术要求》(YDT 6231-2024)核心规范,聚焦 “故障快诊、性能优化、合规审计、成本可控” 核心…

作者头像 李华
网站建设 2026/5/10 14:11:51

如何导入和导出Android联系人(4 种可行方法)

管理联系人是Android用户的重要任务之一,尤其是在更换手机、创建备份或在帐户之间共享联系人时。幸运的是, Android提供了多种快速安全地导入和导出联系人的方法。无论您是新手还是技术娴熟的用户,本指南都将引导您轻松掌握导入和导出Android…

作者头像 李华