QMedia 模型服务 mm_server 完全指南:4 个核心 API 玩转图像 OCR、视频转写与图文 Embedding
QMedia 模型服务 mm_server 完全指南4 个核心 API 玩转图像 OCR、视频转写与图文 Embedding【免费下载链接】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 内容搜索引擎而mm_server是它的多模态模型服务核心。只需本地部署这一个服务你即可获得图像 OCR 文字识别、视频音频转写、图文 Embedding 向量化等能力为多模态 RAG 问答提供底层模型支持。本文带你快速上手 QMedia 模型服务 mm_server 的 4 个核心 API。一、mm_server 是什么为什么需要它QMedia 采用「Web 前端 RAG 检索服务 模型服务」的三层架构qmedia_web网页应用负责交互与展示mmrag_server多模态 RAG 检索与问答服务mm_server本文主角统一封装 OCR、Whisper 语音转写、CLIP 与 HuggingFace Embedding 等模型对外提供标准 HTTP API把模型调用集中在 mm_server好处很明显模型只加载一份、按需保活释放内存、上层服务只需调接口。服务入口在 mm_server/main.py通过 FastAPI 注册了 4 组路由路由模块API 路径核心能力底层模型image processPOST /api/image-ocr图像 OCR 文字识别QAnything OCR内置 ONNX 模型video processPOST /api/audio_transcription视频/音频转写文案faster-whisperembeddingsPOST /api/embeddings、/api/clip-text-embeddings、/api/clip-image-embeddings文本、图文向量化bge-small、CLIPset model cachedPOST /api/set-keep-alive模型保活与生命周期管理TTLCache 缓存二、快速部署3 步跑通 QMedia 模型服务1️⃣ 获取项目git clone https://gitcode.com/gh_mirrors/qm/Qmedia2️⃣ 安装 Python 环境推荐使用 miniconda 创建虚拟环境完整说明见 mm_server/README.zh-CN.mdconda create -n qllm python3.11 source activate qllm cd mm_server pip install -r requirements.txt3️⃣ 修改配置并启动依赖清单可查看 mm_server/requirements.txt。先复制配置模板cp config.py.local config.pymm_server/config.py.local 中的关键配置项clip_model_nameCLIP 图文编码模型默认ViT-B/32ocr_model_pathOCR 模型路径mm_server/services/ocr_server/ocr_models/ 目录内置了det.onnx、rec.onnx等权重hf_embedding_model_name文本向量模型默认BAAI/bge-small-en-v1.5audio_model_name语音转写模型默认 whispersmall*_keep_alive各模型不使用时在内存中保留的秒数启动服务也可直接运行 mm_server/run.shpython main.py启动后访问http://localhost:50110/docs即可打开交互式 API 文档所有接口都支持在线调试。三、4 个核心 API 详解API 1图像 OCR 文字识别/api/image-ocr图片里的文字也能被搜索到——这正是 QMedia 多模态检索的关键一环。该接口接收Base64 编码的图片返回识别出的文本列表。实现位于 mm_server/api/image_service.pyOCR 引擎封装在 mm_server/services/ocr_service.py。调用示例curl -X POST http://localhost:50110/api/image-ocr \ -H Content-Type: application/json \ -d {image: Base64图片字符串, model: ocr}适合把海报、截图、商品图等内容「文字化」后入库检索。API 2视频音频转写/api/audio_transcription短视频创作者的痛点视频里的口播内容无法被搜索。这个接口用faster-whisper把音视频转成带时间戳的文字稿自动检测语言并开启 VAD 降噪。请求参数为file上传音频文件model表单字段返回语言、置信度、总时长和逐句时间戳。接口定义见 mm_server/api/video_service.py转写核心在 mm_server/services/video_service.py。curl -X POST http://localhost:50110/api/audio_transcription \ -F filevideo.mp4 -F modelsmall转写出的文字稿会进入 mmrag_server 的检索索引之后用文字就能找到对应视频片段。API 3文本与图文 Embedding/api/embeddings 系列RAG 检索的灵魂是向量化。embeddings 路由组提供 3 个端点实现在 mm_server/api/embed_service.py端点输入用途POST /api/embeddingsprompt文本文本语义向量bge-smallPOST /api/clip-text-embeddingsprompt文本CLIP 文本向量用于「以文搜图」POST /api/clip-image-embeddingsimageBase64 图片CLIP 图片向量用于「以图搜图」CLIP 模型的妙处在于文本和图片落在同一向量空间用一句话描述即可搜出相似图片这正是 QMedia「以文搜图、以图搜图」能力的来源。图文向量计算分别由 mm_server/services/clip_service.py 与 mm_server/services/llm_service.py 实现。API 4模型保活管理/api/set-keep-alive大模型加载到内存很占资源。mm_server 用TTLCache给每个模型设置了「闲置 N 秒后自动释放」策略——平时省内存需要时再加载。POST /api/set-keep-alive允许运行时动态调整实现见 mm_server/api/cached_service.py{ model_name: clip, keep_alive: 300, hold_forever: false }model_nameclip/hf/video/ocr或all统一设置hold_forever: true模型常驻内存适合高频调用场景四、Docker 一键启动整套 QMedia不想手动配环境项目根目录的 docker-compose.yml 已经编排好了三个服务mm_server 基于 mm_server/DockerfilePyTorch CUDA 镜像构建容器端口说明qmedia_mm_server50110本文的主角模型服务qmedia_mmarg_server50111多模态 RAG 检索与问答qmedia_web50112Web 前端docker compose up -d启动后 Web 端会把图片、视频、笔记等素材交给 mmrag_server 处理而所有模型推理都路由到 mm_server实现完整的多模态 RAG 内容问答。五、新手常见问题FAQQ1第一次调用 API 特别慢正常现象。mm_server 采用懒加载模型在首次请求时才加载进内存keep_alive时间过后会自动释放再次调用又会重新加载。高频场景可用/api/set-keep-alive设置hold_forever。Q2没有 GPU 能跑吗可以。OCR 与 Whisper 转写默认在 CPU 上以 int8 精度运行见 mm_server/services/video_service.py速度虽慢但完全可用。Q3如何换更强的模型修改 mm_server/config.py.local例如把audio_model_name从small换成large-v3提升转写准确率或更换hf_embedding_model_name为更大的文本向量模型。Q4怎么在线调试接口浏览器访问http://localhost:50110/docsFastAPI 自动生成的交互文档支持直接填参数发送请求。写在最后mm_server 用不到 200 行的入口代码就把 OCR、语音转写、图文向量、模型生命周期四大能力打包成了标准 API是理解 QMedia 多模态 RAG 架构的最佳切入点。跑通它之后你可以进一步探索 mmrag_server 的检索与问答流程把图片、视频、笔记统统变成「可搜索、可问答」的个人内容库 【免费下载链接】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),仅供参考