myGPTReader
基于ChatGPT的开源阅读助手,支持网页/电子书/YouTube摘要
加载项目详情…
本应用为开源项目,仅供学习研究,请遵守其开源协议。
基于ChatGPT的开源阅读助手,支持网页/电子书/YouTube摘要
加载项目详情…
本应用为开源项目,仅供学习研究,请遵守其开源协议。
每天早上打开电脑,面对密密麻麻的 RSS 订阅、行业资讯和未读邮件,你是否有过这样的焦虑——信息太多,时间太少?想快速 get 要点,却总是被无关内容打断节奏?
myGPTReader 试图解决的就是这个问题。这是一个运行在 Slack 上的开源 AI 助手机器人,核心理念很简单:把你想要阅读的任何内容丢给它,AI 自动消化、提炼、直接回答你的问题。支持的输入五花八门:网页文章、技术文档、PDF 电子书、Slack 频道里的历史消息,甚至 YouTube 视频——只要有字幕,myGPTReader 就能理解并与你讨论。
项目在 GitHub 积累超过 4,400 个 star,Slack 社区成员超过 5,000 人,至今仍保持活跃更新。

myGPTReader 的作者 madawei2699 在项目中记录了一个有趣的实验——整个项目的开发过程本身就是用 ChatGPT 驱动完成的。他将开发日志写入了 docs/CDDR.md(ChatGPT-Driven Development Records),记录了如何借助 GPT-4 一步步完成架构设计、代码编写和 bug 修复。这个做法本身就像是一场"元实验":用 AI 工具开发 AI 应用。
项目诞生于 2023 年初,彼时 GPT-3.5 API 刚刚开放,LangChain 生态也在快速成长。作者敏锐地捕捉到一个需求缺口:市面上的 AI 阅读工具要么是闭源付费服务,要么功能单一。于是,一个社区驱动的开源方案应运而生。
只需把 URL 发给 Slack Bot,myGPTReader 自动抓取页面正文(使用 trafilatura 库实现高质量内容提取,过滤广告和导航),然后你可以用自然语言向它提问,比如"这篇文章的核心论点是什么""第三段的数据支撑是什么"。这比直接粘贴给 ChatGPT 更方便,因为工具自动处理了页面清洗和上下文记忆。

将电子书文件直接发给 Bot,它会自动识别格式(PyPDF2 处理 PDF、docx2txt 处理 Word、EbookLib 处理 epub),提取文本后用 GPT 进行语义切分和摘要生成。支持中英文混合内容。这对于技术从业者阅读原版英文书籍特别有帮助——AI 可以充当"随身翻译 + 讲解员"。

将 YouTube 视频链接发给 Bot,项目通过 youtube-transcript-api 自动获取字幕,然后基于字幕内容进行问答。这意味着你可以"和视频对话",问它某个技术细节在哪一分钟讲的、某个实验结果是什么——无需手动看字幕找答案。
这是 myGPTReader 最有趣的功能之一。用户通过语音和 Bot 交流,Bot 通过 Azure 认知服务的语音识别(ASR)将语音转为文字,GPT 处理后生成回复,再通过 TTS 合成语音输出。目前支持中文、英语、德语和日语。相当于一个随时可用的外语口语陪练 App,且知识面覆盖你发给它的任何阅读材料。

通过 Flask-APScheduler 定时任务,每天自动抓取热点新闻源(RSS feedparser),生成摘要后推送到指定频道。这解决了"没时间刷新闻但又不想错过重点"的需求——每天花 5 分钟看完 AI 提炼的热点,比刷微博高效得多。

项目采用 Python 开发,主要技术栈:
| 组件 | 技术选型 | 作用 |
|---|---|---|
| LLM 框架 | LangChain 0.0.154 | 工具链编排、Prompt 管理、Memory |
| 索引框架 | LlamaIndex 0.6.9 | 文档切分、向量化、检索 |
| Web 抓取 | trafilatura、BeautifulSoup、html2text | 高质量正文提取 |
| Web 服务 | Flask + Gunicorn | RESTful API 服务 |
| 定时任务 | Flask-APScheduler | 每日热点推送 |
| 语音服务 | Azure Cognitive Services Speech | ASR + TTS |
| Slack 集成 | slack-bolt | Bot 事件处理、Slash Commands |
app/
├── server.py # Flask 应用入口,路由和事件处理
├── gpt.py # GPT 调用封装(OpenAI API)
├── prompt.py # Prompt 模板管理
├── fetch_web_post.py # 网页内容抓取与清洗
├── daily_hot_news.py # 每日热点新闻生成
├── user.py # 用户状态管理
├── slash_command.py # Slack Slash Commands 处理器
├── rate_limiter.py # API 限流器
└── util.py # 通用工具函数
整个 RAG(检索增强生成)管道为:用户输入 → 判断类型(URL/文件/语音)→ 对应处理器抓取内容 → LlamaIndex 向量化切分 → LangChain 构建 Prompt → GPT-3.5-turbo 生成回答 → 响应用户。
架构上没有过度封装,代码结构清晰可维护,适合想学习"如何将 LangChain 落地到实际产品"的开发者参考。
myGPTReader 代表着 2023 年初 AI 应用的一个典型方向:将大语言模型封装成垂直场景的智能助手。它没有追求"通用 AGI",而是专注在"阅读"这一个高频场景做深,结合 Slack 的社交属性形成社区生态。
从增长曲线看,项目在 GPT-4 发布前后迎来峰值关注(2023年3月前后),反映了当时开发者对"AI + 信息获取"赛道的高度期待。即使在 LLM 应用百花齐放的今天,一个专注阅读场景、社区活跃度高、代码质量良好的开源项目,仍然有其不可替代的价值。