如何把私有数据接入 QMedia:自定义图文短视频素材库的完整配置指南

📅 2026/8/22 14:33:20
如何把私有数据接入 QMedia:自定义图文短视频素材库的完整配置指南
如何把私有数据接入 QMedia自定义图文短视频素材库的完整配置指南【免费下载链接】QmediaAn open-source AI content search engine designed specifically for content creators. Supports extraction of text, images, and short videos. Allows full local deployment (web app, RAG server, LLM server). Supports multi-modal RAG content QA.项目地址: https://gitcode.com/gh_mirrors/qm/QmediaQMedia 是一款专为内容创作者打造的开源 AI 内容搜索引擎支持图文与短视频内容的全文本地部署和多模态 RAG 问答。本文将带你从零开始把自己的图片、视频私有数据接入 QMedia搭建一个完全属于自己的图文短视频素材库——全程数据不出本地安全又好用。一、先认识 QMedia为什么它能承载你的私有素材库QMedia 由三个可独立部署的服务组成理解这个结构是配置私有数据的第一步服务角色默认端口mm_server多模态模型服务图片编码CLIP、文本编码BGE、OCR 识别、视频转写50110mmrag_serverRAG 检索与问答服务负责读取你的私有数据、提取信息、建立向量索引8001qmedia_web网页前端以内容卡片形式展示素材并支持搜索问答50112私有数据的接入核心逻辑只有一条你的素材文件 一份卡片描述 JSON → 服务启动时自动提取信息 → 存入本地向量库 → 支持语义搜索与问答。二、一键安装用 Docker Compose 启动三件套如果你已有 Docker 环境这是最快的部署方式git clone https://gitcode.com/gh_mirrors/qm/Qmedia cd Qmedia docker compose up -d --build启动后可通过http://localhost:50112访问网页端http://localhost:8001/docs查看 API 文档。三者的容器编排关系定义在根目录的 docker-compose.yml 中其中mmrag容器会把./assets目录挂载到容器内这个目录就是我们接下来放私有素材的位置。 无 GPU 的机器也可以运行视频转写模型 Faster Whisper 支持纯 CPU 环境。三、看懂私有数据格式assets 目录里的两个主角QMedia 约定了非常简单的私有数据目录结构只需两个部分assets ├── mm_pseudo_data.json # 内容卡片数据描述每条素材 └── medias # 你的图片 / 短视频文件3.1 素材文件assets/medias把你要入库的图片jpg/png或短视频mp4直接放入该目录即可。项目自带的示例素材就存放在 assets/medias 下例如这张教程图3.2 卡片数据mm_pseudo_data.json这是一个 JSON 数组每个元素代表一条素材卡片由三部分构成字段定义见 models.pyimage_dataimage_urls数组填写medias目录下图片的文件名video_datavideo_url数组填写视频文件名无视频留空对象{}info_data核心描述信息包含card_typenormal图文卡片或video短视频卡片title/desc标题和正文描述这是语义检索的主要依据写越详细检索越准tag_list标签数组用于分类user_dict、interact_info作者与互动信息点赞、收藏数等一个图文卡片的最小示例{ image_data: { image_urls: [my_photo_01.jpg], id: note001, note_id: note001 }, video_data: {}, info_data: { id: note001, note_id: note001, model_type: note, card_type: normal, title: 我拍摄的春日花田, desc: 杭州西溪湿地4 月樱花与油菜花同框, user_dict: { user_id: u1, nickname: 我自己, avatar: }, interact_info: { relation: none, liked: false, liked_count: 0, collected: false, collected_count: 0, comment_count: 0, share_count: 0, followed: false }, tag_list: [风景, 摄影, 春日] } }四、配置私有素材库4 个关键步骤完成这一步后你的私有数据就真正接入 QMedia 了。步骤 1放入你的素材文件将自有图片/视频复制到assets/medias/文件名避免空格和特殊字符。步骤 2编写 mm_pseudo_data.json按上文格式为你的每条素材撰写卡片数据注意文件名必须与 medias 目录中完全一致——服务启动时会据此把相对文件名拼接成可访问的完整地址拼接逻辑见 fetch_datas.py。步骤 3修改配置文件cd mmrag_server cp config.py.local config.py打开 config.py 按实际情况调整重点关注这几项配置项说明model_name问答用 LLM默认llama3:8b-instruct-q4_0Ollama 模型mm_server_url模型服务地址Docker 部署时按容器网络调整use_video_service若素材含短视频必须改为True才会启用转写json_file_path/local_store_path指向你的assets数据目录默认无需改动步骤 4删除旧索引 db重启服务⚠️ 最关键的一步db/目录存放历史向量索引更换私有数据后必须删除否则新素材不会进入检索库。# 删除旧索引后启动依赖 mm_server 先运行 python main.py启动时服务会自动完成读取 JSON → 调用mm_server对图片做 CLIP 编码、OCR 文字识别、对视频做转写摘要 → 按 128/256/512 三种分块策略建立向量索引见 json_data.py→ 持久化到db/。五、验证效果用自然语言搜索你的私有素材库启动成功后打开网页端输入一句自然语言即可检索你的私有素材并让 LLM 基于检索结果直接给出答案同时展示来源内容卡片如果不使用网页也可以直接调用 API完整文档见http://localhost:8001/docs端点定义在 mm_rag_search.pyGET http://localhost:8001/mm-rag-search?query春日 花田 摄影 GET http://localhost:8001/mm-rag-query?query这条素材适合做什么主题的笔记六、常见问题快速排查新数据搜不到90% 是因为忘了删除db/旧索引删掉后重启即可。视频素材无法被问答命中检查use_video_service是否为True且mm_server中 faster_whisper 模型可用。图片能搜到但内容不准优化desc描述与tag_list标签文本信息是语义检索质量的最大变量。想换更强的模型只需修改config.py中的model_name等配置mm_server已与服务层解耦支持自由替换模型。写在最后整个过程可以概括为一句话把素材放进assets/medias把描述写进mm_pseudo_data.json删掉db重启服务。QMedia 用一次启动换来一个支持图片、文字、视频全模态语义检索的私有素材库且所有数据与模型均在本地运行——这正是它为内容创作者设计的初衷。【免费下载链接】QmediaAn open-source AI content search engine designed specifically for content creators. Supports extraction of text, images, and short videos. Allows full local deployment (web app, RAG server, LLM server). Supports multi-modal RAG content QA.项目地址: https://gitcode.com/gh_mirrors/qm/Qmedia创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考