[开源] AI 版 RSS 阅读器;信息监控; MCP 查询分析;每日简报....

7 天前
 IndexOutOfBounds

一个月前画的饼: https://yangjunhui.monster/t/1119444

https://github.com/glidea/zenfeed

简单预览

有兴趣再左键点击阅读全文;右键标记已读,彻底从列表消失,减少焦虑

详细介绍

zenfeed 是你的智能信息助手。它自动收集、筛选并总结关注的新闻或话题,然后发送给你。但我们可不是又造了一个 "今日头条"... 🤔

For RSS 老司机 🚗

For 万物追踪 替代品寻觅者 🔍

For 信息焦虑症患者(比如我) 😌

For AI 内容处理的探索者 🔬

安装

替换下方 APIKey 等参数,并完整复制到终端一键执行。注意:

  1. provider 除了硅基还支持 openai, openrouter, deepseek, gemini, volc (火山(keng)引擎)。也可自定义,参考 配置文档。需要自定义其它参数的大佬也可参考

  2. llms[0].model 默认会用来总结内容,相对耗费 Token ,一般 Qwen/Qwen2.5-7B-Instruct (免费!!!)足够,当然米够的话越强越好

  3. 想完全自定义部署的,参考 https://github.com/glidea/zenfeed/tree/main/install

Mac/Linux

docker run --rm \
  -v "$(PWD):/app" \
  -w /app \
  --entrypoint sh \
  mikefarah/yq -c '
    set -e
    mkdir -p zenfeed/config && cd zenfeed
    TEMPLATE_URL="https://raw.githubusercontent.com/glidea/zenfeed/main/install/config-template.yaml"
    COMPOSE_URL="https://raw.githubusercontent.com/glidea/zenfeed/main/install/docker-compose.yml"
    CONFIG_OUTPUT="config/config.yaml"
    COMPOSE_OUTPUT="docker-compose.yml"

    wget -qO- "$TEMPLATE_URL" | yq \
        ".timezone = \"Asia/Shanghai\" |
          .llms[0].provider = \"siliconflow\" |
          .llms[0].model = \"Qwen/Qwen2.5-7B-Instruct\" |
          .llms[0].api_key = \"your_api_key\" | # <<<--- 替换 API Key! 其它参数按需选择
          .llms[1].provider = \"siliconflow\" |
          .llms[1].embedding_model = \"Pro/BAAI/bge-m3\" |
          .llms[1].api_key = \"your_api_key\" | # <<<--- 替换 API Key!
          .storage.feed.rewrites[0].transform.to_text.prompt = \"{{.summary_html_snippet}}使用中文回复\"" \
        > "$CONFIG_OUTPUT"

    wget -qO "$COMPOSE_OUTPUT" "$COMPOSE_URL"
' && cd zenfeed && docker compose up -d --wait

Windows

docker run --rm `
  -v "${PWD}:/app" `
  -w /app `
  --entrypoint sh `
  mikefarah/yq -c '
    set -e
    mkdir -p zenfeed/config && cd zenfeed
    TEMPLATE_URL="https://raw.githubusercontent.com/glidea/zenfeed/main/install/config-template.yaml"
    COMPOSE_URL="https://raw.githubusercontent.com/glidea/zenfeed/main/install/docker-compose.yml"
    CONFIG_OUTPUT="config/config.yaml"
    COMPOSE_OUTPUT="docker-compose.yml"

    wget -qO- "$TEMPLATE_URL" | yq \
        ".timezone = \"Asia/Shanghai\" |
          .llms[0].provider = \"siliconflow\" |
          .llms[0].model = \"Qwen/Qwen2.5-7B-Instruct\" |
          .llms[0].api_key = \"your_api_key\" | # <<<--- 替换 API Key! 其它参数按需选择
          .llms[1].provider = \"siliconflow\" |
          .llms[1].embedding_model = \"Pro/BAAI/bge-m3\" |
          .llms[1].api_key = \"your_api_key\" | # <<<--- 替换 API Key!
          .storage.feed.rewrites[0].transform.to_text.prompt = \"{{.summary_html_snippet}}使用中文回复\"" \
        > "$CONFIG_OUTPUT"

    wget -qO "$COMPOSE_OUTPUT" "$COMPOSE_URL"
' ; cd zenfeed; docker compose up -d --wait

💐恭喜 V 友安装成功!!

关于后续如何使用现成的 Web 端,配置 Cherry Studio MCP 参考 README。也就几分钟的事情

顺便帮忙点个 Star ,防止我太监掉 💐

https://github.com/glidea/zenfeed

Roadmap

欢迎 V 友提需求

24423 次点击
所在节点    分享创造
30 条回复
SGL
7 天前
可以,很强。
IndexOutOfBounds
7 天前
@SGL 感谢佬的鼓励
set
7 天前
支持!这项目满足需求
shot
7 天前
大赞!

请问是否有计划做一个插件系统:通过执行自定义插件,对 RSS 内容进行标记/过滤/增强/……
如果要支持插件,也许我也能贡献绵薄之力。

我去年就整理了 RSS 阅读器的一些需求,主要关注插件支持能力。但是一直拖延着没动手……
https://github.com/users/HuangJian/projects/1/views/1
IndexOutOfBounds
7 天前
每篇内容都被抽象成一个标签集合(比如标题,来源,正文... 都是标签),在管道的每一个节点,可以基于自定义 Prompt 对特定标签值进行处理(比如评分、分类、摘要、过滤、添加新标签等...),而后基于标签查询过滤,路由,展示... See Rewrite Rules

@shot 你看这个符合需求不,安装后在前端的“高级设置”中自定义
https://github.com/glidea/zenfeed/blob/main/docs/config-zh.md#%E9%87%8D%E5%86%99%E8%A7%84%E5%88%99%E9%85%8D%E7%BD%AE-storagefeedrewrites

For example:
```yaml
rewrites:
- skip_too_short_threshold: 0
match_re: ^[\s\S]{0,300}$ # 丢掉 300 字以内的短文
action: drop_feed
- skip_too_short_threshold: 0
transform:
to_text:
llm: qwen-small
prompt: "{{ .score }}" # 给内容打分(使用内置 Prompt )
label: score
- source_label: score # 引用刚刚的分数
skip_too_short_threshold: 0
match_re: ^[0-6]$ # 6 分及以下丢掉
action: drop_feed
- transform:
to_text:
llm: qwen-small
prompt: "{{ .category }}" # 给内容分类,后续你可以根据分类 Group by 查询,或者一个分类一个邮件...
label: category
- transform:
to_text:
llm: qwen-small
prompt: |
{{ .tags }}
使用中文回复 # 打 tags 。在内置 Prompt 的基础上补充要求
label: tags
- transform:
to_text:
llm: qwen-small
prompt: |
{{ .summary_html_snippet }} # 总结成可视化的 html ,也就是上面预览看到的内容
label: summary_html_snippet
```
Pipecraft
7 天前
非常棒的项目
shot
7 天前
@IndexOutOfBounds #5

> - skip_too_short_threshold: 0
> match_re: ^[\s\S]{0,300}$ # 丢掉 300 字以内的短文
> action: drop_feed

如果我理解正确的话,这是通过 yaml 来配置和启用“系统内置”的插件。
已经有了初步的插件化支持。👍

我更期望后继能扩展到支持用户自己编写插件、上传系统、沙盒执行。

比如说我订阅了 V2EX 的 RSS 源,希望有一个功能:在主题发布两天后统计它的回复数,感谢数和红心数。
这可能是一个非常小众的需求,不一定会内置在系统里。那就只能既往插件机制来支持用户自行编写。
luofeiff6666
7 天前
很有想法,直击痛点。
IndexOutOfBounds
7 天前
@shot 如果 RSS 内容本身就有 “回复数,感谢数和红心数” 通过上面的配置写自定义 Prompt 让模型提取也是可以的,或者可以简单分析出来

但至于说 “两天后” 这个目前就得靠 rss 源自己适配了,爬到 v2 帖子后,攒两天评论再暴露成 feed
Akagi201
7 天前
我用 rust 实现了类似的, 没有 op 功能丰富, rsshub mcp server 很受启发, 感谢分享.

op 有没有想过结合 AI + 搜索. 采集下来的 rss 内容(title + description + link) 进行向量化存储, 形成一个垂直领域知识库的产品?

另外, 我没考虑做实时监控, 基本用作每天采集汇总一次消息 + AI 分析. 太少的内容 AI 也没啥可分析的. 单个文章 AI 分析我感觉这个场景价值不大, 重点还是整体的分析. 比如汇总一天金融新闻, 对整体行情进行分析.
IndexOutOfBounds
7 天前
@Akagi201 现在就是向量化存储哦,支持搜索的

“比如汇总一天金融新闻, 对整体行情进行分析.” 这个通过 MCP chat 可以实现时间范围 & 语义查询并分析,可以看下上面的预览图

不过如果你是说每天发的简报邮件,支持多篇文章一起总结的话,目前倒是没支持,不过是个好的功能点
v2er119
7 天前
很受启发,我的简阅 rss 项目,有了更大的想象空间,太赞了!
IndexOutOfBounds
7 天前
@v2er119 哈哈很高兴对你有启发,也欢迎基于 zenfeed API 改造你的简阅 rss 项目。
现在我这前端很草台,期待更多第三方选择
lc4t
7 天前
好!
xajh87
7 天前
支持一波,一定好好体验。大厂的就是给小白网民降至的。
monosolo1on1
7 天前
好!
IndexOutOfBounds
7 天前
@monosolo1on1 @lc4t 多么朴实无华的赞美
hellopz
7 天前
我有点没看懂,RSS 小白,请问下信息源在哪里,是本地部署本地发 RSS 吗,此外 ai 有没有公共 ak ,一定要用个人的 ak 吗(没注册过,懒 hhh
hanangellove
7 天前
有点意思
IndexOutOfBounds
7 天前
@hellopz RSS 大合集: https://docs.rsshub.app/routes/popular
ak 得个人的,不是现成产品,是得好好折腾一番

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://yangjunhui.monster/t/1126882

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX