bilibili-rag产品系统

我要开发同款
熙玉2026年06月03日
6阅读

技术信息

语言技术
JavaSpringJavaScriptVue
系统类型
Web
行业分类
人工智能

作品详情

行业场景

立项原因:旨在解决个人知识管理中的“信息过载与碎片化”问题。B站用户收藏了大量视频,但收藏即“吃灰”,难以回顾和利用其中的知识。本项目通过构建个人AI知识库,将B站收藏的视频内容(语音、字幕、简介)转化为可检索、可问答的结构化知识资产,解决“收藏从未停止,学习从未开始”的产品痛点。
行业场景:面向知识工作者、学生、研究者和B站深度用户,适用于以下业务背景:
个人学习:用户收藏的技术教程、公开课、行业分享等视频,通过ASR转文字后构建向量库,可随时用自然语言提问获取答案,无需重复观看。
内容创作:UP主或自媒体人收集大量素材后,通过语义搜索快速定位相关视频内容,辅助选题和文案撰写。团队知识沉淀:小团队将共同关注的B站收藏夹作为知识源,通过RAG问答共享和复用集体知识。教育场景:教师或学生围绕特定课程收藏的视频,构建专属知识库,用于复习和答疑。

功能介绍

B站扫码登录:通过B站官方API生成二维码,用户手机扫码确认后完成登录,无需密码,安全便捷。
收藏夹管理:展示用户所有收藏夹,支持展开查看每个收藏夹下的视频列表,并实时显示每个视频的入库状态(是否已同步到知识库)。
知识库构建:用户可勾选需要入库的整个收藏夹或单个视频,系统异步拉取视频内容,通过DashScope ASR语音识别提取音频文字,结合视频标题、简介等生成文档块,自动向量化并存储到pgvector中。支持增量更新,仅处理未入库的视频。
语义搜索:基于pgvector的向量相似度检索,用户输入关键词即可搜索已入库视频的内容片段,并按相似度排序返回,支持按用户隔离数据。
RAG智能问答:用户输入自然语言问题,系统自动判断问题类型(闲聊、列表查询、具体内容),针对具体内容问题采用检索增强生成(RAG)策略:从向量库召回Top-5相关文档块,结合通义千问生成带来源引用的回答。
多用户API Key管理:每个用户可独立设置自己的DashScope API Key,后端采用RSA + AES双重加密存储,前端使用Web Crypto API进行RSA-OAEP加密传输,保障密钥安全。
异步构建任务管理:使用Java 21虚拟线程管理后台构建任务,提供任务进度查询接口,前端展示同步进度条。
结果来源溯源:问答返回的内容附有来源视频标题和文档片段,用户可点击查看详情,确保回答可验证。

项目实现

技术架构
后端:Spring Boot 3.4 + JDK 21(启用虚拟线程),Spring Data JPA + Hibernate,MySQL 8.x 存储业务数据,PostgreSQL + pgvector 存储向量数据。
AI平台:Spring AI Alibaba + DashScope(通义千问),使用qwen-plus/qwen-max作为LLM,text-embedding-v3生成1024维向量,paraformer-v2进行ASR语音识别。
前端:Vue 3(Composition API)+ Vite 6,Element Plus 2.9 UI组件,Vue Router 4路由。
加密:AES-256-GCM用于数据库存储加密,RSA-2048 OAEP用于前端到后端的API Key传输加密。
部署:Docker + Nginx,支持容器化运行。
核心模块与难点
视频内容提取优先级:同一视频可能有多种内容源(ASR、字幕、AI摘要、基本信息)。实现一个打分优先级策略,按顺序尝试获取:ASR > 字幕 > AI摘要 > 标题+简介,取第一个成功且有实质内容的来源入库,保证知识质量。
异步构建任务管理:同步收藏夹可能包含上百个视频,ASR转写耗时较长。使用Java 21虚拟线程提交任务,任务状态持久化到MySQL(build_tasks表),前端轮询获取进度。利用虚拟线程的高并发和低内存开销,可同时处理多个用户

示例图片

声明:本文仅代表作者观点,不代表本站立场。如果侵犯到您的合法权益,请联系我们删除侵权资源!如果遇到资源链接失效,请您通过评论或工单的方式通知管理员。未经允许,不得转载,本站所有资源文章禁止商业使用运营!
下载安装【程序员客栈】APP
实时对接需求、及时收发消息、丰富的开放项目需求、随时随地查看项目状态

评论