localGPT-Vision
localGPT-Vision 是一款端到端的视觉检索增强生成(RAG)系统,旨在让用户能够直接“与文档对话”。它解决了传统工具在处理包含复杂图表、公式或特殊排版的 PDF 及图片时,依赖文字提取(OCR)导致信息丢失或理解偏差的痛点。
用户只需上传文档,系统即可通过自然语言问答形式,精准返回答案并附带原始文档片段作为依据。这款工具特别适合开发者、研究人员以及需要深度分析技术文献或视觉资料的专业人士使用,同时也为希望本地化部署私有知识库的用户提供了灵活方案。
其核心技术亮点在于摒弃了传统的文本提取流程,转而采用 ColPali 或 Colqwen 等先进的视觉编码器,直接将文档页面转化为图像嵌入进行检索。这意味着它能敏锐捕捉页面布局、字体样式及图表结构等视觉线索。在生成回答阶段,localGPT-Vision 支持调用多种强大的视觉语言模型(如 Qwen2-VL、Llama-3.2-Vision、GPT-4o 等),既兼容本地部署以保障数据隐私,也支持云端大模型以获得更强推理能力,实现了从视觉检索到智能生成的无缝闭环。
使用场景
一位金融分析师需要快速从数百页包含复杂图表和财务报表的 PDF 研报中提取关键数据并回答特定业务问题。
没有 localGPT-Vision 时
- 传统 OCR 工具难以准确识别报表中的合并单元格、手写批注及复杂布局,导致提取的数据错漏百出。
- 面对图表趋势分析或图片内容查询,只能人工逐页翻阅截图,无法通过关键词直接定位视觉信息。
- 敏感财务文档上传至公有云 AI 服务存在数据泄露风险,合规部门严禁使用外部大模型处理核心资料。
- 每次提问需手动复制粘贴大量上下文,且模型常因丢失版面结构而给出断章取义的错误结论。
使用 localGPT-Vision 后
- 利用 ColPali 视觉检索技术,直接将文档页面作为图像嵌入,精准捕捉表格结构与字体布局,无需依赖易错的文本提取。
- 支持直接用自然语言询问“展示 Q3 营收增长趋势图”,系统自动定位并解析相关图表页面,由 Qwen2-VL 等视觉模型生成解读。
- 全流程在本地部署运行,结合 Llama-3.2-Vision 等开源模型,确保机密研报数据不出内网,满足严格合规要求。
- 端到端 RAG 流水线自动返回带来源页码的答案片段,分析师可一键追溯原始凭证,大幅提升核查效率。
localGPT-Vision 通过将视觉检索与本地大模型深度融合,让机器真正“看懂”了复杂文档,实现了安全、精准且高效的智能文档交互。
运行环境要求
- Linux
- macOS
- Windows
- 未说明(运行本地视觉语言模型如 Qwen2-VL-7B 或 Llama-3.2-11B 通常建议配备 NVIDIA GPU,显存至少 16GB+
- 若使用云端 API 如 Gemini/GPT-4o 则无需本地 GPU)
未说明(建议 16GB 以上以支持本地大模型推理)

快速开始
localGPT-Vision
localGPT-Vision 是一个端到端的基于视觉的检索增强生成(RAG)系统。它允许用户上传并索引文档(PDF 和图片),针对内容提问,并获得包含相关文档片段的回答。检索过程使用 Colqwen 或 ColPali 模型完成,检索到的页面会传递给视觉语言模型(VLM)以生成响应。目前,该代码支持以下 VLM:
- Qwen2-VL-7B-Instruct
- LLAMA-3.2-11B-Vision
- Pixtral-12B-2409
- Molmo-7B-O-0924
- Google Gemini
- OpenAI GPT-4o
- LLAMA-3.2 与 Ollama
该项目构建于 Byaldi 库之上。
目录
功能
- 端到端基于视觉的 RAG:结合视觉文档检索与语言模型,提供全面的答案。
- 文档上传与索引:上传 PDF 和图片,随后使用 ColPali 进行索引以便检索。
- 聊天界面:通过对话式界面询问上传文档的相关问题。
- 会话管理:创建、重命名、切换和删除聊天会话。
- 模型选择:可在不同视觉语言模型之间选择(Qwen2-VL-7B-Instruct、Google Gemini、OpenAI GPT-4 等)。
- 持久化索引:索引保存在磁盘上,应用重启时可加载。
架构
localGPT-Vision 构建为一个端到端的基于视觉的 RAG 系统。其架构主要包括两个主要组件:
基于 Colqwen 和 ColPali 的视觉文档检索:
- Colqwen 和 ColPali 是视觉编码器,专为仅利用文档页面的图像表示进行高效文档检索而设计。
- 它直接对页面图像进行嵌入,利用布局、字体、图表和表格等视觉线索,无需依赖 OCR 或文本提取。
- 在索引过程中,文档页面会被转换为图像嵌入并存储起来。
- 查询时,用户查询会与这些嵌入进行匹配,以检索最相关的文档页面。

使用视觉语言模型生成响应:
- 检索到的文档图像会被传递到视觉语言模型(VLM)中。
- 支持的模型包括 Qwen2-VL-7B-Instruct、LLAMA3.2、Pixtral、Molmo、Google Gemini 和 OpenAI GPT-4。
- 这些模型通过理解文档的视觉和文本内容来生成回答。
- 注意:回答的质量高度依赖于所使用的 VLM 以及文档图像的分辨率。
这种架构消除了对复杂文本提取管道的需求,并通过考虑文档的视觉元素提供了更全面的理解。您无需像传统 RAG 系统那样采用分块策略、选择嵌入模型或检索策略。
先决条件
- 您的系统上已安装 Anaconda 或 Miniconda
- Python 3.10 或更高版本
- Git(可选,用于克隆仓库)
安装
请按照以下步骤在您的本地机器上设置并运行应用程序。
克隆仓库
git clone https://github.com/PromtEngineer/localGPT-Vision.git cd localGPT-Vision创建 Conda 环境
conda create -n localgpt-vision python=3.10 conda activate localgpt-vision
3a. 安装依赖项
pip install -r requirements.txt
3b. 安装 HuggingFace 开发版 Transformers
pip uninstall transformers
pip install git+https://github.com/huggingface/transformers
设置环境变量 设置您的 Google Gemini 和 OpenAI GPT-4 的 API 密钥:
export GENAI_API_KEY='your_genai_api_key' export OPENAI_API_KEY='your_openai_api_key' export GROQ_API_KEY='your_groq_api_key'在 Windows 命令提示符中:
set GENAI_API_KEY=your_genai_api_key set OPENAI_API_KEY=your_openai_api_key set GROQ_API_KEY='your_groq_api_key'运行应用程序
python app.py访问应用程序 打开您的浏览器并导航至:
http://localhost:5050/
调试
为了帮助调试 localGPT-Vision,需要在您的系统上安装一些额外的依赖项。请按照以下说明设置您的调试环境。
必需的软件包
使用以下命令安装必要的软件包:
在基于 Ubuntu/Debian 的系统上
更新软件包列表
sudo apt update安装 Poppler 库和工具
这些库对于处理 PDF 文件至关重要。
sudo apt install libpoppler-cpp-dev poppler-utils验证
pdftoppm是否已安装检查版本以确保正确安装:
pdftoppm -v安装额外的依赖项
这些软件包是构建和管理库所必需的。
sudo apt install cmake pkgconfig python3-poppler-qt5注意
请确保您在机器上拥有运行
sudo命令的适当权限。此设置专门针对基于 Ubuntu/Debian 的系统,如果您使用的是其他 Linux 发行版或 macOS,步骤可能会略有不同。
如有需要,您可以根据其他操作系统的特定要求或说明修改本节内容。
使用方法
上传并索引文档
- 点击“新建聊天”开始新的会话。
- 在“上传并索引文档”部分,点击“选择文件”,然后选择您的 PDF 或图像文件。
- 点击“上传并索引”。文档将使用 ColPali 进行索引,并准备好用于查询。
提问
- 在“在此输入您的问题”文本框中,键入与已上传文档相关的问题。
- 点击“发送”。系统将检索相关的文档页面,并使用选定的视觉语言模型生成回复。
管理会话
- 重命名会话:点击“编辑名称”,输入新名称,然后点击“保存名称”。
- 切换会话:单击侧边栏中的会话名称以切换到该会话。
- 删除会话:单击会话旁边的“删除”按钮以永久删除该会话。
设置
- 单击导航栏中的“设置”。
- 选择所需的语言模型和图像尺寸。
- 点击“保存设置”。
项目结构
localGPT-Vision/
├── app.py
├── logger.py
├── models/
│ ├── indexer.py
│ ├── retriever.py
│ ├── responder.py
│ ├── model_loader.py
│ └── converters.py
├── sessions/
├── templates/
│ ├── base.html
│ ├── chat.html
│ ├── settings.html
│ └── index.html
├── static/
│ ├── css/
│ │ └── style.css
│ ├── js/
│ │ └── script.js
│ └── images/
├── uploaded_documents/
├── byaldi_indices/
├── requirements.txt
├── .gitignore
└── README.md
app.py: 主 Flask 应用程序。logger.py: 配置应用程序日志记录。models/: 包含用于索引、检索和响应的模块。templates/: 用于渲染视图的 HTML 模板。static/: 静态文件,如 CSS 和 JavaScript。sessions/: 存储会话数据。uploaded_documents/: 存储上传的文档。.byaldi/: 存储 Byaldi 创建的索引。requirements.txt: Python 依赖项。.gitignore: Git 忽略的文件和目录。README.md: 项目文档。
系统工作流程
- 用户交互:用户通过网页界面上传文档并提问。
- 使用 ColPali 对文档进行索引:
- 如果必要,上传的文档会被转换为 PDF。
- 文档使用 ColPali 进行索引,该工具会根据文档页面的视觉内容创建嵌入向量。
- 索引存储在
byaldi_indices/目录中。
- 会话管理:
- 每个聊天会话都有一个唯一的 ID,并存储自己的索引和聊天历史。
- 会话数据会保存到磁盘,并在应用重启时加载。
- 查询处理:
- 用户的查询会被发送到后端。
- 查询被嵌入并与文档页面的视觉嵌入向量进行匹配,以检索相关页面。
- 使用视觉语言模型生成回复:
- 检索到的文档图像和用户的查询会被传递给选定的视觉语言模型(Qwen、Gemini 或 GPT-4)。
- 视觉语言模型通过理解文档的视觉和文本内容生成回复。
- 显示结果:
- 回复和相关的文档片段会在聊天界面中显示。
graph TD
A[用户] -->|上传文档| B(Flask 应用)
B -->|保存文件| C[uploaded_documents/]
B -->|使用 ColPali 转换并索引| D[索引模块]
D -->|创建视觉嵌入| E[byaldi_indices/]
A -->|提问| B
B -->|嵌入查询并检索页面| F[检索模块]
F -->|检索相关页面| E
F -->|将页面传递给| G[视觉语言模型]
G -->|生成回复| B
B -->|显示回复| A
B -->|保存会话数据| H[sessions/]
subgraph 后端
B
D
F
G
end
subgraph 存储
C
E
H
end
贡献
欢迎贡献!请按照以下步骤操作:
- 分叉仓库。
- 为您的功能创建一个新分支:
git checkout -b feature-name。 - 提交更改:
git commit -am '添加新功能'。 - 推送到分支:
git push origin feature-name。 - 提交拉取请求。
星标历史
常见问题
相似工具推荐
openclaw
OpenClaw 是一款专为个人打造的本地化 AI 助手,旨在让你在自己的设备上拥有完全可控的智能伙伴。它打破了传统 AI 助手局限于特定网页或应用的束缚,能够直接接入你日常使用的各类通讯渠道,包括微信、WhatsApp、Telegram、Discord、iMessage 等数十种平台。无论你在哪个聊天软件中发送消息,OpenClaw 都能即时响应,甚至支持在 macOS、iOS 和 Android 设备上进行语音交互,并提供实时的画布渲染功能供你操控。 这款工具主要解决了用户对数据隐私、响应速度以及“始终在线”体验的需求。通过将 AI 部署在本地,用户无需依赖云端服务即可享受快速、私密的智能辅助,真正实现了“你的数据,你做主”。其独特的技术亮点在于强大的网关架构,将控制平面与核心助手分离,确保跨平台通信的流畅性与扩展性。 OpenClaw 非常适合希望构建个性化工作流的技术爱好者、开发者,以及注重隐私保护且不愿被单一生态绑定的普通用户。只要具备基础的终端操作能力(支持 macOS、Linux 及 Windows WSL2),即可通过简单的命令行引导完成部署。如果你渴望拥有一个懂你
stable-diffusion-webui
stable-diffusion-webui 是一个基于 Gradio 构建的网页版操作界面,旨在让用户能够轻松地在本地运行和使用强大的 Stable Diffusion 图像生成模型。它解决了原始模型依赖命令行、操作门槛高且功能分散的痛点,将复杂的 AI 绘图流程整合进一个直观易用的图形化平台。 无论是希望快速上手的普通创作者、需要精细控制画面细节的设计师,还是想要深入探索模型潜力的开发者与研究人员,都能从中获益。其核心亮点在于极高的功能丰富度:不仅支持文生图、图生图、局部重绘(Inpainting)和外绘(Outpainting)等基础模式,还独创了注意力机制调整、提示词矩阵、负向提示词以及“高清修复”等高级功能。此外,它内置了 GFPGAN 和 CodeFormer 等人脸修复工具,支持多种神经网络放大算法,并允许用户通过插件系统无限扩展能力。即使是显存有限的设备,stable-diffusion-webui 也提供了相应的优化选项,让高质量的 AI 艺术创作变得触手可及。
everything-claude-code
everything-claude-code 是一套专为 AI 编程助手(如 Claude Code、Codex、Cursor 等)打造的高性能优化系统。它不仅仅是一组配置文件,而是一个经过长期实战打磨的完整框架,旨在解决 AI 代理在实际开发中面临的效率低下、记忆丢失、安全隐患及缺乏持续学习能力等核心痛点。 通过引入技能模块化、直觉增强、记忆持久化机制以及内置的安全扫描功能,everything-claude-code 能显著提升 AI 在复杂任务中的表现,帮助开发者构建更稳定、更智能的生产级 AI 代理。其独特的“研究优先”开发理念和针对 Token 消耗的优化策略,使得模型响应更快、成本更低,同时有效防御潜在的攻击向量。 这套工具特别适合软件开发者、AI 研究人员以及希望深度定制 AI 工作流的技术团队使用。无论您是在构建大型代码库,还是需要 AI 协助进行安全审计与自动化测试,everything-claude-code 都能提供强大的底层支持。作为一个曾荣获 Anthropic 黑客大奖的开源项目,它融合了多语言支持与丰富的实战钩子(hooks),让 AI 真正成长为懂上
ComfyUI
ComfyUI 是一款功能强大且高度模块化的视觉 AI 引擎,专为设计和执行复杂的 Stable Diffusion 图像生成流程而打造。它摒弃了传统的代码编写模式,采用直观的节点式流程图界面,让用户通过连接不同的功能模块即可构建个性化的生成管线。 这一设计巧妙解决了高级 AI 绘图工作流配置复杂、灵活性不足的痛点。用户无需具备编程背景,也能自由组合模型、调整参数并实时预览效果,轻松实现从基础文生图到多步骤高清修复等各类复杂任务。ComfyUI 拥有极佳的兼容性,不仅支持 Windows、macOS 和 Linux 全平台,还广泛适配 NVIDIA、AMD、Intel 及苹果 Silicon 等多种硬件架构,并率先支持 SDXL、Flux、SD3 等前沿模型。 无论是希望深入探索算法潜力的研究人员和开发者,还是追求极致创作自由度的设计师与资深 AI 绘画爱好者,ComfyUI 都能提供强大的支持。其独特的模块化架构允许社区不断扩展新功能,使其成为当前最灵活、生态最丰富的开源扩散模型工具之一,帮助用户将创意高效转化为现实。
gemini-cli
gemini-cli 是一款由谷歌推出的开源 AI 命令行工具,它将强大的 Gemini 大模型能力直接集成到用户的终端环境中。对于习惯在命令行工作的开发者而言,它提供了一条从输入提示词到获取模型响应的最短路径,无需切换窗口即可享受智能辅助。 这款工具主要解决了开发过程中频繁上下文切换的痛点,让用户能在熟悉的终端界面内直接完成代码理解、生成、调试以及自动化运维任务。无论是查询大型代码库、根据草图生成应用,还是执行复杂的 Git 操作,gemini-cli 都能通过自然语言指令高效处理。 它特别适合广大软件工程师、DevOps 人员及技术研究人员使用。其核心亮点包括支持高达 100 万 token 的超长上下文窗口,具备出色的逻辑推理能力;内置 Google 搜索、文件操作及 Shell 命令执行等实用工具;更独特的是,它支持 MCP(模型上下文协议),允许用户灵活扩展自定义集成,连接如图像生成等外部能力。此外,个人谷歌账号即可享受免费的额度支持,且项目基于 Apache 2.0 协议完全开源,是提升终端工作效率的理想助手。
markitdown
MarkItDown 是一款由微软 AutoGen 团队打造的轻量级 Python 工具,专为将各类文件高效转换为 Markdown 格式而设计。它支持 PDF、Word、Excel、PPT、图片(含 OCR)、音频(含语音转录)、HTML 乃至 YouTube 链接等多种格式的解析,能够精准提取文档中的标题、列表、表格和链接等关键结构信息。 在人工智能应用日益普及的今天,大语言模型(LLM)虽擅长处理文本,却难以直接读取复杂的二进制办公文档。MarkItDown 恰好解决了这一痛点,它将非结构化或半结构化的文件转化为模型“原生理解”且 Token 效率极高的 Markdown 格式,成为连接本地文件与 AI 分析 pipeline 的理想桥梁。此外,它还提供了 MCP(模型上下文协议)服务器,可无缝集成到 Claude Desktop 等 LLM 应用中。 这款工具特别适合开发者、数据科学家及 AI 研究人员使用,尤其是那些需要构建文档检索增强生成(RAG)系统、进行批量文本分析或希望让 AI 助手直接“阅读”本地文件的用户。虽然生成的内容也具备一定可读性,但其核心优势在于为机器
