localGPT-Vision

GitHub
629 130 中等 1 次阅读 昨天语言模型图像开发框架其他
AI 解读 由 AI 自动生成,仅供参考

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
GPU
  • 未说明(运行本地视觉语言模型如 Qwen2-VL-7B 或 Llama-3.2-11B 通常建议配备 NVIDIA GPU,显存至少 16GB+
  • 若使用云端 API 如 Gemini/GPT-4o 则无需本地 GPU)
内存

未说明(建议 16GB 以上以支持本地大模型推理)

依赖
notes1. 必须安装 Conda 或 Miniconda 来管理环境。2. 需要手动安装 HuggingFace transformers 的开发版本(覆盖默认版本)。3. Linux 用户需额外安装 poppler 相关库(libpoppler-cpp-dev, poppler-utils 等)以处理 PDF 转图片。4. 若使用 Google Gemini、OpenAI GPT-4o 或 Groq 模型,需配置相应的 API KEY 环境变量。5. 项目基于 Byaldi 库构建,利用 ColPali/Colqwen 进行纯视觉文档检索,无需 OCR。
python3.10+
torch
transformers (dev version from git)
byaldi
flask
pillow
poppler-utils (系统级依赖)
localGPT-Vision hero image

快速开始

localGPT-Vision

GitHub Star GitHub Forks GitHub Issues GitHub Pull Requests Twitter Follow

观看 YouTube 视频

localGPT-Vision 是一个端到端的基于视觉的检索增强生成(RAG)系统。它允许用户上传并索引文档(PDF 和图片),针对内容提问,并获得包含相关文档片段的回答。检索过程使用 ColqwenColPali 模型完成,检索到的页面会传递给视觉语言模型(VLM)以生成响应。目前,该代码支持以下 VLM:

该项目构建于 Byaldi 库之上。

目录

功能

  • 端到端基于视觉的 RAG:结合视觉文档检索与语言模型,提供全面的答案。
  • 文档上传与索引:上传 PDF 和图片,随后使用 ColPali 进行索引以便检索。
  • 聊天界面:通过对话式界面询问上传文档的相关问题。
  • 会话管理:创建、重命名、切换和删除聊天会话。
  • 模型选择:可在不同视觉语言模型之间选择(Qwen2-VL-7B-Instruct、Google Gemini、OpenAI GPT-4 等)。
  • 持久化索引:索引保存在磁盘上,应用重启时可加载。

架构

localGPT-Vision 构建为一个端到端的基于视觉的 RAG 系统。其架构主要包括两个主要组件:

  1. 基于 Colqwen 和 ColPali 的视觉文档检索:

    • ColqwenColPali 是视觉编码器,专为仅利用文档页面的图像表示进行高效文档检索而设计。
    • 它直接对页面图像进行嵌入,利用布局、字体、图表和表格等视觉线索,无需依赖 OCR 或文本提取。
    • 在索引过程中,文档页面会被转换为图像嵌入并存储起来。
    • 查询时,用户查询会与这些嵌入进行匹配,以检索最相关的文档页面。

    ColPali

  2. 使用视觉语言模型生成响应:

    • 检索到的文档图像会被传递到视觉语言模型(VLM)中。
    • 支持的模型包括 Qwen2-VL-7B-Instruct、LLAMA3.2、Pixtral、Molmo、Google Gemini 和 OpenAI GPT-4。
    • 这些模型通过理解文档的视觉和文本内容来生成回答。
    • 注意:回答的质量高度依赖于所使用的 VLM 以及文档图像的分辨率。

这种架构消除了对复杂文本提取管道的需求,并通过考虑文档的视觉元素提供了更全面的理解。您无需像传统 RAG 系统那样采用分块策略、选择嵌入模型或检索策略。

先决条件

  • 您的系统上已安装 Anaconda 或 Miniconda
  • Python 3.10 或更高版本
  • Git(可选,用于克隆仓库)

安装

请按照以下步骤在您的本地机器上设置并运行应用程序。

  1. 克隆仓库

    git clone https://github.com/PromtEngineer/localGPT-Vision.git
    cd localGPT-Vision
    
  2. 创建 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
  1. 设置环境变量 设置您的 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'
    
  2. 运行应用程序

    python app.py
    
  3. 访问应用程序 打开您的浏览器并导航至:

    http://localhost:5050/
    

调试

为了帮助调试 localGPT-Vision,需要在您的系统上安装一些额外的依赖项。请按照以下说明设置您的调试环境。

必需的软件包

使用以下命令安装必要的软件包:

在基于 Ubuntu/Debian 的系统上

  1. 更新软件包列表

    sudo apt update
    
  2. 安装 Poppler 库和工具

    这些库对于处理 PDF 文件至关重要。

    sudo apt install libpoppler-cpp-dev poppler-utils
    
  3. 验证 pdftoppm 是否已安装

    检查版本以确保正确安装:

    pdftoppm -v
    
  4. 安装额外的依赖项

    这些软件包是构建和管理库所必需的。

    sudo apt install cmake pkgconfig python3-poppler-qt5
    

    注意

    请确保您在机器上拥有运行 sudo 命令的适当权限。此设置专门针对基于 Ubuntu/Debian 的系统,如果您使用的是其他 Linux 发行版或 macOS,步骤可能会略有不同。


    如有需要,您可以根据其他操作系统的特定要求或说明修改本节内容。

使用方法

上传并索引文档

  1. 点击“新建聊天”开始新的会话。
  2. 在“上传并索引文档”部分,点击“选择文件”,然后选择您的 PDF 或图像文件。
  3. 点击“上传并索引”。文档将使用 ColPali 进行索引,并准备好用于查询。

提问

  1. 在“在此输入您的问题”文本框中,键入与已上传文档相关的问题。
  2. 点击“发送”。系统将检索相关的文档页面,并使用选定的视觉语言模型生成回复。

管理会话

  • 重命名会话:点击“编辑名称”,输入新名称,然后点击“保存名称”。
  • 切换会话:单击侧边栏中的会话名称以切换到该会话。
  • 删除会话:单击会话旁边的“删除”按钮以永久删除该会话。

设置

  1. 单击导航栏中的“设置”。
  2. 选择所需的语言模型和图像尺寸。
  3. 点击“保存设置”。

项目结构

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: 项目文档。

系统工作流程

  1. 用户交互:用户通过网页界面上传文档并提问。
  2. 使用 ColPali 对文档进行索引:
    • 如果必要,上传的文档会被转换为 PDF。
    • 文档使用 ColPali 进行索引,该工具会根据文档页面的视觉内容创建嵌入向量。
    • 索引存储在 byaldi_indices/ 目录中。
  3. 会话管理:
    • 每个聊天会话都有一个唯一的 ID,并存储自己的索引和聊天历史。
    • 会话数据会保存到磁盘,并在应用重启时加载。
  4. 查询处理:
    • 用户的查询会被发送到后端。
    • 查询被嵌入并与文档页面的视觉嵌入向量进行匹配,以检索相关页面。
  5. 使用视觉语言模型生成回复:
    • 检索到的文档图像和用户的查询会被传递给选定的视觉语言模型(Qwen、Gemini 或 GPT-4)。
    • 视觉语言模型通过理解文档的视觉和文本内容生成回复。
  6. 显示结果:
    • 回复和相关的文档片段会在聊天界面中显示。
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

贡献

欢迎贡献!请按照以下步骤操作:

  1. 分叉仓库。
  2. 为您的功能创建一个新分支:git checkout -b feature-name
  3. 提交更改:git commit -am '添加新功能'
  4. 推送到分支:git push origin feature-name
  5. 提交拉取请求。

星标历史

星标历史图表

常见问题

相似工具推荐

openclaw

OpenClaw 是一款专为个人打造的本地化 AI 助手,旨在让你在自己的设备上拥有完全可控的智能伙伴。它打破了传统 AI 助手局限于特定网页或应用的束缚,能够直接接入你日常使用的各类通讯渠道,包括微信、WhatsApp、Telegram、Discord、iMessage 等数十种平台。无论你在哪个聊天软件中发送消息,OpenClaw 都能即时响应,甚至支持在 macOS、iOS 和 Android 设备上进行语音交互,并提供实时的画布渲染功能供你操控。 这款工具主要解决了用户对数据隐私、响应速度以及“始终在线”体验的需求。通过将 AI 部署在本地,用户无需依赖云端服务即可享受快速、私密的智能辅助,真正实现了“你的数据,你做主”。其独特的技术亮点在于强大的网关架构,将控制平面与核心助手分离,确保跨平台通信的流畅性与扩展性。 OpenClaw 非常适合希望构建个性化工作流的技术爱好者、开发者,以及注重隐私保护且不愿被单一生态绑定的普通用户。只要具备基础的终端操作能力(支持 macOS、Linux 及 Windows WSL2),即可通过简单的命令行引导完成部署。如果你渴望拥有一个懂你

349.3k|★★★☆☆|1周前
Agent开发框架图像

stable-diffusion-webui

stable-diffusion-webui 是一个基于 Gradio 构建的网页版操作界面,旨在让用户能够轻松地在本地运行和使用强大的 Stable Diffusion 图像生成模型。它解决了原始模型依赖命令行、操作门槛高且功能分散的痛点,将复杂的 AI 绘图流程整合进一个直观易用的图形化平台。 无论是希望快速上手的普通创作者、需要精细控制画面细节的设计师,还是想要深入探索模型潜力的开发者与研究人员,都能从中获益。其核心亮点在于极高的功能丰富度:不仅支持文生图、图生图、局部重绘(Inpainting)和外绘(Outpainting)等基础模式,还独创了注意力机制调整、提示词矩阵、负向提示词以及“高清修复”等高级功能。此外,它内置了 GFPGAN 和 CodeFormer 等人脸修复工具,支持多种神经网络放大算法,并允许用户通过插件系统无限扩展能力。即使是显存有限的设备,stable-diffusion-webui 也提供了相应的优化选项,让高质量的 AI 艺术创作变得触手可及。

162.1k|★★★☆☆|1周前
开发框架图像Agent

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 真正成长为懂上

160k|★★☆☆☆|今天
开发框架Agent语言模型

ComfyUI

ComfyUI 是一款功能强大且高度模块化的视觉 AI 引擎,专为设计和执行复杂的 Stable Diffusion 图像生成流程而打造。它摒弃了传统的代码编写模式,采用直观的节点式流程图界面,让用户通过连接不同的功能模块即可构建个性化的生成管线。 这一设计巧妙解决了高级 AI 绘图工作流配置复杂、灵活性不足的痛点。用户无需具备编程背景,也能自由组合模型、调整参数并实时预览效果,轻松实现从基础文生图到多步骤高清修复等各类复杂任务。ComfyUI 拥有极佳的兼容性,不仅支持 Windows、macOS 和 Linux 全平台,还广泛适配 NVIDIA、AMD、Intel 及苹果 Silicon 等多种硬件架构,并率先支持 SDXL、Flux、SD3 等前沿模型。 无论是希望深入探索算法潜力的研究人员和开发者,还是追求极致创作自由度的设计师与资深 AI 绘画爱好者,ComfyUI 都能提供强大的支持。其独特的模块化架构允许社区不断扩展新功能,使其成为当前最灵活、生态最丰富的开源扩散模型工具之一,帮助用户将创意高效转化为现实。

109.2k|★★☆☆☆|今天
开发框架图像Agent

gemini-cli

gemini-cli 是一款由谷歌推出的开源 AI 命令行工具,它将强大的 Gemini 大模型能力直接集成到用户的终端环境中。对于习惯在命令行工作的开发者而言,它提供了一条从输入提示词到获取模型响应的最短路径,无需切换窗口即可享受智能辅助。 这款工具主要解决了开发过程中频繁上下文切换的痛点,让用户能在熟悉的终端界面内直接完成代码理解、生成、调试以及自动化运维任务。无论是查询大型代码库、根据草图生成应用,还是执行复杂的 Git 操作,gemini-cli 都能通过自然语言指令高效处理。 它特别适合广大软件工程师、DevOps 人员及技术研究人员使用。其核心亮点包括支持高达 100 万 token 的超长上下文窗口,具备出色的逻辑推理能力;内置 Google 搜索、文件操作及 Shell 命令执行等实用工具;更独特的是,它支持 MCP(模型上下文协议),允许用户灵活扩展自定义集成,连接如图像生成等外部能力。此外,个人谷歌账号即可享受免费的额度支持,且项目基于 Apache 2.0 协议完全开源,是提升终端工作效率的理想助手。

100.8k|★★☆☆☆|1周前
插件Agent图像

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 助手直接“阅读”本地文件的用户。虽然生成的内容也具备一定可读性,但其核心优势在于为机器

93.4k|★★☆☆☆|1周前
插件开发框架