From c1e57c2c49d716f433fc560c84e8e73ec2e2ab9c Mon Sep 17 00:00:00 2001 From: ArtemisLee-Fye Date: Thu, 28 May 2026 14:33:34 +0800 Subject: [PATCH 1/6] Update config.yaml --- config/config.yaml | 585 +++++++++------------------------------------ 1 file changed, 112 insertions(+), 473 deletions(-) diff --git a/config/config.yaml b/config/config.yaml index 2a26e96be4c07..4e01ddf874393 100644 --- a/config/config.yaml +++ b/config/config.yaml @@ -1,475 +1,114 @@ -# ═══════════════════════════════════════════════════════════════ -# TrendRadar 配置文件 -# Version: 2.2.0 -# ═══════════════════════════════════════════════════════════════ + app: + timezone: "Asia/Shanghai" + show_version_update: false + + schedule: + enabled: false + + platforms: + enabled: true + sources: + - id: "baidu" + name: "百度热搜" + - id: "toutiao" + name: "今日头条" + - id: "weibo" + name: "微博" + - id: "zhihu" + name: "知乎" + - id: "thepaper" + name: "澎湃新闻" + - id: "wallstreetcn-hot" + name: "华尔街见闻" + - id: "cls-hot" + name: "财联社" + - id: "ifeng" + name: "凤凰网" - -# 可视化配置编辑器地址: https://sansan0.github.io/TrendRadar/ - - -# =============================================================== -# 1. 基础设置 -# =============================================================== -app: - # 时区配置(影响所有时间显示、调度系统判断、数据存储) - # 常用时区: - # - Asia/Shanghai (北京时间 UTC+8) - # - America/New_York (美东时间 UTC-5/-4) - # - Europe/London (伦敦时间 UTC+0/+1) - # 完整时区列表: https://en.wikipedia.org/wiki/List_of_tz_database_time_zones - timezone: "Asia/Shanghai" - show_version_update: true # 是否显示版本更新提示(true=显示, false=隐藏) - - -# =============================================================== -# 1.5 调度系统 —— 什么时间做什么事 -# -# 通过 timeline.yaml 里定义的时间段来自动决定: -# - 什么时候推送通知 -# - 什么时候做 AI 分析 -# - 用什么报告模式 -# -# 快速上手:选一个预设模板,改 preset 的值就行 -# -# always_on → 全天候,有新增即推送 -# morning_evening → 全天推送 + 晚间当日汇总(推荐) -# office_hours → 工作日三段式(到岗→午间→收工),周末增量自由推 -# night_owl → 午后速览 + 深夜全天汇总 -# custom → 完全自定义,详见 timeline.yaml -# -# 详细时间线图请查看 config/timeline.yaml -# =============================================================== -schedule: - enabled: false # 是否启用调度系统(true=启用, false=关闭,默认关闭) - preset: "morning_evening" # 预设模板名称(见上方说明) - - -# =============================================================== -# 2. 数据源 - 热榜平台 -# -# enabled: 是否启用热榜抓取(总开关) -# sources: 平台列表 -# - id: 平台唯一标识(勿修改) -# - name: 显示名称(可自定义,修改后不影响运行) -# =============================================================== -platforms: - enabled: true # 是否启用热榜平台抓取(true=启用, false=关闭) - sources: - - id: "toutiao" - name: "今日头条" - - id: "baidu" - name: "百度热搜" - - id: "wallstreetcn-hot" - name: "华尔街见闻" - - id: "thepaper" - name: "澎湃新闻" - - id: "bilibili-hot-search" - name: "bilibili 热搜" - - id: "cls-hot" - name: "财联社热门" - - id: "ifeng" - name: "凤凰网" - - id: "tieba" - name: "贴吧" - - id: "weibo" - name: "微博" - - id: "douyin" - name: "抖音" - - id: "zhihu" - name: "知乎" - - - -# =============================================================== -# 3. 数据源 - RSS 订阅 -# -# 与热榜数据分开存储,按时间流展示 -# 每个源配置:id(唯一标识)、name(显示名称)、url(订阅地址) -# enabled: 可选,默认 true -# max_age_days: 可选,覆盖全局 freshness_filter.max_age_days -# =============================================================== -rss: - enabled: true # 是否启用 RSS 抓取(true=启用, false=关闭) - - # 文章新鲜度过滤(过滤超龄旧文章,避免重复推送) - # 仅在推送阶段过滤,所有文章仍会存入数据库 - freshness_filter: - enabled: true # 是否启用新鲜度过滤(true=启用, false=关闭) - - max_age_days: 1 # 最大文章年龄(天) - # - 正整数:只推送 N 天内的文章 - # - 0:禁用过滤,推送所有文章 - - # 单个 feed 可配置 max_age_days 覆盖全局设置: - # - 不配置:使用全局 freshness_filter.max_age_days(默认 3 天) - # - 正整数:覆盖全局设置,只推送此天数内的文章 - # - 0:禁用此频道的新鲜度过滤,推送所有文章 - feeds: - - id: "hacker-news" - name: "Hacker News" - url: "https://hnrss.org/frontpage" - - - id: "ruanyifeng" - name: "阮一峰的网络日志" - url: "http://www.ruanyifeng.com/blog/atom.xml" - enabled: false # 禁用 - # max_age_days: 3 # 示例:推送 3 天内的文章(更新较慢的博客) - - - id: "yahoo-finance" - name: "雅虎财经" - url: "https://finance.yahoo.com/news/rssindex" - - # 自定义源示例 - # - id: "custom-feed" - # name: "自定义源" - # url: "https://example.com/feed.xml" - # enabled: false - # max_age_days: 0 # 示例:禁用过滤,推送所有文章 - - -# =============================================================== -# 4. 报告模式 -# =============================================================== -report: - mode: "current" # 报告模式(开启 schedule 后作为默认值,会被 timeline 时段覆盖) - # daily = 当日汇总,按时推送当天所有匹配新闻(会包含之前推过的) - # current = 当前榜单,按时推送当前在榜的匹配新闻(持续在榜的每次都出现) - # incremental = 增量监控,只推送新增内容,零重复(没有新增时不推送) - - display_mode: "keyword" # 分组维度 - # keyword = 按关键词分组显示 - # platform = 按平台/来源分组显示 - - sort_by_position_first: false # 关键词模式排序(仅 display_mode=keyword 时生效) - # true = 按 frequency_words.txt 的定义顺序 - # false = 按匹配到的热点条数排序(多的在前) - - rank_threshold: 5 # 排名高亮阈值(影响展示强调,不改变抓取范围) - - max_news_per_keyword: 0 # 每个关键词/标签最大显示数量(0=不限制,仅影响展示裁剪) - - -# =============================================================== -# 4.5 筛选策略 -# =============================================================== -filter: - method: "keyword" # 筛选方式(二选一) - # keyword = 关键词匹配,不调用 AI,不消耗 token,但规则固定 - # 词组定义在 config/frequency_words.txt - # ai = AI 智能分类,更灵活但每次运行消耗 token - # 兴趣描述在 config/ai_interests.txt,需配合下方 ai_filter - - priority_sort_enabled: true # AI 模式标签排序(仅 method=ai 时生效) - # true = 按兴趣描述中的定义顺序 - # false = 按匹配条数排序(多的在前) - - -# =============================================================== -# 4.6 AI 智能筛选配置(仅 filter.method=ai 时生效) -# =============================================================== -ai_filter: - batch_size: 200 # 每批发送给 AI 的标题数,超过此数量自动分批 - batch_interval: 2 # 分批间隔(秒),避免触发 API 限流,0=不等待 - - min_score: 0.7 # 推送最低分数阈值(0.0~1.0),值越高越严格 - # 推荐 0.5~0.7 起步,0=不过滤 - - # 兴趣描述文件(默认 config/ai_interests.txt,无需配置) - # 自定义文件放入 config/custom/ai/ 目录,然后指定文件名: - # interests_file: "finance.txt" # → 加载 config/custom/ai/finance.txt - - reclassify_threshold: 0.6 # 全量重分类触发阈值(0~1) - # 越低越倾向全量重分类(更准但更耗 token) - # 越高越倾向增量更新(更省但可能不够新) - - # 以下提示词模板一般无需修改(不建议动) - - # 分类提示词模板 - prompt_file: "prompt.txt" - - # 标签提取提示词模板(首次运行时使用) - extract_prompt_file: "extract_prompt.txt" - - # 标签更新提示词模板(兴趣变更时 AI 对比新旧标签) - update_tags_prompt_file: "update_tags_prompt.txt" - - -# =============================================================== -# 5. 推送内容控制 -# -# 统一管理推送消息中显示哪些区域及其排列顺序 -# =============================================================== -display: - # 区域显示顺序(从上到下 = 推送中从上到下) - # 调整顺序:剪切粘贴整行即可 - # 要显示某个区域,需同时:1. 在此列表中 2. 下方 regions 对应开关为 true - region_order: - - new_items # 1️⃣ 新增热点区域 - - hotlist # 2️⃣ 热榜区域(关键词匹配 / AI 智能筛选) - - rss # 3️⃣ RSS 订阅区域 - - standalone # 4️⃣ 独立展示区 - - ai_analysis # 5️⃣ AI 分析区域 - - # 推送区域开关(需配合上方 region_order 使用) - regions: - hotlist: true # 热榜区域:关键词匹配 / AI 智能筛选(true=显示, false=隐藏) - new_items: false # 新增热点区域:含热榜新增 + RSS 新增(true=显示, false=隐藏) - # 注:热点词汇统计中的新增标记🆕不受此配置影响 - - rss: true # RSS 订阅区域(true=显示并分析, false=隐藏并跳过分析) - standalone: false # 独立展示区:完整热榜/RSS,不受关键词过滤(true=显示, false=隐藏) - ai_analysis: true # AI 分析区域(true=显示, false=隐藏) - - # 独立展示区:将指定平台/RSS 完整展示,不受关键词过滤 - # 推送展示由 regions.standalone 控制,AI 分析由 ai_analysis.include_standalone 控制 - standalone: - platforms: ["zhihu", "wallstreetcn-hot"] # 热榜平台 ID 列表(如 ["zhihu", "weibo"]) - rss_feeds: [] # RSS 源 ID 列表(如 ["hacker-news"]) - max_items: 20 # 每个源最多展示条数(0=不限制) - - -# =============================================================== -# 6. 推送通知 -# -# ⚠️ 安全警告:webhook 地址不要公开! -# GitHub 部署请将 webhook 填入 GitHub Secrets,不要写在这里 -# -# 📌 多账号:分号(;)分隔,如 "url1;url2;url3" -# 配对项(如 Telegram token 和 chat_id)数量必须一致 -# =============================================================== -notification: - enabled: true # 是否启用通知功能(true=启用, false=关闭)—— 总开关 - # 开启 schedule 后此项仍为总开关:false=永远不推送,true=由调度控制 - - # 推送渠道配置 - channels: - feishu: - webhook_url: "" # 飞书机器人 webhook URL - - dingtalk: - webhook_url: "" # 钉钉机器人 webhook URL - - wework: - webhook_url: "" # 企业微信机器人 webhook URL - msg_type: "markdown" # 消息类型:markdown(群机器人) | text(个人微信应用) - - telegram: - bot_token: "" # Telegram Bot Token - chat_id: "" # Telegram Chat ID - - email: - from: "" # 发件人邮箱地址 - password: "" # 发件人邮箱密码或授权码 - to: "" # 收件人邮箱,多个用逗号分隔 - smtp_server: "" # SMTP 服务器(可选,留空自动识别) - smtp_port: "" # SMTP 端口(可选,留空自动识别) - - ntfy: - server_url: "https://ntfy.sh" # ntfy 服务器地址(可改为自托管) - topic: "" # ntfy 主题名称 - token: "" # ntfy 访问令牌(可选,用于私有主题) - - bark: - url: "" # Bark 推送 URL(格式:https://api.day.app/your_device_key) - - slack: - webhook_url: "" # Slack Incoming Webhook URL - - generic_webhook: - webhook_url: "" # 通用 Webhook URL(支持 Discord、Matrix、IFTTT 等) - payload_template: "" # JSON 模板,支持 {title} 和 {content} 占位符 - # 示例:{"content": "{content}"} - # 留空则使用默认格式:{"title": "{title}", "content": "{content}"} - - -# =============================================================== -# 7. 存储配置 -# =============================================================== -storage: - # 存储后端选择 - # - auto: 自动选择(GitHub Actions 且配置了远程存储 → remote,否则 → local) - # - local: 本地 SQLite + TXT/HTML 文件 - # - remote: 远程云存储(S3 兼容协议,支持 R2/OSS/COS 等) - backend: "auto" - - # 数据格式选项 - formats: - sqlite: true # 主存储(必须保持 true,请勿关闭) - txt: false # 是否生成 TXT 快照(true=生成, false=不生成) - html: true # 是否生成 HTML 报告(true=生成, false=不生成) - # ⚠️ 邮件推送或者需要看网页版报告必须设为 true - - # 本地存储配置 - local: - data_dir: "output" # 数据目录 - retention_days: 0 # 保留天数(0=永久保留) - - # 远程存储配置(S3 兼容协议) - # 支持: Cloudflare R2, 阿里云 OSS, 腾讯云 COS, AWS S3, MinIO 等 - # 建议将敏感信息配置在 GitHub Secrets 或环境变量中 - remote: - retention_days: 0 # 保留天数(0=永久保留) - - # S3 兼容配置(或使用环境变量 S3_ENDPOINT_URL 等) - endpoint_url: "" # 服务端点 - # Cloudflare R2: https://.r2.cloudflarestorage.com - # 阿里云 OSS: https://oss-cn-hangzhou.aliyuncs.com - # 腾讯云 COS: https://cos.ap-guangzhou.myqcloud.com - bucket_name: "" # 存储桶名称 - access_key_id: "" # 访问密钥 ID - secret_access_key: "" # 访问密钥 - region: "" # 区域(可选,部分服务商需要) - - # 数据拉取(从远程同步到本地,用于 MCP Server 等场景) - pull: - enabled: false # 是否启用启动时自动拉取(true=启用, false=关闭) - days: 7 # 拉取最近 N 天的数据 - - -# =============================================================== -# 8. AI 模型配置(ai_analysis / ai_translation / ai_filter 共用) -# =============================================================== -ai: - # LiteLLM 模型格式: 提供商/模型名 - # 示例: - # - deepseek/deepseek-v4-flash (DeepSeek,便宜够用,推荐) - # - deepseek/deepseek-v4-pro - # - openai/gpt-4o (OpenAI) - # - gemini/gemini-2.5-flash (Google Gemini) - # - anthropic/claude-sonnet-4-20250514 (Anthropic) - # - ollama/llama3 (本地 Ollama) - # 完整列表: https://docs.litellm.ai/docs/providers - # 如果你对于看英文文档比较头疼,那么可以点击页面右下角的 【Ask AI】 ,用中文询问怎么配置 - - model: "deepseek/deepseek-v4-flash" - - api_key: "" # API Key(建议使用环境变量 AI_API_KEY) - - api_base: "" # 自定义 API 地址(可选,绝大多数情况留空即可) - # - # ❓ 什么时候需要填? - # 当你使用的 AI 服务商不在上方支持列表中时。 - # 比如某些国内 API 中转站、私有部署的服务等。 - # 如果你用的是 DeepSeek、OpenAI、Gemini 等主流服务商, - # 不用填这个,留空就行。 - # - # 🔧 怎么填?两步走: - # 第一步 - api_base 填写服务商给你的接口地址 - # 例如: https://your-provider.com/v1 - # - # 第二步 - model 前面加上 "openai/" 前缀 - # 例如: openai/deepseek-ai/DeepSeek-V3 - # - # 💡 为什么要加 openai/ 前缀? - # 大部分 AI 服务商都兼容同一套通用接口格式, - # 加上 openai/ 就是告诉系统"用这套通用格式去连接", - # 这样几乎任何服务商都能接入。 - - - timeout: 120 # 请求超时(秒) - - temperature: 1.0 # 采样温度 (0.0-2.0) - # 注意:部分模型(如 gpt-5)可能要求必须为 1.0,否则会报错 - - max_tokens: 5000 # 最大生成 token 数 - # 注意:如果 API 不支持此参数(报 HTTP 400),请设为 0 以禁用发送 - # 高级选项 - num_retries: 1 # 失败重试次数 - fallback_models: [] # 备用模型列表(可选) - # 示例: ["openai/gpt-4o-mini", "openai/deepseek-ai/DeepSeek-V3"] - - # 额外参数(一般无需修改,删掉 # 号即可启用) - # extra_params: - # top_p: 1.0 - # presence_penalty: 0.0 - # stop: ["END"] - - -# =============================================================== -# 9. AI 分析功能(模型配置见上方 ai 段) -# =============================================================== -ai_analysis: - enabled: true # 是否启用 AI 分析(true=启用, false=关闭)—— 总开关 - # 开启 schedule 后此项仍为总开关:false=永远不分析,true=由调度控制 - - language: "Chinese" # 分析报告语言(如 "English", "Korean", "法语") - prompt_file: "ai_analysis_prompt.txt" # 提示词文件(相对于 config 目录) - - mode: "follow_report" # AI 分析模式(可独立于 report.mode) - # follow_report = 跟随 report.mode(默认) - # daily / current / incremental = 强制使用指定模式 - - max_news_for_analysis: 150 # 参与分析的新闻数量上限(控制 token 成本的关键项) - # 热榜优先占用配额,RSS 用剩余配额,独立展示区不受此限制 - - include_rss: false # 是否包含 RSS 内容进行分析(true=包含, false=不包含) - include_standalone: true # 是否纳入独立展示区数据(true=纳入, false=不纳入) - - include_rank_timeline: true # 排名时间线详细程度 - # true = 完整轨迹(如 1(09:30)→2(10:00)),AI 分析更准但多耗 0.5~1 倍 token - # false = 简化格式(排名范围+出现次数),更省 token - - - - -# =============================================================== -# 10. AI 翻译功能(模型配置见上方 ai 段) -# -# 对推送标题进行翻译,不包含 AI 分析的内容 -# =============================================================== -ai_translation: - enabled: true # 是否启用翻译功能(true=启用, false=关闭) - language: "中文" # 翻译目标语言(如 "English", "Korean", "法语") - prompt_file: "ai_translation_prompt.txt" # 提示词文件(相对于 config 目录) - - # 翻译范围(display.regions 关闭的区域即使开启也不会翻译) - scope: - hotlist: false # 翻译热榜标题(true=翻译, false=不翻译) - rss: true # 翻译 RSS 标题(true=翻译, false=不翻译) - standalone: true # 翻译独立展示区标题(true=翻译, false=不翻译) - - -# =============================================================== -# 11. 高级设置(一般无需修改) -# =============================================================== -advanced: - debug: false # 调试模式(true=开启详细日志, false=正常模式) - - # 版本检查 - version_check_url: "https://raw.githubusercontent.com/sansan0/TrendRadar/refs/heads/master/version" - mcp_version_check_url: "https://raw.githubusercontent.com/sansan0/TrendRadar/refs/heads/master/version_mcp" - configs_version_check_url: "https://raw.githubusercontent.com/sansan0/TrendRadar/refs/heads/master/version_configs" - - # 热榜爬虫技术参数 - crawler: - request_interval: 2000 # 请求间隔(毫秒) - use_proxy: false # 是否启用代理(true=启用, false=不使用) - default_proxy: "http://127.0.0.1:10801" - - # RSS 设置 rss: - request_interval: 1000 # 请求间隔(毫秒) - timeout: 15 # 请求超时(秒) - use_proxy: false # 是否使用代理(true=启用, false=不使用) - proxy_url: "" # RSS 专属代理(留空则使用 crawler.default_proxy) - - # 排序权重(用于重新排序不同平台的热搜) - # 合起来等于 1 - weight: - rank: 0.6 # 排名权重 - frequency: 0.3 # 频次权重 - hotness: 0.1 # 热度权重 - - # 多账号限制 - max_accounts_per_channel: 3 # 每个渠道最大账号数量 - - # 以下为内部参数(一般无需修改) - # 消息分批大小(字节)- 内部配置,请勿修改 - batch_size: - default: 4000 - dingtalk: 20000 - feishu: 30000 - bark: 4000 - slack: 4000 - batch_send_interval: 3 # 批次发送间隔(秒) - feishu_message_separator: "━━━━━━━━━━━━━━━━" + enabled: true + freshness_filter: + enabled: true + max_age_days: 1 + feeds: + - id: "peoples-daily" + name: "人民日报" + url: "http://www.people.com.cn/rss/politics.xml" + - id: "scmp" + name: "南华早报" + url: "https://www.scmp.com/rss/91/feed" + - id: "rest-of-world" + name: "Rest of World" + url: "https://restofworld.org/feed/" + - id: "sinocism" + name: "Sinocism" + url: "https://sinocism.com/feed" + max_age_days: 7 + + report: + mode: "incremental" + display_mode: "keyword" + sort_by_position_first: false + rank_threshold: 10 + max_news_per_keyword: 5 + + filter: + method: "keyword" + + display: + region_order: + - hotlist + - rss + - ai_analysis + regions: + hotlist: true + new_items: false + rss: true + standalone: false + ai_analysis: true + + notification: + enabled: true + channels: + feishu: + webhook_url: "" + + ai: + model: "deepseek/deepseek-chat" + api_key: "" + timeout: 60 + temperature: 1.0 + max_tokens: 3000 + + ai_analysis: + enabled: true + language: "Chinese" + mode: "follow_report" + max_news_for_analysis: 80 + include_rss: true + include_standalone: false + include_rank_timeline: false + + ai_translation: + enabled: true + language: "中文" + scope: + hotlist: false + rss: true + standalone: false + + storage: + backend: "auto" + formats: + sqlite: true + txt: false + html: true + local: + data_dir: "output" + retention_days: 7 + + advanced: + debug: false + crawler: + request_interval: 2000 + use_proxy: false From 54e623b843f6174bb7ffbb9ce5bc4057e2000731 Mon Sep 17 00:00:00 2001 From: ArtemisLee-Fye Date: Thu, 28 May 2026 14:36:30 +0800 Subject: [PATCH 2/6] Update frequency_words.txt --- config/frequency_words.txt | 340 +++++++++---------------------------- 1 file changed, 82 insertions(+), 258 deletions(-) diff --git a/config/frequency_words.txt b/config/frequency_words.txt index a9af01820ee7c..3d6a1d41f0dcb 100644 --- a/config/frequency_words.txt +++ b/config/frequency_words.txt @@ -1,258 +1,82 @@ -# ═══════════════════════════════════════════════════════════════ -# TrendRadar 频率词配置文件 -# Version: 1.1.0 -# ═══════════════════════════════════════════════════════════════ - -# 可视化配置编辑器地址: https://sansan0.github.io/TrendRadar/ -# -# 凡是左侧有 # 的都是仅供阅读的说明性文字 -# -# 这个文件用来设置你想关注的新闻关键词。 -# 系统会自动抓取包含这些关键词的热榜新闻推送给你。 -# -# 文件分为两个区域: -# [GLOBAL_FILTER] - 全局过滤区:排除不想看的内容 -# [WORD_GROUPS] - 词组定义区:设置想关注的关键词 -# -# ═══════════════════════════════════════════════════════════════ - - -# ─────────────────────────────────────────────────────────────── -# 全局过滤区 -# ─────────────────────────────────────────────────────────────── -# 在这里写入你不想看到的词,每行一个。 -# 包含这些词的新闻会被自动排除,不会出现在推送中。 -# -# 使用方法: -# 震惊 直接写词,包含"震惊"的新闻会被过滤 -# /赌博|博彩/ 用 /.../ 包裹可以匹配多个词(用 | 分隔) - -[GLOBAL_FILTER] -# 过滤标题党 -震惊 - - - -# ─────────────────────────────────────────────────────────────── -# 词组定义区 -# ─────────────────────────────────────────────────────────────── -# 在这里写入你想关注的关键词。 -# 每个词组用空行分隔,同一词组内的关键词是"或"的关系。 -# -# ┌─────────────────────────────────────────────────────────────┐ -# │ 语法总览(快速参考) │ -# └─────────────────────────────────────────────────────────────┘ -# -# 关键词语法: -# 关键词 普通关键词,标题包含即匹配 -# /正则/ 正则表达式匹配(自动忽略大小写) -# 关键词 => 别名 给关键词指定显示别名 -# [组别名] 词组第一行,给整组指定别名 -# +关键词 必须词,所有必须词都要匹配才算匹配 -# !关键词 过滤词,匹配则排除该条新闻(仅限当前词组) -# @数字 限制该词组最多显示多少条 -# -# 显示名称优先级: -# 1. 有组别名 → 显示组别名 -# 2. 没有组别名 → 显示各行别名拼接(用 " / " 连接) -# 3. 没有别名 → 显示关键词本身 -# -# -# ┌─────────────────────────────────────────────────────────────┐ -# │ 基础用法(推荐新手) │ -# └─────────────────────────────────────────────────────────────┘ -# -# 1. 最简单:直接写关键词 -# ──────────────────── -# 华为 -# -# 效果:匹配所有包含"华为"的新闻 -# -# -# 2. 多个关键词归为一组 -# ──────────────────── -# 华为 -# 鸿蒙 -# 任正非 -# -# 效果:匹配包含"华为"或"鸿蒙"或"任正非"的新闻,统一显示为"华为 / 鸿蒙 / 任正非" -# -# -# 3. 给词组起个名字(推荐) -# ──────────────────── -# [华为] -# 华为 -# 鸿蒙 -# 任正非 -# -# 效果:同上,但显示名称为"华为"(更简洁) -# -# -# ┌─────────────────────────────────────────────────────────────┐ -# │ 进阶用法(可选) │ -# └─────────────────────────────────────────────────────────────┘ -# -# 4. 用正则表达式匹配多个词(一行搞定) -# ──────────────────── -# /华为|鸿蒙|任正非/ => 华为 -# -# 效果:匹配包含"华为"或"鸿蒙"或"任正非"的新闻,显示为"华为" -# 说明:/.../ 里用 | 分隔多个词,=> 后面是显示名称 -# -# 💡 不懂正则?问 AI: -# "帮我写一个正则表达式,匹配包含'华为'或'鸿蒙'或'任正非'的文本, -# 格式要求:/正则/ => 显示名称" -# -# -# 5. 精确匹配英文单词(避免误匹配) -# ──────────────────── -# /\bAI\b/i => AI -# -# 说明:\b 表示单词边界,避免匹配到 "MAIL" 中的 "AI" -# /i 表示忽略大小写,"ai"、"AI"、"Ai" 都能匹配 -# -# 💡 不懂正则?问 AI: -# "帮我写一个正则表达式,精确匹配英文单词'AI'(不匹配 MAIL 中的 AI), -# 忽略大小写,格式要求:/正则/i => 显示名称" -# -# -# 6. 排除特定内容 -# ──────────────────── -# [苹果公司] -# 苹果 -# !水果 -# !果园 -# -# 效果:匹配"苹果"但排除包含"水果"或"果园"的新闻 -# 说明:! 开头的词表示"排除" -# -# -# 7. 限制显示条数 -# ──────────────────── -# [科技新闻] -# 科技 -# @5 -# -# 效果:最多显示 5 条匹配的新闻 -# 说明:@数字 表示限制条数 -# -# -# 8. 必须同时包含多个词 -# ──────────────────── -# +苹果 -# +发布会 -# -# 效果:必须同时包含"苹果"和"发布会"才匹配 -# 说明:+ 开头的词表示"必须包含" -# -# ─────────────────────────────────────────────────────────────── - -[WORD_GROUPS] - -# ═══════════════════════════════════════════════════════════════ -# 企业与品牌 -# ═══════════════════════════════════════════════════════════════ - -/胖东来|于东来/ => 胖东来 - -/深度求索|幻方量化|梁文锋|\bDeepSeek\b/ => DeepSeek - -/华为|任正非|余承东|鸿蒙|海思|昇腾|鲲鹏|\bHUAWEI\b|\bHarmonyOS\b|\bHiSilicon\b/ => 华为 - -/比亚迪|王传福|方程豹|腾势|仰望|弗迪|刀片电池|云辇|\bBYD\b|\bDenza\b|\bYangwang\b/ => 比亚迪 - -/大疆|汪滔|灵眸|如影|\bDJI\b|\bRoboMaster\b|\bMavic\b|\bZenmuse\b/ => 大疆 - -/宇树|王兴兴|\bUnitree\b/ => 宇树机器人 - -/智元|灵犀|稚晖君|彭志辉|AgiBot/ => 智元机器人 -/众擎|EngineAI|赵同阳/ => 众擎机器人 - -/黑神话|冯骥/ => 黑神话悟空 - -/影之刃零|梁其伟/ => 影之刃零 - -/三体|流浪地球|刘慈欣|郭帆/ => 三体/流浪地球 - -申奥 - -/京东|刘强东|\bJD\b|\bJingdong\b/ => 京东 - -/字节|张一鸣|梁汝波|抖音|\bByteDance\b|\bTikTok\b|\bDouyin\b|\bLark\b|\bCapCut\b/ => 字节跳动 - -/腾讯|鹅厂|马化腾|微信|QQ|天美|阅文集团|微众银行|\bTencent\b|\bPony Ma\b|\bWeChat\b|\bLightSpeed\b|\bWeBank\b/ => 腾讯 - -/qwen|minimax|glm/ => 国产开源模型 - -/特斯拉|马斯克|\bTesla\b|\bElon Musk\b|\bCybertruck\b|\bModel 3\b|\bModel Y\b|\bModel S\b|\bModel X\b|\bFSD\b/ => 特斯拉 - -/英伟达|黄仁勋|\bNVIDIA\b|\bGeForce\b|\bRTX\b|\bCUDA\b|\bJensen Huang\b/ => 英伟达 -/苏姿丰|锐龙|霄龙|\bAMD\b|\bRyzen\b|\bEPYC\b|\bRadeon\b|\bLisa Su\b/ => AMD - -/微软|\bMicrosoft\b|\bWindows\b|\bAzure\b|\bSatya Nadella\b|\bCopilot\b/ => 微软 -/谷歌|皮查伊|安卓|油管|\bGoogle\b|\bAlphabet\b|\bAndroid\b|\bChrome\b|\bYouTube\b|\bGemini\b|\bDeepMind\b|\bWaymo\b/ => 谷歌 -/库克|\biPhone\b|\biPad\b|\bMacBook\b|\biOS\b|\bVision Pro\b|\bAirPods\b|\bApple\b|\bTim Cook\b/ => 苹果 - -/\bOpenAI\b|\bChatGPT\b|\bSora\b|\bDALL-E\b|\bSam Altman\b|\bGreg Brockman\b/ => OpenAI -/\bAnthropic\b|\bClaude\b|\bDario Amodei\b/ => Claude - - -# ═══════════════════════════════════════════════════════════════ -# 国家与地区 -# ═══════════════════════════════════════════════════════════════ - -[中国] -国产 -中国 - -[东亚] -日本 -朝鲜 -韩国 - -[北美] -美国 -加拿大 - -[西欧] -法国 -英国 - -/俄罗斯|俄国/ => 俄罗斯 - -印度 - - -# ═══════════════════════════════════════════════════════════════ -# 科技领域 -# ═══════════════════════════════════════════════════════════════ - -[AI 相关] -/(? 水电 -/光伏|太阳能/ => 光伏 -核能 -能源 - -/自动驾驶|无人驾驶|智驾/ => 自动驾驶 - -机器人 -/机械狗|四足/ => 机器狗 -具身智能 - -/月球|登月|火星|宇宙|飞船|航天|空间站|卫星/ => 航天 - -# 前沿科技 -量子 -脑机 -基因 - -# 产业政策 -生产力 + [GLOBAL_FILTER] + 震惊 + 标题党 + 广告 + + + [WORD_GROUPS] + + [文旅] + 文旅 + 旅游 + 景区 + 文化遗产 + /非遗|非物质文化遗产/ + 古镇 + 博物馆 + 文创 + + [县域/城镇化] + /县域|县城|县级/ + 乡村振兴 + 城镇化 + /特色小镇|产业园/ + /城市群|都市圈/ + + [区域发展] + /长三角|珠三角|粤港澳/ + /成渝|京津冀|长江经济带/ + /西部|中部崛起|东北振兴/ + /自贸区|自贸港|经济特区/ + + [文化产业] + /文化产业|创意产业|版权/ + /影视|电影|票房/ + /出版|图书|阅读/ + /游戏|电竞/ + + [实体经济] + /制造业|工业|产业链|供应链/ + /出口|贸易|关税/ + /消费|零售|内需/ + /新能源|光伏|储能/ + + [产业政策] + /补贴|扶持|产业政策/ + 国企 + 民企 + + [AI] + /(? Date: Thu, 28 May 2026 15:07:23 +0800 Subject: [PATCH 3/6] Update README.md --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 8d13b95f91912..f3c4eaf08c1db 100644 --- a/README.md +++ b/README.md @@ -86,6 +86,7 @@ 本项目使用 [newsnow](https://github.com/ourongxing/newsnow) 项目的 API 获取多平台数据,特别感谢作者提供的服务。 + 经联系,作者表示无需担心服务器压力,但这是基于他的善意和信任。请大家: - **前往 [newsnow 项目](https://github.com/ourongxing/newsnow) 点 star 支持** - Docker 部署时,请合理控制推送频率,勿竭泽而渔 From 176f8d032f21a72bf6d08da0d2b789445aa5a71e Mon Sep 17 00:00:00 2001 From: ArtemisLee-Fye Date: Thu, 28 May 2026 15:16:51 +0800 Subject: [PATCH 4/6] Update config.yaml --- config/config.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/config/config.yaml b/config/config.yaml index 4e01ddf874393..9aa0bfe0ce48e 100644 --- a/config/config.yaml +++ b/config/config.yaml @@ -1,4 +1,4 @@ - app: +app: timezone: "Asia/Shanghai" show_version_update: false From 8c0d8c7d2c9ea1986db8a76435411209d6e1fe7b Mon Sep 17 00:00:00 2001 From: ArtemisLee-Fye Date: Thu, 28 May 2026 15:19:21 +0800 Subject: [PATCH 5/6] Update config.yaml --- config/config.yaml | 24 ++++++++++++------------ 1 file changed, 12 insertions(+), 12 deletions(-) diff --git a/config/config.yaml b/config/config.yaml index 9aa0bfe0ce48e..614234ac23dc2 100644 --- a/config/config.yaml +++ b/config/config.yaml @@ -2,10 +2,10 @@ app: timezone: "Asia/Shanghai" show_version_update: false - schedule: +schedule: enabled: false - platforms: +platforms: enabled: true sources: - id: "baidu" @@ -25,7 +25,7 @@ app: - id: "ifeng" name: "凤凰网" - rss: +rss: enabled: true freshness_filter: enabled: true @@ -45,17 +45,17 @@ app: url: "https://sinocism.com/feed" max_age_days: 7 - report: +report: mode: "incremental" display_mode: "keyword" sort_by_position_first: false rank_threshold: 10 max_news_per_keyword: 5 - filter: +filter: method: "keyword" - display: +display: region_order: - hotlist - rss @@ -67,20 +67,20 @@ app: standalone: false ai_analysis: true - notification: +notification: enabled: true channels: feishu: webhook_url: "" - ai: +ai: model: "deepseek/deepseek-chat" api_key: "" timeout: 60 temperature: 1.0 max_tokens: 3000 - ai_analysis: +ai_analysis: enabled: true language: "Chinese" mode: "follow_report" @@ -89,7 +89,7 @@ app: include_standalone: false include_rank_timeline: false - ai_translation: +ai_translation: enabled: true language: "中文" scope: @@ -97,7 +97,7 @@ app: rss: true standalone: false - storage: +storage: backend: "auto" formats: sqlite: true @@ -107,7 +107,7 @@ app: data_dir: "output" retention_days: 7 - advanced: +advanced: debug: false crawler: request_interval: 2000 From ca9b4e77fd7ffa39a34be17342ca924042f71c30 Mon Sep 17 00:00:00 2001 From: ArtemisLee-Fye Date: Thu, 28 May 2026 15:36:14 +0800 Subject: [PATCH 6/6] Update frequency_words.txt --- config/frequency_words.txt | 136 ++++++++++++++++++------------------- 1 file changed, 68 insertions(+), 68 deletions(-) diff --git a/config/frequency_words.txt b/config/frequency_words.txt index 3d6a1d41f0dcb..1bca78f5c73b8 100644 --- a/config/frequency_words.txt +++ b/config/frequency_words.txt @@ -1,82 +1,82 @@ - [GLOBAL_FILTER] - 震惊 - 标题党 - 广告 +[GLOBAL_FILTER] +震惊 +标题党 +广告 - [WORD_GROUPS] +[WORD_GROUPS] - [文旅] - 文旅 - 旅游 - 景区 - 文化遗产 - /非遗|非物质文化遗产/ - 古镇 - 博物馆 - 文创 +[文旅] +文旅 +旅游 +景区 +文化遗产 +/非遗|非物质文化遗产/ +古镇 +博物馆 +文创 - [县域/城镇化] - /县域|县城|县级/ - 乡村振兴 - 城镇化 - /特色小镇|产业园/ - /城市群|都市圈/ +[县域/城镇化] +/县域|县城|县级/ +乡村振兴 +城镇化 +/特色小镇|产业园/ +/城市群|都市圈/ - [区域发展] - /长三角|珠三角|粤港澳/ - /成渝|京津冀|长江经济带/ - /西部|中部崛起|东北振兴/ - /自贸区|自贸港|经济特区/ +[区域发展] +/长三角|珠三角|粤港澳/ +/成渝|京津冀|长江经济带/ +/西部|中部崛起|东北振兴/ +/自贸区|自贸港|经济特区/ - [文化产业] - /文化产业|创意产业|版权/ - /影视|电影|票房/ - /出版|图书|阅读/ - /游戏|电竞/ +[文化产业] +/文化产业|创意产业|版权/ +/影视|电影|票房/ +/出版|图书|阅读/ +/游戏|电竞/ - [实体经济] - /制造业|工业|产业链|供应链/ - /出口|贸易|关税/ - /消费|零售|内需/ - /新能源|光伏|储能/ +[实体经济] +/制造业|工业|产业链|供应链/ +/出口|贸易|关税/ +/消费|零售|内需/ +/新能源|光伏|储能/ - [产业政策] - /补贴|扶持|产业政策/ - 国企 - 民企 +[产业政策] +/补贴|扶持|产业政策/ +国企 +民企 - [AI] - /(?