news 2026/10/15 18:21:00

跨群话题雷达实战:wechat-radar如何用Codex CLI自动聚合微信群热点

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
跨群话题雷达实战:wechat-radar如何用Codex CLI自动聚合微信群热点

【免费下载链接】wechat-radar

微信聊天情报看板:聚合群聊信号、话题、链接和趋势

项目地址:https://gitcode.com/gh_mirrors/we/wechat-radar
点击查看免费下载

wechat-radar 是一款本地优先的微信群聊情报看板,它用 Codex CLI 把散落在多个微信群里的讨论,按天自动聚合成一份跨群热点话题清单。你不用再逐个翻几十個群聊,打开“话题雷达”页面就能看到当天的热点话题、摘要和完整消息列表。本文带你跑通从安装到实战的完整流程,并拆解它背后的两阶段话题聚合管线。

为什么需要跨群话题聚合

日常刷群时,最常见的痛点是:

  • 同一个工具、论文或事件被 5、6 个群重复讨论,不知道哪个群讨论得最深
  • 有价值的信息被刷屏淹没,想回溯时根本翻不过来
  • 想写周报复盘,素材却散落在各个群里

wechat-radar 的话题雷达正是为此设计:它对当天的全群消息做 LLM 语义判断,把语义相同的话题合并,每个话题输出标题、1-2 句摘要和完整跨群消息列表。关键筛选规则定义在 lib/topics.ts:

参数默认值含义
MIN_MESSAGES_PER_TOPIC4一个话题至少 4 条消息,否则丢弃
MAX_MESSAGES_TO_PROCESS3000每天最多处理 3000 条候选消息
MAX_TOPICS_TO_SAVE30每天最多保存 30 个话题
TOPICS_PER_CHUNK12每批 Codex 最多产出 12 个话题草稿

快速上手:三步安装 wechat-radar

前置条件(macOS):

  • 已登录微信 4.x(测试通过版本为4.1.9.58,建议用注册半年以上的小号)
  • Node.js 20+、pnpm(corepack enable && pnpm --version)
  • wx-cli 已初始化且守护进程在跑:wx daemon status
  • Codex CLI 已安装并登录:codex --version

第一步,克隆仓库:

git clone https://gitcode.com/gh_mirrors/we/wechat-radar cd wechat-radar

第二步,安装依赖并启动:

pnpm install pnpm rebuild better-sqlite3 pnpm dev

第三步,打开http://localhost:3000,首次会进入/setup页面:填写你的微信名(用于识别 @我)、确认隐私说明。如果暂时不想连接真实微信,可以勾选demo 模式(或设置WECHAT_RADAR_DEMO=1)直接体验看板效果。

管线拆解:话题雷达如何调用 Codex CLI

核心逻辑集中在 lib/topics.ts,整体是「分批抽取 → 跨批合并」两阶段管线。

消息预筛:只把有效信号喂给模型

调用模型前,loadCandidateMessages 会先做三层过滤:

  1. 只保留文本/链接类型、长度 ≥ 20 字的消息;
  2. 清洗[图片]、[视频]、当前版本不支持展示该内容等占位内容;
  3. 按内容前 80 字去重——同一条转发文章只保留首次出现。

这一步能显著降低模型调用量,也避免“同一篇文章被多群转发”被误判成话题。

分批调用:Codex CLI 只读沙箱

过滤后的消息按 250 条/批切分(见 lib/topics.ts 的分片参数),逐批交给本机 Codex CLI。调用封装在 runCodexJson,实际执行的命令形如:

codex -a never exec --sandbox read-only --ephemeral --ignore-rules \ --output-schema schema.json --output-last-message response.json -

两个细节值得注意:

  • --sandbox read-only:模型只有只读权限,不能改文件、不能联网执行,本地跑着放心;
  • --output-schema:强制输出严格符合 JSON Schema(title/summary/message_ids),字段不允许编造或遗漏。

提示词里还明确要求:优先保留跨群出现的话题、忽略问候闲聊广告、message_ids只能来自输入消息(见 buildExtractionPrompt)。

跨批合并:消灭重复话题

如果当天消息跨了多个批次,各批产出的话题草稿会再送一次 Codex 做合并:语义相同的话题message_ids取并集,证据不足、重复、过泛的话题直接删除。这一步实现在 buildMergePrompt。

最终话题写入本地 SQLite 的topics与topic_messages两张表,数据目录默认在~/.wechat-radar/,聊天数据全程不出本机。

实战操作:在话题雷达页面查看跨群热点

启动后按这个顺序体验:

  1. 左侧边栏进入「话题雷达」(页面源码:app/topics/page.tsx);
  2. 选择日期,若该日还没有话题,页面会自动触发构建(见 app/topics/page.tsx),你能实时看到 “Codex CLI 分批聚合 2/5” 这类进度;
  3. 也可以手动点「构建话题」按钮重建当日结果;
  4. 左侧是话题列表(带消息数和跨群数),点某个话题,右侧显示摘要与全部跨群消息,每条消息还能跳转到对应群页面回溯上下文。

数据接口对应关系:app/api/topics/route.ts 返回当日话题列表,app/api/topics/[id]/route.ts 返回单个话题的消息明细。

另外一个隐藏福利:在首页点「重扫」完成消息同步后,系统会自动为最近 31 天(全量同步为 14 天)逐日构建话题(见 app/api/rescan/route.ts)。也就是说,同步完数据,历史话题会在后台自动补齐。

实用配置:4 个环境变量值得了解

环境变量默认值用途
WECHAT_RADAR_CODEX_MODEL系统默认指定 Codex CLI 聚合时使用的模型
WECHAT_RADAR_TOPIC_CHUNK_SIZE250每批消息数;调大则批次数少、单次 prompt 更长
WECHAT_RADAR_CODEX_TIMEOUT_MS300000单次 Codex 调用超时(5 分钟)
WECHAT_RADAR_AUTO_TOPIC_DAYS31(全量为 14)「重扫」后自动构建话题的天数

常见问题速查:

问题解决方法
codex命令不可用先安装并登录 Codex CLI,用codex --version验证
话题雷达为空打开对应日期会自动构建,也可点「构建话题」
wx daemon 未运行先执行wx daemon start再刷新页面
better-sqlite3模块报错运行pnpm rebuild better-sqlite3

隐私与风险提醒

  • 数据存储:主库为~/.wechat-radar/radar.db(SQLite),配置在config.json,应用不上传聊天记录到任何第三方服务(详见 PRIVACY.md);
  • 注意:话题聚合时,当天消息文本会交给本地 Codex 处理,启用前请先确认这些模型能接收到的数据范围;
  • 建议使用注册半年以上的小号,只读历史聊天记录,不做发朋友圈、点赞、发消息等写入操作;
  • 本项目仅供学习研究与非商业实验,完整条款见 DISCLAIMER.md 与 LICENSE。

到这里,wechat-radar 的话题雷达实战流程就完整了:把“逐群翻消息”变成“打开雷达看当天热点”。建议先用 demo 数据熟悉界面,再连接真实微信,开始按天自动聚合跨群话题。

【免费下载链接】wechat-radar

微信聊天情报看板:聚合群聊信号、话题、链接和趋势

项目地址:https://gitcode.com/gh_mirrors/we/wechat-radar
点击查看免费下载

相关推荐

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

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

GBase 8s数据库root dbspace保留页浅析

南大通用GBase 8s数据库(gbase database)root dbspace 初始 chunk 最前面 12 个页面是保留页,每一页都存放数据库的控制信息与跟踪元数据,是数据库运行的基础元数据载体。我们可以通过 oncheck 工具查看保留页内容,还可…

作者头像 李华
网站建设 2026/10/15 18:16:05

Osip SIP信令解析与注入实战:从抓包到注册全流程调试

简介:本资源是一套基于Osip开源SIP协议栈的完整开发示例工程,面向通信协议初学者、嵌入式VoIP开发者及C网络编程实践者,旨在解决SIP信令交互核心逻辑难上手、Osip API封装不直观等实际问题。压缩包含166个文件,总大小1.64MB&#…

作者头像 李华
网站建设 2026/10/15 18:15:51

ESP32C3-SuperMini PlatformIO板级配置:从USB CDC到Flash分区实战

简介:ESP32-C3 SuperMini 开发板以超小尺寸和 RISC-V 架构受到众多物联网及嵌入式开发者关注,尤其适合可穿戴设备、传感器节点等体积受限的场景,但 PlatformIO 官方仓库中并未直接内置该板卡的板级定义,导致创建项目时无法找到对应…

作者头像 李华
网站建设 2026/10/15 18:15:39

Linux 下 FastExport 1.7 安装配置与大数据导出实战

1. 为什么还要在 Linux 上折腾 FastExport 这种"老古董" FastExport 是 Teradata 生态里专门用来做 大批量数据导出 的并行工具,走的是 FastLoad 那条底层通道,跟普通的 BTEQ 导出完全不是一个量级。BTEQ 导出几千万行数据,你可能…

作者头像 李华