QMedia
专为内容创作者设计的AI内容搜索引擎。
主要功能
- 搜索图像/文本和短视频素材。
- 高效分析图像/文本和短视频内容,整合分散信息。
- 提供内容来源,并分解图像/文本和短视频信息,通过内容卡片呈现信息。
- 根据用户兴趣和需求,从图像/文本和短视频内容中生成定制化搜索结果。
- 本地部署,实现私有数据的离线内容搜索和问答。
目录
👋🏻 简介
QMedia 是一个开源的多媒体AI内容搜索引擎,为文本/图像和短视频内容提供丰富的信息提取方法。它集成了非结构化文本/图像和短视频信息,构建了一个多模态RAG内容问答系统。目的是以开源的方式分享和交流AI内容创作的想法。issues
分享QMedia给你的朋友们。
为内容创作激发新灵感
💫 功能概述
-
内容卡片
- 以卡片形式展示图像/文本和视频内容
Web服务
灵感来源于XHS网页版,使用Typescript、Next.js、TailwindCSS和Shadcn/UI技术栈实现RAG搜索/问答服务
和图像/文本/视频模型服务
使用Python框架和LlamaIndex应用实现- Web服务、
RAG搜索/问答服务
和图像/文本/视频模型服务
可独立部署,根据用户资源灵活部署,并可嵌入其他系统进行图像/文本和视频内容提取。
-
多模态内容RAG
- 搜索图像/文本和短视频素材。
- 基于用户查询从图像/文本和短视频内容中提取有用信息,生成高质量答案。
- 通过内容卡片呈现内容来源及图像/文本和短视频信息的分解。
- 检索和问答依赖于图像/文本和短视频内容的分解,包括图像风格、文本布局、短视频转录、视频摘要等。
- 支持Google内容搜索。
-
纯本地多模态模型
本地部署各种类型的模型 与RAG应用层分离,便于替换不同的模型 本地模型生命周期管理,可配置为手动或自动释放以减轻服务器负载
语言模型:
- 支持本地Ollama模型切换。
- llama3:8b-instruct 轻量级本地部署的LLM模型。
- llama3:70b-instruct 开源LLM模型中排名第八。
特征嵌入模型:
图像模型:
- 图像文本OCR识别: Qanything 本地知识库问答系统OCR
-
视觉理解模型:
- llava-llama3: Ollama本地部署的GPT-4V级别视觉理解模型。
视频模型
- 支持本地Ollama模型切换。
-
视频转录:
- Faster Whisper:快速提取视频转录内容,可在本地CPU上运行。
- 基于LLM的短视频内容摘要
- 短视频亮点识别
- 短视频风格类型识别
- 短视频内容分析与分解
未来计划
- 图像/文本短视频内容分析及病毒式内容分解
- 相似图像/文本/视频搜索
- 卡片图像/文本内容生成
- 短视频内容编辑
🤖 安装
文件结构介绍
QMedia服务:
根据资源情况,可以在本地部署,或将模型服务部署在云端。
mm_server 安装
-
多模态模型服务
mm_server
:- 多模态模型部署及API调用
- Ollama LLM模型
- 图像模型
- 视频模型
- 特征嵌入模型
mmrag_server 安装
-
内容搜索与问答服务
mmrag_server
:- 内容卡片展示与查询
- 图像/文本/短视频内容提取、嵌入与存储服务
- 多模态数据RAG检索服务
- 内容问答服务
qmedia_web 安装
- Web服务
qmedia_web
:
语言:TypeScript
框架:Next.js
样式:Tailwind CSS
组件:shadcn/ui
⭐️ 使用
组合使用
mm_server
+ qmedia_web
+ mmrag_server
网页内容展示、内容RAG搜索与问答、模型服务
- 服务启动流程:
# 启动 mm_server 服务
cd mm_server
source activate qllm
python main.py
# 启动 mmrag_server 服务
cd mmrag_server
source activate qmedia
python main.py
# 启动 qmedia_web 服务
cd qmedia_web
pnpm dev
- 通过网页使用功能
在启动阶段,mmrag_server
会从assets/medias
和assets/mm_pseudo_data.json
读取伪数据,并调用mm_server
从文本/图像和短视频中提取并结构化信息为node
信息,然后存储在db
中。检索和问答将基于db
中的数据。
自定义数据
# assets 文件结构
assets
├── mm_pseudo_data.json # 内容卡片数据
└── medias # 图像/视频文件
替换assets
中的内容并删除历史存储的db
文件。
assets/medias
包含图像/视频文件,可以替换为您自己的图像/视频文件。
assets/mm_pseudo_data.json
包含内容卡片数据,可以替换为您自己的内容卡片数据。运行服务后,模型会自动提取信息并存储到db
中。
独立模型服务
可以单独使用mm_server
本地图像/文本/视频信息提取服务。
它可以作为独立的图像编码、文本编码、视频转录提取和图像OCR服务,在任何场景中通过API访问。
# 独立启动 mm_server 服务
cd mm_server
python main.py
# uvicorn main:app --reload --host localhost --port 50110
API内容:
纯Python RAG服务/模型服务
可以结合使用mm_server
+ qmedia_web
,通过API在纯Python环境中执行内容提取和RAG检索。
# 独立启动 mmrag_server 服务
cd mmrag_server
python main.py
# uvicorn main:app --reload --host localhost --port 50110
API内容:
Star 历史
许可证
QMedia
依据 MIT 许可证 授权
致谢
感谢 QAnything 提供的强大OCR模型。
感谢 llava-llama3 提供的强大LLM视觉模型。