返回 Skill 列表
extension
分类: 数据与分析无需 API Key

AI-News-Collector

每日 AI 科技日报 + 7天周趋势报告自动生成系统。纯规则引擎,零 API Key 零 Token,开箱即用。 -- 从 36氪/量子位/InfoQ/钛媒体 4 大源抓取资讯,经 8 步智能过滤(去重→领域过滤→四维评分→智能摘要→主题分类→投资信号→日报生成→趋势分析),输出: -- 日报:8 个板块(今日概览/核心观点/速读摘要/头条/主题分类/资讯速览/投资信号雷达/前瞻关注) -- 周报:7 天跨日关联分析(主题热度/投资信号密度/活跃公司 TOP10/高价值主题排行/事件时间线) -- 支持自动同步到 Obsidian 知识库。参考 Anthropic Financial Services Morning Note 方法论,输出 Opinionated Take(观点驱动)而非信息堆砌。

person作者: user_f0974107hubcommunity

ai-news-collector

AI 科技日报自动生成系统。纯规则引擎,零 API Key,开箱即用。

一句话介绍

每天自动从 4 大科技媒体(36氪/量子位/InfoQ/钛媒体)采集资讯,经过 8 步智能过滤,生成一份结构化日报,帮你 5 分钟掌握当天科技圈最重要的事。

效果展示

日报输出 8 个板块(v2.0 参考 Anthropic Financial Services 方法论优化):

📊 今日概览 — 价值分布 + 主题分布 + 投资信号统计
🧠 今日核心观点 — 最重要事件的综合研判(Opinionated Take)
🎯 今日X件事值得看 — Top5-7 速读摘要(一句话 ≤150字)
🔴 今日头条 — 重大事件详解
📂 主题分类资讯 — 按主题分组(AI大模型/具身智能/芯片/投融资...)
📋 常规资讯速览 — 标题 + 摘要
💰 投资信号雷达 — 融资/IPO/收购信号(🔥强烈/👀跟踪/📊参考)
🔮 前瞻关注 — 未来催化剂和待验证信号追踪

周趋势报告

除日报外,每天采集结束后自动生成/更新 7 天周期周趋势报告,命名规则 weekly_trend_YYYY-Wxx(MMDD-MMDD).md(ISO 周编号)。

周报板块:

  • 📋 本周概览 — 日报天数 / 资讯总数 / 头条数 / 投资信号数
  • 📈 主题热度趋势 — 升温/降温/稳定主题 + 每日分布序列
  • 💰 投资信号趋势 — 三类信号的7天密度变化
  • 🏢 活跃公司 TOP10 — 头部公司提及次数 + 头条数 + 代表性标题
  • 🎯 高价值主题排行 — 各主题(头条+重要)占比率条形图
  • 📅 事件追踪时间线 — 跨多天的同一实体/事件发展链

周报按 ISO 周号命名,每周日最后采集后定稿,也可随时手动补跑

快速开始

# 1. 安装依赖
pip install -r requirements.txt

# 2. 运行采集(⚠️ 工作目录必须是项目根目录,非 src/)
cd ai-news-collector && python src/main.py
# 不要用 `cd src && python main.py`:会导致 paths 双嵌套,TrendAnalyzer 找不到日报

# 3. 查看报告
# 日报: src/reports/daily_news_YYYY-MM-DD.md
# 周报: src/reports/weekly_trend_YYYY-Wxx(MMDD-MMDD).md

配置说明

编辑 config/config.yaml

# 采集参数
collection:
  max_final: 20  # 最终精选数量

# 关键词(按需增删)
keywords:
  ai_ml:
    keywords: ["AI", "大模型", "GPT"]

# Obsidian 同步(可选)
obsidian:
  path: ""  # 留空则跳过同步

技术架构

RSS采集 → 关键词过滤 → 四维评分 → 智能摘要 → 主题分类 → 投资信号 → 报告生成

核心特性:

  • 四维评分:投融资35% + 技术突破30% + 市场影响25% + 战略10%
  • 污染检测:自动识别快讯合集(如"8点1氪"),提取相关内容
  • 三级降级:原文 → 搜索补充 → RSS摘要,确保每条都有摘要
  • 否定语境:过滤"没有并购计划"类误报

RSS 源状态

| 源 | 状态 | 备注 | |----|------|------| | 36氪 | ✅ | 主要科技/投资资讯 | | 量子位 | ✅ | AI 垂直媒体 | | InfoQ | ✅ | 技术深度资讯 | | 钛媒体 | ✅ | 科技商业资讯 |

环境依赖

  • Python 3.10+
  • 依赖包:requests, feedparser, beautifulsoup4, loguru, schedule, pyyaml, python-dateutil
  • 无需 API Key(纯规则引擎)

FAQ

Q: 为什么某些源没有数据? A: 检查 config/sources.yaml 中对应源的 enabled 字段是否为 true

Q: 如何自定义关注领域? A: 修改 config/config.yaml 中的 keywords 配置项,添加或删除关键词。

Q: 报告如何同步到 Obsidian? A: 在 config/config.yaml 中配置 obsidian.path 为你的 Obsidian 知识库路径。

变更记录

| 日期 | 版本 | 变更 | |------|------|------| | 2026-03 | v1 | 初始版本:7步流水线,四维评分 | | 2026-04-03 | v1.1 | P0领域过滤:强排除机制 | | 2026-04-04 | v1.2 | 投资信号系统:否定语境检测 | | 2026-04-10 | v1.3 | 趋势追踪:7天趋势分析 + 周报 | | 2026-04-17 | v1.4 | 摘要质量:污染检测 + 降级策略 | | 2026-04-22 | v1.5 | 架构优化:记忆渐进式加载 | | 2026-04-24 | v1.6 | 质量监控:评分模型评估 | | 2026-05-08 | v1.7 | P3速读摘要:「今日X件事值得看」 | | 2026-05-19 | v1.8 | 报告优化:板块位置调整 | | 2026-05-21 | v1.9 | 代码迁移至 skill 目录 | | 2026-05-22 | v1.10 | 聚合标题拆分子项匹配 + 社会比赛优化 | | 2026-06-01 | v1.11 | Anthropic 方法论注入:新增「今日核心观点」「前瞻关注」板块,参考 Morning Note 的 Opinionated Take 理念 | | 2026-07-04 | v1.12 | 路径健壮性:config.yaml 绝对路径 + ReportGenerator PROJECT_ROOT 兜底,修复周报数据断流 Bug;SKILL.md 补充周报能力描述 | | 2026-07-12 | v1.12.1 | 渲染层截断修复:_write_news_item/_write_news_compact_smart_truncate 后补省略号前先 rstrip(',;、:'),消除 ,.../、... 生硬结尾(续 v1.12 摘要截断优化) | | 2026-07-17 | v1.12.2 | 摘要串味兜底:新增标题-正文主题一致性校验(_extract_title_subject_entities/_is_title_summary_inconsistent)。仅针对"抓取原文"摘要,三条件判定(标题主语实体全缺 + 摘要存在标题外强势实体 + 该实体不在 RSS 原文)——拦截混排快讯流导致的串味(如 7/17 文远知行 WITT 摘要被蚂蚁集团内容串味),回退用 RSS 原文摘要。离线测试 20 条仅命中真实串味、零误伤 | | 2026-07-19 | v1.12.3 | 修复 v1.12.2 守卫误伤:v1.12.2 的 _extract_title_subject_entities 第3步 3~6字 n-gram 未做功能字切分,会把"交给阿里""把灵魂交"这类动宾短语误当标题主语实体,导致"苹果AI入华,把灵魂交给阿里、百度"被误判串味→回退过短RSS→整条被备份新闻顶替(新闻丢失)。修法:新增 _SUBJECT_FRAG_SPLIT,按功能字/虚词(把让使给与和及的了的着过又叫为是在对向从以于当将被已因由比跟同替帮,不含交/用——交会误切"交通银行"、用会误切"通用/应用")切分主语片段后再提 n-gram。离线验证:苹果AI入华→[](不再误判)、逐际动力/银河通用/星宸科技/文远知行/智元机器人/交通银行均正确捕获;重跑 7/19 日报确认苹果AI入华已保留、真实串味(星宸科技/数智周报/菲利华)仍被拦截、截断残留0 | | 2026-07-20 | v1.12.4 | 游离引号剥离:_clean_summary 新增两步清洗——① 句末标点(。!?)后紧跟的引号(直/弯)视为被截断文章遗留的悬空闭引号,直接剥除(合法闭引号绝不会紧跟句号,故不误伤"Token工厂"类成对引号);② 句首悬空开引号也剥除。触发场景:7/18 PPIO 摘要 工厂。" 自 2024 的悬空闭引号。验证:直/弯引号游离场景均修复、成对引号("Token工厂"/"大模型")保留、句首悬空开引号剥除;重跑 7/20 日报确认悬空引号0、截断残留0、合法成对引号保留34处 | | 2026-07-29 | v1.12.5 | 聚合流跳过原文抓取(B1 优化):批量抓取阶段 if not self._is_aggregate(title) 跳过聚合/导览类条目(点氪/氪星晚报/早报/晚报)的原文抓取——实测其文章页正文为无标点连写快讯沙拉,抓取只会更长、且仍处于沙拉内,抓回后做串味清洗无效。聚合条目统一走 RSS 描述 + 方案A 子段提取。重跑 7/29 日报确认聚合条目不再触发无谓抓取 | | 2026-07-30 | v1.12.6 | 抓取重试加固:原 range(2) 改为 range(3)(max_retries=3),失败重试加指数退避 time.sleep(0.5*(attempt+1)),并用 for...else 区分"成功 break"与"全程失败"。规避并发抓取偶发网络抖动导致的漏网(如长鑫类可抓文章跌入 fallback)。单测三层(3次失败兜底/全程失败/HTTP500重试)全 PASS;重跑 7/30 日报 fallback 3→1 | | 2026-07-29 | v1.12.7 | 署名泄漏修复:扩 _clean_summary 署名标签集为 作者/撰文/编辑/整理/记者/出品/文,支持链式匹配 + 尾随无标签连署人名(如"杨轩");加防误杀前瞻约束("文"后须接人名特征,避免误杀"文|档"类合法内容)。根治"编辑|"署名泄漏。单测 6 泄漏样本 + 4 误伤样本全 PASS | | 2026-08-01 | v1.12.8 | 方案A 聚合串味修复:新增 _extract_roundup_section(title, text),对聚合/导览条目(如 9点1氪)的 RSS 描述(多子新闻拼接沙拉)做标题感知子段提取——只切出与标题主题最匹配的那一条子新闻,邻单元高权重扩展还原完整句。关键词用 2~3 字 N-gram 滑动窗口 + 停用词过滤(规避中文无分词把整段当超长关键词的坑),优先按空白切分(真实导览空格分隔)、无空白退回按标点切。重跑 8/01 日报确认"9点1氪丨马斯克回应特斯拉剥离中国业务"从拼接沙拉变为干净特斯拉否认摘要(含 Musk "这是假新闻" 原话),污染检测拦截 0、署名泄漏 0 | | 2026-08-02 | v1.12.9 | 数智周报摘要张冠李戴修复(三重根因):① 污染检测新增标题 marker——_is_summary_contaminated 除摘要内栏目标识外,标题含「数智周报」也判污染;② 抓取深度按标题类型分型——_fetch_article_content 对 周报/早报/晚报/日报 类深抓 80 段/6000 字(普通单篇仍 15 段/2000 字),修复周报正文极分散(段落 65-66)被浅抓漏掉的问题;③ _extract_title_subject_entities 先剥离 【栏目】 前缀再抽主语实体,避免 _SUBJECT_SPLIT 在开头 处把主语片段切空(【数智周报】长鑫科技… 只抽到 Kimi 漏掉长鑫科技/字节 → 一致性校验误判串味回退 RSS)。另 _ensure_clean_ending 保留原文省略号(避免剥离后按列表分隔符二次截断吞末项)、_clean_summary 删钛媒体元数据行。落地验证:数智周报条 fetched、覆盖长鑫/字节话题、无截断无串味 | | 2026-08-03 | v1.12.10 | 事件级去重:_deduplicate 新增 is_same_event——抽取「主产品+版本锚点」(qwen38/gpt5/kimi3,小数 X.Y 与整数/字母版本均覆盖)+ 事件动词,共享强锚点即判同事件(跨源同事件自动合并),并保留 -Max/-Pro 变体后缀(qwen38max ≠ qwen38)避免基座与变体误并。修复 8/03 头条重复:InfoQ 与量子位两条「阿里Qwen3.8正式发布」实测标题 Jaccard 0.5 < 0.6 漏判。单测 8 用例 + 全量交叉扫描 0 误共享对 | | 2026-08-04 | v1.12.11 | 融合双源摘要:去重策略从「保留质量更高者」升级为「融合」——事件级同事件命中(is_same_event)时 _fuse_news/_merge_summaries 句子级去重合并双方 generated_summary(保留各自独有角度)、来源 / 连接、summary_source 任一 fetched 即 fetched、标题/链接/层级取 value_score 更强者、第二链接存 extra_links。纯标题相似度 ≥0.6 且非同事件仍走旧逻辑(保留更优者),避免硬融。单测 PASS;8/04 起对新报告生效 | | 2026-08-04 | v1.12.12 | 2 字品牌串味漏判修复:_KNOWN_BRANDS 白名单(苹果/华为/小米/腾讯/阿里/字节/百度/美团/京东/拼多多/比亚迪/宁德/蔚来/理想/小鹏/三星/微软/谷歌/亚马逊/特斯拉/英伟达/台积电/大疆/宇树/智谱 等 40+ 个)在 _extract_title_subject_entities 命中标题即加入 title_ents;_GENERIC_CN 追加量词/金融词(亿美元/万美元/人民币/估值/市值/销售额),杜绝「亿美元」类碎串碰巧命中串味摘要导致一致性校验误放行。修复 8/04「苹果在印度年度销售额首次突破100亿」被 36氪快讯流串味(Base Power 融资内容)漏判。真实数据回归 9 条 fetched 仅 1 条回退、零误伤 | | 2026-08-04 | v1.12.13 | 摘要截断三项修复:① 新增 src/health_check.py 健康检查脚本——模拟 MD 渲染截断规则(紧凑 200/详情 500 字 + _smart_truncate)预判"报告中会半句截断"的条目;② report_generator._smart_truncate 新增层1b——80 字窗口内无句号时扩大到 200 字往前找最后一个完整句(宁短勿残),消除「…刘士武:」式半句硬切;③ summary_generator._extract_key_sentences 圆桌/对话类文本过滤——检测到 ≥2 个「人名:」+ 圆桌/嘉宾/主持人词时,过滤名录/开场白/职位罗列句(名录段无句号被分割成巨型句、靠标题全关键词复述拿高分挤掉真观点句的根因)。另 _merge_summaries 判重归一化空格("8月3日" vs "8 月 3 日")。修复 8/04「从实验到产线」圆桌实录摘要(名录 232 字 → 核心观点 212 字,渲染截断落在完整句) | | 2026-08-12 | v1.12.14 | ① 36氪源适配:官方 feed 自 8/05 被自家 WAF(JS challenge)全站拦截,改走 RSSHub 公共实例镜像 /36kr/newsflashes(主 rssforever + 备 slarker),并新增 tech_media.py per-source max_per_source 限流(快讯限 8 条/日防挤占长文源);② _clean_summary 元数据清洗通用化:通用作者元数据格式(<英文作者> 日期 时间 · 来自XX 全文N字,覆盖钛媒体 ITValue/Chelsea_Sun)、InfoQ「本文字数/阅读完需」、句首+中段「适合XX阅读。」推荐语(角色词限定防误伤);③ 摘要兜底增强:备用池耗尽前先重试已抓原文(不再输出"详情请点击原文查看"一句话);④ 正文抓取语义容器放宽:_SEMANTIC_SELECTORS(article/.article-content/.post-content/.entry-content/[class*='article'])内 ≥150 字直接采用,修复 InfoQ(Nuxt SSR)/量子位(class="content")短正文被相关度误杀;⑤ 英文内容过滤:_is_english_dominant 拦截外媒全英文转载稿进备用池;⑥ 署名清洗贪婪修复:公众号名边界改空格/句号(\s+ 归一化后 [^\n]* 曾吞掉整篇正文);⑦ 健康度统计口径:原文抓取成功按 fetched_content ≥100 字 计 + 新增「摘要采用原文」行(快讯类不再低估);⑧ 代码精简(import re 提顶/删冗余 body 提取/分支合并)。8/12 实测:backup 顶替 8→3(历史最低)、fetched 5→9(历史最高),元数据残留 0、英文条目 0、截断 0 半句 | | 2026-08-17 | v1.12.15 | 紧急修复版(修复 v1.12.5-v1.12.14 持续 11 天的分析器失效 bug):① 核心 bug——ai_analyzer.analyze() 调用不存在的 _filter_by_keywords(v1.12.5 评分迁移 NewsScorer 时方法被删、调用未清理)→ AttributeError → main.py 兜底取 RSS 前 20 条,关键词/领域过滤链全失效,日报混入非 AI 噪音(8/03-8/14 持续);删除冗余调用(领域过滤 _filter_by_domain_relevance 已涵盖关键词过滤);② 评分恢复——恢复 matched_categories 赋值(原方法职责,NewsScorer 关键词分依赖),修复全条目同分 53.0 排序退化;③ 词表补词——ai_ml +23(具身智能/机器人/Agent/Claude/DeepSeek/开源 等)、ev +6、semiconductor +7,评分关键词覆盖率 30%→100%;④ 排除模式补全——EXCLUDE_PATTERNS 新增 infra_public/entertainment/military/space_misc 4 类(基建/口岸/娱乐/军事/航天科普噪音清零);⑤ backup 去重——_prepare_backup_articles_is_similar_to_selected(标题 Jaccard ≥0.6)跳过与已入选 top20 重复的候选(转载稿不再重复进日报)。8/15-8/17 验证:0 ERROR、评分区分度恢复、噪音 0、原文抓取 75-85% | | 2026-08-21 | v1.13.0 | 新基线版(v1.12.15 后 9 刀聚合,升次版本):① 摘要信息收尾——_extract_key_sentences 遍历全候选(不再限前 5 句)+ 末句信息信号保障(数字/发布/核心/机制等),修复"摘要只截开头引入段没总结到位"(8/18 WorkSwarm/AI中转站案例);② 中文作者元数据——_clean_summary 规则支持中文作者名([\u4e00-\u9fa5]{2,8},8/19 维嘉科技"公司观察"案例);③ 正选英文过滤——_filter_by_domain_relevance_is_english_dominant(原仅 backup 池,8/19 Municipal 条走正选漏网);④ 上市语境区分——STRONG_TECH_KEYWORDS + 「正式上市」无强科技封顶关注级 + is_ipo_context 无强科技封顶/有强科技 +3 分(8/19 秦MAX 新车上市误判头条);⑤ 城市排名不占头条——标题含「中国第X城/全国第X城」(含中文数字)is_breaking=False(8/19 合肥两 IPO 案例);⑥ 投资类降权——capital_flow 强排除(南向资金/券商合伙/弃购/增资)+ earnings_noise 普通排除(扭亏/净利/营收增长)(8/19,投资日报 skill 分管);⑦ 乱码检测——_is_garbled_text(\u0080-\u024F 高字节占比 >30%)+ 抓取正文乱码时 RSS 摘要兜底(8/19 IDC 条);⑧ 公司锚点去重——extract_event_signature_KNOWN_BRANDS 品牌锚点 + is_same_event 强公司事件词分支(上市/大涨/暴涨/融资等,8/20 宇树双条案例);⑨ 非科技政策排除 + 投资信号收紧——non_tech_policy 普通排除(住房/楼市/消费券/就业/粮食/民政)+ strong.contextual 移除"融资"(8/20 上海住房规划误打强烈信号)。8/21 验证:0 ERROR、投资类 0/20、噪音/重复双 0、乱码 0、抓取 85% | | 2026-08-27 | v1.13.1 | 摘要质量 + 巡检自动化(8 刀聚合):① 摘要分档加长——常规 300 字、🟡关注/🟠重要/🔴头条 400 字(生成层 _generate_concise_summary(tier=) + 渲染层 report_generator 分档截断 + health_check 分档预判同步,8/21 Boss 参考投资日报 500 决策);② 短摘要兜底——生成后 <80 字且 fetched_content>200 自动用 fc 重生成(8/21 Anthropic"思维病毒" 59字→192字案例);③ 口语化检测——_COLLOLLQUIAL_WORDS(emmmm/救啊/真就/炸裂 等 17 词)+ _extract_key_sentences skip_ratio/filter_colloquial(剔除口语句+跳过文首闲谈重提取),检测统一放所有生成路径之后(8/21 千寻/Jeff Dean/GPT-3时刻案例);④ 证券监管排除——securities_reg(自律监管/异常交易/交易所监管/证监会处罚,8/21 深交所案例);⑤ 跑完即巡检——main.py 新增 post_run_quality_audit():采集报告生成后自动检查口语化/短摘要/元数据/乱码→自动修复→重生成报告→不可修标记待人工(8/22 Boss 建议"跑完就马上巡检");⑥ 元数据补充清洗——图片来源:标注 + arxiv 论文地址(8/22);⑦ 文娱排除扩充——电影节/电视节/动漫展/游戏展/世界技能大赛/锦标赛/运动会(精确词避免误伤 GOAI,8/23);⑧ 以旧换新排除 + 裸「上市」语境——non_tech_policy 加"以旧换新/国补/消费补贴";consumer_launch_bare(裸"上市"+售价/车型/版本 特征封顶关注级,8/27 长城 H9 案例)+ is_ipo_context 补全(科创板/创业板/主板/北交所上市/纽交所/纳斯达克)。8/22-8/27 验证:自动巡检连续 4 天零人工干预、0 ERROR、口语化 0、投资类 0 |

方法论来源

v1.11 起,日报输出理念参考 Anthropic Financial Services 的 Morning Note 和 Thesis Tracker 框架:

  • 观点驱动而非信息堆砌:每条重要信号应回答"这意味着什么"
  • 信号 vs 噪音区分:明确标注哪些是 actionable 的事件,哪些只是背景信息
  • 前瞻思维:不只总结今天,更要指出明天该关注什么