基于大模型的播客RAG系统搭建攻略(三):开源代码和后续计划

前文链接:

仓库地址https://github.com/liujinmarshall/podcast_rag

首先插播一条新闻。在两周之前,我常用的播客客户端小宇宙推出了会员plus计划:

我们的会员产品“小宇宙PLUS”现已上线,提供「AI播客总结」「收藏时点」「会员周报」「个性图标」「多彩主题色」等多个功能,一起来看看!

小宇宙PLUS会员,现已包含以下权益 ——

· AI播客总结
服务于播客重度用户的一些高信息密度节目场景。例如:你可以通过AI播客总结判断一期没有shownotes的节目是否值得听,也可以高效得到一期财经、商业、科技等领域节目的内容速报。更多使用场景,期待你的探索。

· 收藏时点
你可以通过「收藏时点」功能,随时标记最感兴趣的时点,记录此刻的私人笔记,并在【我的收藏】中查看汇总。即使正处于锁屏状态下也无需担心,iOS系统中,无需解锁也可以通过左下角的收藏按钮进行收藏时点的操作,一键收藏此刻的吉光片羽。

· 会员周报
每周一中午12:00左右,我们将为会员用户送上专属会员周报,并为你自动汇总并总结你可能错过的精彩节目,为你持续挖掘更多的兴趣内容。欢迎在【个人-会员入口】处进入查看。

· 个性图标与多彩主题色
看腻了你的小宇宙?成为小宇宙PLUS会员,即刻更换你的小宇宙图标和主题色,深空、毛绒、键帽、粉白、薄荷、深蓝……超多可选,让你的小宇宙与众不同。

当中第一项AI播客总结正好完美契合这个项目的功能,虽然我强烈怀疑这个会员是否真的值一年120元。因此我也在程序中加上了单集总结的功能。实现非常简单,通过发送提示词+播客转录稿实现。

计划中的功能列表:

  • 支持英文播客:加入英文提示词,并根据播客语言选择对应的提示词。
  • 切换embedding:现在使用的OpenAI text embedding的开销,对于个人用户来说不算很大,但也不小。需要切换到更便宜的版本或者本地推理的text embedding。目前计划使用MTEB榜单中排名较为靠前但显存需求不大的gte-Qwen2-1.5B-instruct
  • 一键运行所有任务:当前程序被分为不同的子程序,需要统一一个运行入口。
  • 新增播客总结:对于每次增量更新的内容进行小结。

以下是中文版的使用说明:

仓库地址https://github.com/liujinmarshall/podcast_rag

使用 RAG (检索增强生成) 技术来理解播客并提问

已测试 Python 版本:3.9 (应该也适用于更新的版本和不太旧的版本)

前提条件

  • Python 环境以及并了解如何运行 Python 程序
  • Google Gemini API 密钥和 OpenAI API 密钥

步骤

  1. 克隆此 Github 仓库;
  2. 创建一个名为 “data” 的目录;
  3. 将 podcasts.example.csv 复制到 data/podcasts.csv,并添加 RSS URL 条目;
  4. 通过 requirements.txt 安装 Python 依赖 (pip install -r requirments.txt);
  5. 将 Google Gemini API 密钥导出为 GEMINI_API_KEY,并将 OpenAI API 密钥导出为 OPENAI_API_KEY;
  6. 运行以下脚本以实现以下功能(使用 python xxx.py):
    1. download.py: 将播客音频媒体文件以增量模式下载到本地。每个播客一个目录。
    2. transcribe.py: 将音频媒体文件转录成文本。每个播客一个目录。
    3. index.py: 将转录文本分块并索引到向量数据库 (ChromaDB) 中。
    4. query.py: 启动一个聊天机器人来查询问题:
      • 运行程序;
        • 在浏览器中打开链接并开始提问 。
    5. summarize.py: 将转录文本总结成简洁的摘要。每个播客一个目录。
    6. delete_files.py: 删除音频媒体文件(超过 24 小时的文件),以防文件上传超出配额。上传超过 48 小时的文件将被自动清除

语言支持

  • 中文
  • 英语 (待添加)

注意

请遵守播客提供商的用户协议。此仓库仅供个人研究使用。

Leave a comment