FeedMe:通过AI摘要提升阅读效率
content creator工作内容,ai内容创作,短视频内容创作 图文教程

FeedMe:通过AI摘要提升阅读效率

AI中国 AI中国 1 months ago 151 阅读
4.8 (1280 Rating)
15,328 People learned


简介

什么是 FeedMe ?

FeedMe 是一个基于 AI 的 RSS 阅读器,旨在通过聚合和自动生成摘要来重新定义用户的 RSS 阅读体验。该项目可以轻松部署到 GitHub Pages 或使用 Docker 本地运行。

主要特点

  1. 多源 RSS 聚合:从多个信息源获取并整合 RSS 内容,便于用户集中获取信息。
  2. AI 摘要生成:自动使用大语言模型(LLM)为文章生成摘要,帮助用户快速了解内容要点。
  3. 定时更新机制:支持通过 GitHub Actions 或 Cron 定期自动更新内容,确保信息新鲜。
  4. 分类浏览:支持按分类查看不同信息源,方便用户根据兴趣进行浏览。
  5. 主题切换:提供明暗主题切换,提升用户体验。
  6. 静态部署:可部署在 GitHub Pages 等静态托管服务上,简单易用。
  7. Docker 部署:可以在本地服务器上轻松部署,适合需要本地运行的用户。

应用场景

  • 个人信息聚合:用户可以通过 FeedMe 聚合自己感兴趣的新闻、博客和其他信息源,方便集中阅读。
  • 内容监控:适合需要实时监控特定主题或领域的用户,自动获取最新动态。
  • 开发者和技术爱好者:开发者可以使用 FeedMe 集成不同技术博客和开源项目的更新,保持知识更新。
  • 自定义信息源:用户可以根据需求配置 RSS 源,灵活定制信息获取方式。

FeedMe 提供了一个轻量级、自由定制的解决方案,适合各种需要信息聚合和快速浏览的用户。

构建镜像

如果你不想自己构建,可以跳过,直接阅读下一章节

官方提供了 Dockerfile ,但需要我们自己编。构建镜像的基本命令如下👇

# 下载代码
git clone https://github.com/Seanium/FeedMe.git

# 通过代理
git clone https://gh-proxy.com/github.com/Seanium/FeedMe.git

# 进入目录  
cd FeedMe

# 构建镜像
docker build -t wbsu2003/feedme:v1 .

# 运行容器
docker run -d \
   --restart unless-stopped \
   --name feedme \
   -p 3220:3000 \
   -v $(pwd)/env.txt:/app/.env \
   -v $(pwd)/config:/app/config \
   -v $(pwd)/data:/app/data \
   wbsu2003/feedme:v1

安装

在群晖上以 Docker 方式安装。

在注册表中搜索 wbsu2003 ,下拉找到  wbsu2003/feedme,版本选择 latest

在 docker 文件夹中,创建一个新文件夹 feedme,并在其中建两个子文件夹 data 和 config

  • 在 feedme 根目录中准备一个 env.txt 文件

env.txt

env.txt 是环境变量文件,用来配置 FeedMe 项目调用外部 AI 服务(如摘要等)的相关信息

LLM_API_KEY=your_api_key
LLM_API_BASE=https://api.siliconflow.cn/v1
LLM_NAME=THUDM/GLM-4-9B-0414

其中:

  • LLM_API_KEY :你的大语言模型 API 密钥;
  • LLM_API_BASE:指定大语言模型 API 的基础地址;
  • LLM_NAME:指定所要使用的具体大语言模型名称;

目前硅基流动(SiliconFlow),注册就送 2000 万 Tokens,虽然不是免费,但也够用一阵子的,更何况还有很多免费的模型,例如: THUDM/GLM-4-9B-0414Qwen/Qwen3-8B 等

注册地址

https://cloud.siliconflow.cn/i/NkUiXVhQ

  • 另外在 config 中准备两个文件,分别是 crontab-docker 和 rss-config.js

crontab-docker

crontab-docker  用于定时执行更新脚本,实现自动化更新。

下面👇的示例设置,表示每 3 小时运行一次

# Schedule the update and serve script to run every 3 hours
0 */3 * * * /app/scripts/update_and_serve.sh >> /proc/1/fd/1 2>&1

rss-config.js

rss-config.js 用于定义和管理所有的 RSS 源及相关配置,是数据抓取和展示的基础配置文件

你可以根据下面👇的示例修改,但是一定要记得,保存时采用 UTF-8 编码格式

// RSS源接口
// name: 信息源名称
// url: RSS URL地址
// category: 分类名称

/**
 * @typedef {object} RssSource
 * @property {string} name - 信息源名称
 * @property {string} url - RSS URL地址
 * @property {string} category - 分类名称
 */


// 默认配置
exportconst config = {
sources: [
    {
      name"Simon Willison"s Weblog",
      url"https://simonwillison.net/atom/everything/",
      category"技术博客",
    },
    {
      name"老苏的博客",
      url"https://laosu.tech/atom.xml",
      category"技术博客",
    },
    {
      name"阮一峰的网络日志",
      url"https://feeds.feedburner.com/ruanyifeng",
      category"技术博客",
    },
    {
      name"少数派",
      url"https://sspai.com/feed",
      category"科技资讯",
    },
    {
      name"小众软件",
      url"https://feeds.appinn.com/appinns/",
      category"科技资讯",
    },
  ],
maxItemsPerFeed30,
dataPath"./data",
}

exportconst defaultSource = config.sources[0]

/**
 * @param {string} url
 * @returns {RssSource | undefined}
 */

exportfunction findSourceByUrl(url{
return config.sources.find((source) => source.url === url)
}

exportfunction getSourcesByCategory({
return config.sources.reduce((acc, source) => {
    if (!acc[source.category]) {
      acc[source.category] = []
    }
    acc[source.category].push(source)
    return acc
  }, {})
}
文件夹
装载路径
说明
docker/feedme/env.txt/app/.env
存放设置文件,包括定时任务和 RSS 源
docker/feedme/data/app/data
存放 RSS 源的数据文件,保存了最新的 RSS 源爬取和解析后的数据(比如文章列表、源信息等)
docker/feedme/config/app/config
存放设置文件,包括定时任务和 RSS 源

第一项 env.txt 是文件映射,后两项是文件夹映射

端口

本地端口不冲突就行,不确定的话可以用命令查一下

# 查看端口占用
netstat -tunlp | grep 端口号
本地端口
容器端口
32203000

命令行安装

如果你熟悉命令行,可能用 docker cli 更快捷

# 新建文件夹 feedme 和 子目录
mkdir -p /volume1/docker/feedme/{data,config}

# 进入 feedme 目录
cd /volume1/docker/feedme

# 将 env.txt 放入根目录
# 将 crontab-docker 和 rss-config.js 放入 config 目录

# 运行容器
docker run -d \
   --restart unless-stopped \
   --name feedme \
   -p 3220:3000 \
   -v $(pwd)/env.txt:/app/.env \
   -v $(pwd)/config:/app/config \
   -v $(pwd)/data:/app/data \
   wbsu2003/feedme

也可以用 docker-compose 安装,将下面的内容保存为 docker-compose.yml 文件

version: "3"

services:
feedme:
    image:wbsu2003/feedme
    container_name:feedme
    restart:unless-stopped
    ports:
      -3220:3000
    volumes:
      -./env.txt:/app/.env
      -./config:/app/config
      -./data:/app/data

然后执行下面的命令

# 新建文件夹 feedme 和 子目录
mkdir -p /volume1/docker/feedme/{data,config}

# 进入 feedme 目录
cd /volume1/docker/feedme

# 将 env.txt 放入根目录
# 将 crontab-docker 和 rss-config.js 放入 config 目录

# 一键启动
docker-compose up -d

运行

容器启动后,FeedMe 会根据我们在 rss-config.js 中设定的源进行数据抓取,源越多,花费的时间也越长,当然也和网络有很大的关系

当你在 data 目录中,看到和源数量相同的 json 文件时,就可以开始访问了

在浏览器中输入 http://群晖IP:3220 就能看到主界面

可以切换源

对于中文来说,摘要的用途不大,顶多也就是概括总结

切换到原文,你会发现,对英文还是很有用的

当然这只是因为老苏的英文太菜了😋

强制更新

按照 crontab-docker 的设定,数据是定时更新的,但如果需要强制更新,可以执行下面的命令

# 更新 RSS 数据
docker exec -it feedme /app/scripts/update_and_serve.sh

日志中会看到变化

参考文档

Seanium/FeedMe:AI 驱动的 RSS 阅读器,可部署到 GitHub Pages 或使用 Docker  --- Seanium/FeedMe: AI-powered RSS reader, deployable to GitHub Pages or with Docker | 用 AI 重新定义你的 RSS 阅读体验,轻松部署到 GitHub Pages / Docker
地址:https://github.com/Seanium/feedme

FeedMe
地址:https://feedme.icu/

Rating

4.8 (1280 Rating)

Comment (11)

User avatar

太酷了!AI摘要,让阅读效率提升不少!

User avatar

太牛逼了!以后我就可以躺着看书,省心!

User avatar

这东西,我感觉它在窥探我的灵魂!

User avatar

我支持!以后我就可以在火车上听AI讲书!

User avatar

这绝对是人类对技术最好的利用,简直太天才!

User avatar

这玩意儿,以后每天都听AI总结,感觉自己变笨了!

User avatar

我开始怀疑,人类读书的意义是什么?

User avatar

这绝对是未来阅读的方式,太有意思!

User avatar

我感觉自己要被AI取代了,有点害怕!

User avatar

太妙了,以后我就可以把所有书都变成广播!

睡觉动画