AI视频搜索引擎(AVSE)
由最新AI工具驱动的视频搜索引擎
为什么?
随着TikTok和YouTube等短视频内容的兴起,比以往任何时候都有更多的知识存在于视频中。对任何人来说,在数百万个视频中找到特定答案都是一项艰巨的任务。因此,问题是:既然有Google可以索引网站上的文本,使人们更容易根据问题的上下文找到答案,为什么没有一个Google可以索引视频内容,让用户更容易在其中找到答案呢?
所以我建立了这个项目,以展示利用现有的技术和基础设施完全可以实现这一点。
技术栈
- Supbase(PostgreSQL、PG_Vector、Auth)
- Hasura(GraphQL层、权限)
- Fly(Hasura托管)
- JigsawStack(摘要AI、聊天AI)
- Vercel(NextJS托管、无服务器函数)
工作原理?
视频存储
- 从YouTube视频中提取视频转录
- 根据https://huggingface.co/Supabase/gte-small 维度大小对转录进行分块并添加时间戳
- 存储在postgres数据库中,使用pg_vector扩展和索引
搜索
- 根据问题在数据库中进行向量余弦搜索,返回相关结果
- 结果中的每个视频将执行第二次搜索,以找到与问题相关的视频片段
- 这些片段将映射回带时间戳的转录,以播放视频的相关片段
摘要和聊天
- 视频转录将发送到JigsawStack API,生成要点和文本形式的摘要
- 聊天会话将由JigsawStack API创建和管理,根据问题将视频的相关片段发送到聊天会话
自行托管需注意的事项
- 如果你计划索引数千到数百万个视频,你需要付费的Supabase和Fly.io账户
admin/config/fly.toml
包含将Hasura部署到fly所需的配置admin/migration
是可用于通过Hasura CLI重新创建架构的迁移转储hasura init migration --endpoint <hasuraurl.fly.app> --admin-secret <admin_secret>
用于更新admin
中的迁移文件夹admin/indexChannelVideos.ts
是在本地通过YouTube频道索引大量视频的脚本.env.example
包含运行项目所需的密钥
常见问题
YouTube不是已经做到这一点了吗?
- 不完全是,YouTube并不搜索视频的转录音频,而是依赖上传者编写的内容,如标题、描述、标签。所有音频内容都未被索引。
这个技术栈如何处理数百万个视频?
- 它可以处理数百万个视频,但在当前设置下可能无法处理数十亿/万亿个。这需要更多的副本、实例,尤其是更多的资金。
下一步计划?
- 添加TikTok作为视频来源
- 添加https://replicate.com/vaibhavs10/incredibly-fast-whisper 来转录音频
- 显著提高查询性能
- 添加查看所有活跃聊天的页面