ai-video-search-engine
RAG 视频搜索引擎:自然语言检索视频语音内容,精准时间戳定位
加载项目详情…
本应用为开源项目,仅供学习研究,请遵守其开源协议。
RAG 视频搜索引擎:自然语言检索视频语音内容,精准时间戳定位
加载项目详情…
本应用为开源项目,仅供学习研究,请遵守其开源协议。
凌晨两点,你正在学习一门新技术,翻遍了 50 个 YouTube 视频的简介、评论区、字幕文件,始终找不到想听的那个具体知识点——这种感觉,相信每个靠视频学习的人都经历过。Google 能索引网页文字,却索引不了视频里的语音内容。大多数视频搜索引擎依赖作者写的标题和简介,一旦视频内容与描述不符,你就"搜不到"了。
yoeven/ai-video-search-engine 正是来解决这个问题的:它用 RAG(检索增强生成)技术,给视频的语音内容建了一个可检索的向量知识库。你用自然语言提问,它直接返回包含答案的那个视频片段和精确时间戳。
Supabase PostgreSQL + pg_vector 扩展作为向量存储与检索引擎
TikTok 和 YouTube 让知识的载体从文字转向视频,海量内容被"锁在"视频里无法被精确检索。目前主流视频平台的搜索机制都基于 uploader 提供的元数据——标题、描述、标签——而视频内的语音内容完全未被索引。也就是说,如果一个视频讲的是"如何在 Linux 上配置 Nginx 反向代理",但标题只写了"nginx 教程",你用"反向代理配置"根本搜不到。
项目作者在 GitHub README 中直接点出了这个痛点:既然 Google 能索引网页文字让搜索变得简单,为什么没有一个"Google"来索引视频内容?这个问题的答案,需要整合视频转录、语义向量embedding、向量检索和生成式 AI 等多项技术——这正是 AVSE 做的事。
AVSE 的技术栈分三层,每层各司其职:
前端展示层:Next.js + Chakra UI 构建的 Web 界面,用户输入查询、展示视频搜索结果和摘要对话。前端通过 Apollo Client 连接 GraphQL 后端,React 组件化开发,界面友好。
GraphQL 中间层:Hasura 部署在 Fly.io,提供 GraphQL API 和权限管理。前端通过 GraphQL 查询向量数据库,Hasura 负责权限过滤和数据聚合。
数据存储层:Supabase(PostgreSQL + pg_vector 扩展)存储视频元数据和向量embedding,JigsawStack 提供多模态 embedding 模型、摘要生成和 Prompt Engine API。
Hasura GraphQL 层架构图(来源:项目仓库)
当一个 YouTube 视频被添加到系统时,处理流程如下:
ytdl-core 提取视频音频并转录为文字(字幕)这个流程的关键在于:分块时保留了时间戳,这使得后续检索可以精确定位到"第几分第几秒"。
用户输入自然语言查询(如"如何配置 Python 虚拟环境")时:
对单个视频,用户可以获取 AI 生成的要点摘要(bullet points + 段落总结),由 JigsawStack Summary API 生成。Chat 对话功能基于 JigsawStack Prompt Engine API,会话内容不持久化存储,纯临时交互。
JigsawStack 提供 embedding、摘要、prompt engine 三个核心 AI 能力
优点方面:代码开源完整,README 写得非常详细,技术原理交代清楚。Next.js 项目对前端开发者友好,GraphQL 接口清晰,数据模型有迁移脚本(Hasura migration dump)可参考。
缺点方面——这是重点:
检索质量依赖 embedding 模型:当前版本使用 JigsawStack 多模态 embedding 模型,支持 75+ 语言,context size 8000+。但模型能力直接影响检索效果,切换 embedding 模型需要用 admin/reindex.ts 重新生成所有视频的向量,作者在 HuggingFace 上传了 v1 版本的完整数据库快照供对比。
扩展性有上限:作者坦言,当前架构可以处理数百万条视频,但到数十亿级别需要更多的副本、实例和资金投入。这是一个工程上"够用但不是无限"的方案。
视频来源单一:目前只支持 YouTube 视频,README 中"What's next?"提到要加 TikTok 支持,但目前尚未实现。
会话不持久:Chat 功能基于 JigsawStack Prompt Engine,会话内容不存储,这意味着没有对话历史,每次都是独立提问。
Fly.io 部署 Hasura 的配置文件结构
AVSE 体现了一个明确的趋势:视频内容的语义检索正在从"关键词匹配"向"语义理解"迁移。随着多模态 embedding 模型的成熟,未来的视频搜索引擎将能够:
GitHub 626 星的关注度说明社区对这个方向有真实需求。相比于商业视频平台自建搜索,AVSE 代表了一种开源、去中心化的视频语义搜索路线——任何人都可以部署自己的视频知识库,不依赖平台算法推荐。
Vercel 托管 Next.js 前端的配置
| 维度 | 评分 | 说明 |
|---|---|---|
| 部署难度 | ⭐⭐⭐(中等) | 无 Docker,多平台联动配置复杂 |
| 技术创新 | ⭐⭐⭐⭐(较高) | RAG + 向量检索 + 多模态 embedding 组合落地 |
| 产品完整度 | ⭐⭐⭐⭐(较高) | 搜索+摘要+对话三大功能齐全 |
| 社区活跃度 | ⭐⭐(较低) | Star 数中等,更新频率有限 |
| 扩展性 | ⭐⭐⭐(中等) | 百万级可行,亿级需重构 |
如果你正在构建企业内部视频知识库、在线教育平台检索系统,或者单纯对 RAG 在非文本领域的落地感兴趣,AVSE 是一个值得研究的参考实现。它的价值不仅在于"能用",更在于展示了如何将向量检索、时间戳分块和多模态 AI 串联起来,解决视频内容无法被语义搜索这个实际问题。