{"repo":"junnhwan/vid-lens","free":true,"listed":false,"github":"https://github.com/junnhwan/vid-lens","clone":"git clone https://github.com/junnhwan/vid-lens.git","description":"面向长视频内容理解的RAG知识库问答平台","language":"Go","stars":16,"topics":["chat","golang","knowledge-base","rag"],"license":null,"category":"chat-messaging","readme_excerpt":"映知 观之以映，释之以知 — 面向视频的 AI 知识库与问答平台 --- 📖 项目简介 映知是一个面向视频的 AI 知识库与问答平台：上传视频并将视频音频转写为文字后，把长视频变成可检索、可引用的文本知识；多个视频归入知识库后，可直接跨视频提问，回答带引用片段、可回溯到原始视频。 项目重点不在于简单调用模型，而是围绕长耗时任务、大文件传输、处理失败恢复、外部 AI 调用的成本与稳定性，以及 RAG 检索的召回与排序质量，搭建一条可观察、可重试的处理链路。 视频处理任务通过 RabbitMQ 异步调度，处理阶段、转写分片和聊天记录统一落库到 PostgreSQL；MinIO 负责对象存储，PostgreSQL 内的 pgvector 与关键词检索共同支撑视频 RAG 问答。检索侧以 query rewrite 提升召回、model rerank 提升排序，配合意图路由，跨视频检索保证每个回答都带引用、可回溯到原始视频。 🖼️ 项目截图 工作台总览 用户 AI 配置 --- --- ASR 转写与 AI 摘要 跨视频 RAG 问答 --- --- ✨ 核心功能 - 视频知识库 ：上传视频，分段 ASR 转写生成可检索文本，支持分片上传与断点续传 - 引用式问答 ：以知识库内全部视频的转写为知识源，跨视频 pgvector 检索并带引用片段返回，支持 query rewrite / model rerank - 异步任务与失败恢复 ：RabbitMQ 调度转写/摘要/索引，失败分片重试、已完成片段复用 - AI 服务配置 ：用户 BYOK，ASR / LLM / Embedding 密钥加密保存 - 可观测性 ：结构化日志 + Prometheus 指标 + Grafana 看板 🏗️ 技术架构 系统流程： 🛠️ 技术栈 类别 技术 --- --- 后端 Go、Gin、GORM 数据与存储 PostgreSQL + pgvector（主库与向量库）、Redis、MinIO 消息队列 RabbitMQ 检索 pgvector（向量检索）、BM25（关键词检索） AI 接入 OpenAI-compatible API、用户级 ASR / LLM / Embedding 配置 前端 Next.js 14（ web-next ） 音视频处理 FFmpeg（音频提取与切片） 监控 Prometheus、Grafana 🚀 快速开始 1. 准备环境 - Go 1.24+ - Docker / Docker Compose - FFmpeg，并在 config.yaml 中配置 tools.ffmpeg path - 可用的 ASR、LLM、Embedding 服务 2. 启动中间件 默认启动 PostgreSQL + pgvector、Redis、RabbitMQ、MinIO； --profile observability 额外启动 Prometheus 与 Grafana。容器数据落在项目下的 data/ 目录。 3. 配置本地参数 按本机环境修改 config.yaml 中的 PostgreSQL、Redis、MinIO、RabbitMQ 与 FFmpeg 配置，确认 rag.store: pgvector 。配置加载会拒绝未知字段，拼写错误会导致启动失败。登录后可在“模型配置”页面填写自己的 ASR、LLM、Embedding 服务。 4. 启动后端 存活检查： http://localhost:8080/healthz （ /health 保留","default_branch":null,"files":null,"tree":[],"storefront":"/r/junnhwan","claimed":false,"request_supported":{"post":"https://gitbuyer.com/r/junnhwan/vid-lens/request-supported","requests":0},"note":"indexed from public GitHub; nothing is for sale on this page. Clone it from GitHub. Paid listings live at /search."}