AI 视频语义检索系统:用一句话,在视频里找到想看的那一段

课程录像、培训讲解视频越积越多,想找某个知识点,往往只能拖着进度条一段段翻。我们基于开源项目 SentrySearch 深度改造,做成了一套对话式视频检索系统——用一句自然语言提问,智能体自动检索视频库、定位相关时间段、裁剪片段并生成分析报告。

适用内容教学 · 课程 · 讲解类视频
交付形态本地 Web 应用
核心技术ReAct 智能体 + 多模态向量检索
交付时间2026 年 5 月
自然语言提问 例:“讲解 ReAct 的片段” 语义向量检索 视频切片 多模态向量索引 命中片段 定位时间段 如 175–255 秒 分析报告 智能体分析画面 输出结论报告 自然语言提问 例:“讲解 ReAct 的片段” 语义向量检索 视频切片 · 多模态向量索引 命中片段 定位时间段,如 175–255 秒 分析报告 智能体分析画面,输出结论报告

项目背景

课程录像、培训讲座、产品讲解这类视频,信息密度高、时长又长。想回看"讲 ReAct 的那一段",要么记得大概时间点,要么只能从头拖进度条;按文件名或人工打标签检索,也只能找到"事先标注过"的内容。

客户指定以开源项目 SentrySearch 的视频向量检索能力为基础,希望把它做成一套完整的业务系统:上传视频、用"说人话"的方式提问,系统就能找到相关片段、导出出来,并写成一份文字报告。

我们做了什么

我们在 SentrySearch 之上新增了 HTTP + WebSocket 服务端、ReAct 智能体运行时和 5 个视频专用工具,新增定制逻辑超过一万行,把一个命令行检索工具变成了浏览器里就能用的对话式系统。智能体自主决定调用哪些工具、按什么顺序——先检索、再裁剪、再分析,工具调用出错时会自行换一种策略继续。

对话式检索

在聊天页直接提问,智能体理解意图后调用检索工具,思考过程与工具调用实时流式显示。

视频切片入库

视频按 30 秒一片、5 秒重叠切分,自动跳过静止画面,最多 3 个视频并行索引,进度实时推送。

多模态向量检索

用 qwen3-vl-embedding 把视频片段和问题映射到同一个 768 维向量空间,按相似度召回相关时间段。

片段裁剪与画面分析

用 ffmpeg 裁出命中片段,再交给视觉模型 MiMo v2.5 描述画面内容、识别画面文字。

自动生成报告

每轮对话结束自动生成 Markdown / HTML 分析报告,按会话归档,可在报告页预览和下载。

视频库管理

支持多文件上传、索引状态查看、删除与批量操作,并为每个视频自动生成中文标签。

实际界面

以下截图来自交付录屏:上传一段教学解说视频,提问"找一下讲解 ReAct 的片段"。

视频库页面:视频上传后正在切片入库,显示索引进度
视频库:上传后自动切片入库,索引进度实时显示
对话页面:智能体回答讲解 ReAct 的内容位于原视频 175–255 秒
智能体检索出讲解 ReAct 的内容位于原视频 175–255 秒,并列出核心时间段
报告页面:自动生成的 HTML 分析报告
每轮对话自动生成 HTML 分析报告,按会话归档

技术方案

系统分为前端、服务端、检索引擎三层,由 ReAct 智能体串起整条链路:

上传视频→ 30 秒切片 · 跳过静止帧→ 多模态向量入库→ 自然语言提问→ ReAct 智能体→ 检索 · 裁剪 · 画面分析→ 分析报告
  • 前端——Vue 3 单页应用,包含视频库、对话、报告三个页面。
  • 服务端——Bun / TypeScript:REST 接口处理文件,WebSocket 流式推送智能体的思考与工具调用,SSE 推送索引进度。
  • 检索引擎——Python + ChromaDB 向量库,常驻进程保持数据库连接与模型预热,检索时免去重复加载的开销。
  • 智能体工具——vector_search(语义检索)、trim_clip(片段裁剪)、analyze_video(画面分析)、generate_report(报告生成)、get_video_info(视频信息)。

交付与价值

  • 把"拖进度条"变成"问一句"——不用记时间点、不用先打标签,直接用自然语言找到相关片段。
  • 结果可沉淀——命中片段可裁剪导出,每轮对话自动生成报告并按会话归档。
  • 一键启动交付——交付 start.bat 启动文件,放到项目目录双击即可启动整套系统,无需手动配置环境。
  • 尤其适合讲解类内容——主题清晰、逻辑连贯的教学、课程、讲解类视频,语义检索效果最好。
让每一段讲解视频都"可被一句话找到"——这是我们对视频检索体验的重新定义。 —— 广西橙智科技 · 项目团队

你也有一批"看不过来"的数据吗?

无论是视频、文档还是其他非结构化数据,我们都可以帮你把它变得"可被搜索、可被利用"。