localGPT-Vision 是一个端到端的基于视觉的检索增强生成(RAG)系统。它允许用户上传和索引文档(PDF 和图像),就内容提问,并接收回答以及相关的文档片段。检索功能使用 Colqwen 或 ColPali 模型执行,检索到的页面会传递给视觉语言模型(VLM)以生成回答。目前,代码支持以下 VLM:
该项目基于 Byaldi 库构建。
localGPT-Vision 构建为一个端到端的基于视觉的 RAG 系统。其架构包含两个主要组件:

该架构消除了对复杂文本提取流程的需求,并通过考虑文档的视觉元素提供了更全面的理解。您无需像传统 RAG 系统那样处理分块策略、选择嵌入模型或检索策略。
按照以下步骤在本地机器上设置并运行应用程序。
克隆仓库
bash
git clone https://github.com/PromtEngineer/localGPT-Vision.git
cd localGPT-Vision
创建 Conda 环境
bash
conda create -n localgpt-vision python=3.10
conda activate localgpt-vision
3a. 安装依赖
bash
pip install -r requirements.txt
3b. 从 HuggingFace 安装 Transformers - 开发版本
bash
pip uninstall transformers
pip install git+https://github.com/huggingface/transformers
bash
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 命令提示符中:
cmd
set GENAI_API_KEY=your_genai_api_key
set OPENAI_API_KEY=your_openai_api_key
set GROQ_API_KEY='your_groq_api_key'
运行应用程序
bash
python app.py
访问应用程序
打开您的网络浏览器并导航到:
http://localhost:5050/
为了协助调试 localGPT-Vision,需要在您的系统上安装一些额外的依赖项。请按照以下说明设置您的调试环境。
使用以下命令安装必要的软件包:
bash
sudo apt update
这些库对于处理 PDF 文件至关重要。
bash
sudo apt install libpoppler-cpp-dev poppler-utils
pdftoppm 安装检查版本以确保安装正确:
bash
pdftoppm -v
这些软件包是构建和管理库所必需的。
bash
sudo apt install cmake pkgconfig python3-poppler-qt5
### 注意
请确保您有适当的权限在您的机器上运行 sudo 命令。此设置专门针对 Ubuntu/Debian 系统,如果使用不同的 Linux 发行版或 macOS,步骤可能会略有不同。
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:项目文档。byaldi_indices/ 目录中。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 'Add new feature'。git push origin feature-name。