localGPT-Vision
完全本地运行的视觉RAG系统,上传PDF/图片即可用自然语言问答,无需OCR,视觉布局本身就是检索信
加载项目详情…
本应用为开源项目,仅供学习研究,请遵守其开源协议。
完全本地运行的视觉RAG系统,上传PDF/图片即可用自然语言问答,无需OCR,视觉布局本身就是检索信
加载项目详情…
本应用为开源项目,仅供学习研究,请遵守其开源协议。
张博士是一名材料科学研究员,每天要和几百页的论文、专利文档打交道。他需要从一份 300 页的 PDF 中找到"关于钙钛矿太阳能电池界面修饰的具体实验参数"。传统做法是 Ctrl+F 关键词,但文档里的参数散落在文字、表格、图表各个角落,关键词搜索根本吃不消。
他尝试过市面上的文档问答工具,但要么只能识别纯文本,遇到扫描版 PDF 就歇菜;要么依赖云端 API,论文数据上传到第三方服务器让他心里不踏实。直到他遇到了 localGPT-Vision——一个完全本地运行、支持任意图文混排文档的视觉 RAG 系统,数据从不离开自己的电脑。
传统 RAG(Retrieval-Augmented Generation)系统的标准流程是:将文本分块 → 向量化 → 存入向量数据库 → 检索最相关文本块 → 送入 LLM 生成答案。这套方案在纯文本场景下表现不错,但一到图像、表格、扫描件就傻眼了——文字抽取(OCR)的精度损失、表格结构的语义丢失,让检索质量大打折扣。
2024 年,PaliGemma 和 ColPali 系列视觉编码器的出现彻底改变了这个局面。它们的核心理念是:不再费力从图像中提取文字,而是直接把文档页面当作图像来 embedding。这样一来,页面的视觉布局(标题位置、图表样式、字体大小、颜色对比)全都变成了可检索的语义信号。localGPT-Vision 正是站在这个技术浪潮上的集大成之作,它以 Byaldi 库为底层,构建了一套完整的视觉 RAG 流水线。
localGPT-Vision 的技术架构可以分为文档索引和问答推理两个阶段,全程本地运行,无需联网。
第一阶段:文档索引(视觉向量化)
用户上传 PDF 或图片文件后,系统首先通过 docx2pdf 将 Word 文档转为 PDF,再用 poppler(pdftoppm)将 PDF 的每一页渲染为高分辨率图像。这些图像被送入 ColPali(vidore/colpali)或 Colqwen2(vidore/colqwen2-v0.1)视觉编码器,生成多维向量索引,持久化存储在 .byaldi/ 目录下。整个过程不需要任何文本抽取或 OCR——这正是该方案区别于传统 RAG 的关键。
索引以会话为单位组织,每个会话(session_id)拥有独立的索引文件,支持新建、切换、删除、重命名等完整生命周期管理。
第二阶段:问答推理(检索+生成双轮驱动)
当用户输入自然语言查询时,查询文本同样经过 ColPali/Colqwen 编码为向量,与索引中的页面图像进行向量相似度匹配,返回最相关的 Top-K 页面图像。然后,这些图像加上原始查询被一同发送给用户选定的 Vision Language Model(VLM),由 VLM 自主"看图说话"——理解页面中的文字、表格、图表,生成针对问题的精准回答。
这种"以图搜图"的方案绕过了 OCR 和文本分块两大痛点,视觉线索(颜色、布局、图表样式)本身就是检索信号,检索精度天然高于文本方案。
localGPT-Vision 支持调用多种 VLM 来执行答案生成,涵盖开源模型和商业 API 两类:
| 模型 | 类型 | 特点 |
|---|---|---|
| Qwen2-VL-7B-Instruct | 开源 | 本地运行,平衡性能与资源消耗 |
| Llama-3.2-11B-Vision | 开源 | Meta 开源,支持多语言 |
| Pixtral-12B-2409 | 开源 | Mistral 出品,擅长图表理解 |
| Molmo-7B-O-0924 | 开源 | AllenAI 出品,高效推理 |
| Google Gemini | 商业 API | 视觉理解能力强,按量付费 |
| OpenAI GPT-4o | 商业 API | 业界标杆,最佳效果 |
| Llama-3.2 + Ollama | 本地 Ollama | 完全离线运行的 Llama 视觉版 |
模型选择通过 Web UI 的 Settings 页面进行,还支持配置图像resize尺寸以平衡效果与显存占用。会话重启后模型选择自动恢复,无需重复配置。
项目使用 Flask 作为 Web 框架,Bootstrap 5 提供样式,前端通过 AJAX 实现无刷新对话。所有聊天记录、会话状态、已索引文件列表均以 JSON 格式持久化到 sessions/ 目录,重启应用后可完全恢复现场。
UI 核心功能包括:
Web 服务默认监听 5050 端口,debug=True 在开发模式下运行。
项目的核心依赖直接对接 Hugging Face 生态:
本地部署需要满足以下条件:
apt install libpoppler-cpp-dev poppler-utils cmake pkgconfig python3-poppler-qt5由于没有提供 Dockerfile 或 docker-compose,无法实现一键容器化部署。Dockerfile 的缺失是该项目目前最大的部署短板——不同用户的 CUDA 版本、GPU 型号、系统环境差异极大,conda 依赖管理在容器内也较为繁琐。
pip install git+... 的开发版,在企业内网环境下可能遇到 Git 访问限制app.run(port=5050, debug=True) 在生产部署时存在安全风险localGPT-Vision 背后反映的是 RAG 领域的一场根本性思维转变:不再试图让机器"读懂"文档的文本表示,而是让它像人类一样直接"看"文档。在这个方向上,ColPali/Colqwen 系列模型已经证明了视觉 embedding 在文档检索任务上可以大幅超越传统文本 embedding。
当前 GitHub 631 星的关注度表明,社区对"隐私优先、完全本地、无需 OCR 的智能文档问答"有强烈需求。随着 VLM 推理成本的持续下降和端侧部署能力的提升,这类工具的普及速度有望进一步加快。
推荐人群: 对文档隐私有高要求的研究人员、需要处理大量图文混排资料的数据分析师,以及希望在本地 GPU 上构建文档智能体的开发者。

图1:localGPT-Vision 项目作者头像