把你在 B 站收藏的访谈/演讲/课程,变成可检索、可追溯来源的个人知识库。
适合:访谈/演讲/课程、技术视频与学习视频整理、公开课复盘、知识总结、会议/分享回顾、播客内容归档等。
亮点:自动拉取内容 → 语音转写 → 向量检索 → 对话问答
- ✅ B 站扫码登录,读取收藏夹
- ✅ 音频转文字(ASR),自动兜底处理
- ✅ 语义检索(向量检索)
- ✅ 基于 RAG 的对话问答
- ✅ 本地 SQLite + ChromaDB 存储
- 安装 ffmpeg(并确保在 PATH 中)
- macOS:
brew install ffmpeg - Windows: 下载安装包后将
bin目录加入 PATH - Linux:
apt/yum/pacman安装ffmpeg
- 安装依赖
conda activate bilibili-rag pip install -r requirements.txt
- 配置环境变量
cp .env.example .env
# 编辑 .env,填写 DashScope API Key 等配置- 启动服务
python -m uvicorn app.main:app --reload
后端文档:http://localhost:8000/docs
前端:
cd frontend
npm install
npm run dev前端页面:http://localhost:3000
- 选择收藏夹
- 拉取视频 → 音频转写(ASR)
- 生成向量 → 构建知识库
- 对话/检索问答
注意:
test/目录下的脚本需要 移动到项目根目录 再运行(依赖相对路径与配置)。
debug_asr_single.py:测试单个视频是否能正确获取音频diagnose_rag.py:测试向量检索召回是否准确sync_cache_vectors.py:同步数据库缓存数据到向量库
部分 B 站音频 URL 可能返回 403(直链不可拉取),系统会自动执行兜底流程:
- 本地下载音频(带 Cookie)
- ffmpeg 转码为 16k 单声道
- 上传到 DashScope 后再识别
请确保本机已安装
ffmpeg并加入 PATH。
模型相关费用包括:
- LLM 对话(按 Token)
- Embedding(按 Token)
- ASR 音频转写(按时长)
建议:
- 部署/测试阶段先用 **短视频(约 10 分钟)**验证流程与费用
- 正式使用按需启用,注意费用;大多数模型有免费额度,通常足够日常使用
- 后端:FastAPI
- LLM:LangChain + DashScope
- 向量库:ChromaDB
- 前端:Next.js + Tailwind
- 数据库:SQLite
bilibili-rag/
├── app/ # 后端逻辑
├── frontend/ # 前端界面
├── data/ # 数据库与向量库
├── test/ # 测试脚本(需移动到根目录再运行)
└── README.md
Q:为什么有些音频 URL 可达、有些不可达?
A:B 站音频直链存在鉴权/过期/区域限制,只有公网可直接拉取的 URL 才可达。
MIT
- 对话存储、会话管理、检索历史对话记录
- 支持 B 站分 P 视频
- 适配更多 LLM 与向量模型