跳到正文
GitHub·· 8 天前AI 评分36

信萃 InfoDigest:从 X 与 GitHub 萃取中文图文直达微信草稿箱的开源聚合器

choustark/ai-content-aggregator

AI 导读

信萃 InfoDigest 是一条信息萃取管线,从 X 推文与 GitHub Trending 抓取内容,经互动量粗筛加 LLM 创新度评分两级过滤后,用 DeepSeek / GLM 等模型改写为中文图文并生成微信公众号草稿。

正文

信萃 InfoDigest

从 X(Twitter)与 GitHub 的海量信息中,萃取可信、易消化的中文图文,直达微信公众号草稿箱。

信萃,取"信息萃取"之意——"信"兼指信息、可信与微信,"萃"即萃取精华。它不是内容搬运管道,而是一条信息萃取管线:选料(多源抓取 + 两级过滤)→ 萃取(AI 改写增值,碎片化推文转译为完整易读的中文图文)→ 成稿(排版配图,生成微信草稿)。每篇成稿保留原帖来源与完整审计记录,萃取有据可查。

解决什么问题

信萃解决两层问题。

表层:手动运营一个技术类公众号,每天的事情高度重复。

  1. 刷 X 和 GitHub Trending,找出值得写的内容
  2. 判断内容质量,筛掉灌水和重复
  3. 改写成中文公众号文风,排版、配图
  4. 搬进公众号后台,做成草稿

这个过程每天耗费 1-2 小时,且大部分是机械劳动。

深层:好信息难以消化。 一条推文常常只是"预告片"——一句断言、一个链接、一张截图,原文可能是英文、充满术语、缺乏上下文。直接搬运读者看不懂,原文照翻读者没收获。信萃做的事是把"预告片"还原成"正片":用 AI 把碎片化的信息转译为结构完整、中文读者可以直接消化的内容,而不是逐字翻译或缩写。

机器负责萃取,人来把关——机器产出草稿,人来决定发不发(只创建草稿,永不自动群发)。

工作流程

flowchart LR
    A["定时抓取<br/>X 推文 + GitHub Trending"] --> B["两级过滤<br/>互动量粗筛 + LLM 创新度评分"]
    B --> C["AI 改写<br/>三种生成模式"]
    C --> D["微信公众号草稿<br/>人工审核后发布"]
    C --> E["本地 Markdown 归档<br/>完整审计记录"]

Loading

三种生成模式

系统按内容来源自动选择处理路径,三条路互不干扰:

模式 做什么 适用场景
AI 改写(默认) LLM 重写为公众号文风 普通资讯类推文
AI 改写 + 原帖图片 改写文字,并把原帖图片下载后嵌入正文 图文并茂的推文
原帖复现 不经 LLM,逐字保留原帖内容与图片 需要原汁原味呈现的内容

媒体处理有完整的降级策略:单张图片下载或上传失败只影响那张图(自动降级为纯文字),不会拖垮整篇文章;所有媒体操作留有审计记录,出问题可追溯。

核心特性

  • 多源抓取,自带降级:X 内容支持本地 scraper / Apify / twscrape 多通道,一层失败自动切下一层,保证抓取可用性
  • 省钱的内容过滤:先用互动量等廉价信号粗筛,再让 LLM 给创新度评分,避免对垃圾内容浪费 token
  • 可插拔的 AI 萃取改写:支持 DeepSeek / GLM 等国产大模型(OpenAI 兼容协议),把碎片化推文转译为完整易读的中文图文;主模型失败自动切备用模型,可选多模型投票与 RAG 检索增强,均由配置开关控制
  • 成本可见可控:token 用量与费用按月追踪,达到预算阈值自动暂停处理,月度账单一目了然
  • 可观测:内置 Prometheus 指标端点与 Grafana 面板(队列积压、任务结果、JVM/容器资源),配套最小告警集,调度漏跑、队列积压、成本超支第一时间知道
  • 可靠性优先:Redis 持久化任务队列,应用重启自动恢复断点;任何单篇内容失败不影响后续处理

技术栈

层次 选型
语言 / 框架 Java 21 · Spring Boot 3.5
AI 编排 LangChain4j(DeepSeek / GLM,OpenAI 兼容协议)
内容平台 WxJava(微信公众号草稿箱 API)
存储 Redis(任务队列 + 嵌入向量 RediSearch)
观测 Micrometer + Prometheus + Grafana + cAdvisor(单机 Docker 观测平面)
测试 JUnit 5 + Mockito,1100+ 自动化测试,外部 API 调用默认隔离

快速开始

# 本地启动(Redis Cluster 等前置配置见 LOCAL_STARTUP_GUIDE.md)
./mvnw spring-boot:run

# 全量回归测试
./mvnw clean test

需要配置:application.yml(主配置,参考 application.example.yml)、api-keys.yml(LLM / X / 微信凭据,不入库)。本地日志同时输出到控制台和 logs/ai-content-aggregator.log,按日期或 20 MB 滚动;生产覆盖配置为 application-prod.yml,自动化测试配置位于 src/test/resources/application.yml。

当前状态

MVP 已交付并在真实环境运行:内容抓取、过滤、改写、媒体嵌入、微信草稿创建全链可用。已知边界:微信 API 出口 IP 白名单未放行的部署环境无法创建草稿(本地 Markdown 归档不受影响)。


最后更新:2026-09-20

来源:GitHub · github.com