Colin-XKL/FeedCraft
craft your feed at ease! 轻量级rss中间件, 提取全文, 翻译、摘要一站式服务
FeedCraft – AI 增强的 RSS 处理
是什么
- 一个位于任意 RSS/Atom 源与阅读器之间的开源 Go 服务。可获取、转换、重新发布带有可选 AI 驱动步骤的订阅源。
核心概念
| 概念 | 含义 |
|---|---|
| AtomCraft | 单个处理步骤(例如:fulltext, translate-title, introduction)。 |
| FlowCraft | 串联在一起的 AtomCraft 流水线(例如:fulltext → introduction → translate-title)。 |
| Recipe | 将特定输入 RSS URL 与一个 FlowCraft 关联的命名配置,暴露一个可订阅的新 RSS 端点。 |
主要功能
- AI 驱动的转换 – 连接任意 OpenAI 兼容 LLM(OpenAI、Ollama、Gemini 等),并编写自定义提示词,实现:
- 文章摘要(
introduction,summary) - 标题或全文翻译(
translate-title,translate-content,translate-content-immersive) - 文本清理/美化(
beautify-content,ignore-advertorial)
- 文章摘要(
- 全文提取 – 支持纯文本(
fulltext)或浏览器渲染(fulltext-plus),适用于依赖 JavaScript 的网站。 - 便携模式 – 为任意 RSS URL 添加短前缀,即可无需专用部署立即处理。
- Dock(高级)模式 – 运行持久实例并提供 Web UI,可创建和管理 Recipe,查看前后对比,编辑提示词。
- HTML/JSON/Search → RSS 生成器 – 将任意网页、JSON API 响应(包括原始
curl命令)、搜索结果转换为标准 RSS 订阅源。 - 内置 UI – 提供 AtomCraft 的可视化编辑器、Recipe 管理器和 Feed 比较工具。
典型工作流程
- 部署 FeedCraft(推荐使用 Docker-compose 方法)。
- 设置环境变量,包括:
- 浏览器渲染服务(
FC_BROWSER_PROVIDER+ 端点)——用于fulltext-plus。 - Redis(缓存、队列)。
- LLM 端点、密钥、模型和类型(
FC_LLM_API_*)。
- 浏览器渲染服务(
- 通过 UI 或调用 HTTP API 定义一个 Recipe,选择所需的 AtomCraft 或自定义 FlowCraft。
- 订阅生成的 RSS URL,例如:
服务将获取原始订阅源,使用配置的 LLM 翻译每个标题,并返回新的 RSS 流。https://feed-craft.example.com/craft/translate-title?input_url=https://feeds.feedburner.com/visualcapitalist
部署
- Docker 镜像:
ghcr.io/colin-xkl/feed-craft(Docker Hub 也提供)。 - 最小
docker-compose.yml可启动应用、Redis 容器和用于无头渲染的 browserless-chrome 容器。 - 默认管理员凭据为
admin / adminadmin—— 请立即更改。 - 环境变量可切换 便携(单请求)和 Dock(持久 UI)模式。
AI 集成细节
- 服务不自带任何模型;它将提示转发给遵循 OpenAI
/v1/chat/completions协议的任意端点。 - 可设置默认目标语言(
FC_DEFAULT_TARGET_LANG),使翻译 Craft 自动知道输出语言。 - 提示词自定义在 UI 中暴露,允许精细调整 LLM 的摘要或翻译方式。
谁可能使用它
- 希望获得无广告、完整文本文章的 RSS 高级用户。
- 需要即时翻译外语订阅源的 多语言读者。
- 希望通过 AI 生成摘要快速浏览大量订阅源的 内容策展人。
- 构建下游服务(如新闻简报、聊天机器人订阅源)并消费增强型 RSS 的 开发者。
许可证
- GPL-v3,因此只要您对衍生作品保持相同许可证,即可自由运行、修改和分发该软件。
总结:FeedCraft 是一个可自托管的 Go 基础中间件,能将普通 RSS 订阅源转化为 AI 增强、全文、翻译或摘要流,通过可视化 UI 构建自定义处理流水线。它明确属于 AI 增强工具领域,仅需一个 Docker-Compose 文件即可部署。
相关
- 项目
- 项目
- 项目
- 项目
- 项目