Skip to content

easychen/ai-rss

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Dec 29, 2024
4475442 · Dec 29, 2024

History

25 Commits
Dec 27, 2024
Dec 22, 2024
Dec 29, 2024
Dec 22, 2024

Repository files navigation

AI RSS

AI RSS 是一个通过 AI 将网页内容转换为 RSS 订阅源的工具。

ai-rss-pv.mp4

完整使用教程请移步B站

它包含两部分:

  1. 一个浏览器插件,可以选择网页中的列表,并指定每一个数据项,最后生成一个 SDD(结构化数据描述) 文件
  2. 一个服务器端,可以部署到 Vercel 和 Docker/NAS 上,它读取 SDD 文件,根据配置抓取网页内容并分析,最终生成 RSS 订阅源

本仓库:

  1. 提供服务器端源代码,按MIT协议开源
  2. 提供浏览器插件zip包下载,插件部分不开源

在浏览器插件中,用户可以一键发布 结构化数据描述SDD 格式文件到服务器,并用其生成RSS。

浏览器插件

准备工作

由于我们使用了AI的能力来分析网页内容,所以需要先注册一个 OpenAI/API2D/SillconFlow 的账号,并获取一个 API Key。

安装

支持 Chrome 和 Edge 浏览器。

  1. 插件商店:Chrome商店 | Edge商店
  2. 在Releases页面下载插件包,解压后,在浏览器中打开 chrome://extensions/ 页面,点击 "加载已解压的扩展程序",选择解压后的文件夹。

服务器

服务器支持两种部署方式:Vercel 和 Docker。

Vercel 部署

Deploy with Vercel

  1. 点击上方的 "Deploy with Vercel" 按钮

  2. 部署时需要设置以下环境变量:

    • ADD_KEY: 设置一个添加 RSS 的 API 访问密钥
    • CACHE_MINUTES: 设置缓存时间(分钟),不设置则不缓存
  3. 创建并连接 Blob 存储:

    • 部署完成后进入 Vercel 项目控制台
    • 转到 "Storage" 标签页
    • 点击 "Create Blob Store"
    • 在项目的 storage 标签页选择新创建的 Blob 存储,点击 "Connect to Project"

注意:

  1. 如果连接 storage 以后,首页依然是 "blob_storage_configured": false,请到 vercel 控制台中 redeploy 一次以使其强制生效
  2. vercel 默认提供的 *.vercel.app 二级域名在中国大陆网络可能无法访问,可绑定自己的域名后使用

Docker 部署

我们提供两种 Docker 部署方式:使用 Docker Compose 或直接使用 Docker 命令。

使用 Docker Compose(推荐)

  1. 创建一个工作目录并进入:
mkdir -p ai-rss-server
cd ai-rss-server
  1. 下载 Docker Compose 文件:
wget https://raw.githubusercontent.com/easychen/ai-rss/master/server/docker-compose.yml
  1. 创建一个 .env 文件,并添加以下环境变量:
ADD_KEY=your_api_key
CACHE_MINUTES=60

或者手工修改 docker-compose.yml 文件中的环境变量:

  environment:
    - ADD_KEY=your_api_key
    - CACHE_MINUTES=60
  1. 启动 Docker Compose:
docker-compose up -d

使用 Docker 命令

  1. 下载 Docker 镜像:
docker pull easychen/ai-rss-server:latest
  1. 运行 Docker 容器:
docker run -d --name ai-rss-server -e ADD_KEY=your_api_key -e CACHE_MINUTES=5 easychen/ai-rss-server:latest

注意:

  1. 由于浏览器插件是注入到网页中执行的,因此,受浏览器限制,使用HTTPS的网站只能往HTTPS下的服务器端发送信息,你需要为服务器端配置SSL证书

API 说明

主要接口:

  • GET /rss/:name: 获取指定的 RSS feed
  • POST /add-sdd: 添加新的 SDD 配置(需要 API 密钥)
  • GET /list: 获取所有可用的 RSS feed 列表(需要 API 密钥)

授权

API 密钥可以通过以下两种方式传递:

  1. 通过 Header 传递:
X-Add-Key: your_api_key
  1. 通过 URL 查询参数传递:
?key=your_api_key

接口详情

1. 获取 RSS Feed

GET /rss/:name
  • 参数:
    • name: RSS feed 的唯一标识符
  • 返回:RSS XML 内容
  • 无需授权

2. 添加 SDD 配置

POST /add-sdd
  • Header:
    • Content-Type: application/json
    • X-Add-Key: your_api_key(必需)
  • 请求体:
{
  "sdd": {
    "version": "1.0",
    "url": "网页URL",
    "title": "标题",
    "data_list": "...",
    "data_list_elements": "...",
    "rss": "..."
  }
}
  • 返回示例:
{
  "success": true,
  "key": "生成的唯一key",
  "rss_url": "/rss/unique_key"
}

3. 获取 RSS Feed 列表

GET /list
  • 授权:需要通过 Header 或 URL 参数提供 API 密钥
  • 返回示例:
{
  "success": true,
  "total": 2,
  "items": [
    {
      "key": "unique_key1",
      "title": "Feed 标题",
      "url": "原始网页URL",
      "rss_url": "RSS feed URL",
      "favicon": "网站图标URL"
    },
    // ...
  ]
}

许可证

MIT