随着人工智能技术的普及,ChatGPT 等 AI 产品的使用日益广泛,用户数据隐私泄露的风险也随之增加。为了解决这一问题,开源项目 PrivateGPT 应运而生,它允许用户在离线环境下利用大语言模型(LLM)查询本地文档,确保数据完全保留在本地执行环境中。
PrivateGPT 概述
PrivateGPT 是一个可投入生产的 AI 项目,支持在无互联网连接的情况下运行。它基于检索增强生成(RAG)技术,将大型语言模型的能力封装在安全的 API 中,提供私有、安全且易于使用的 GenAI 开发框架。该项目支持多种本地和远程的 LLM 提供商、嵌入提供商及向量存储后端,且无需修改代码库即可灵活切换。
核心架构
PrivateGPT 的核心框架由 FastAPI 和 LlamaIndex 构成,提供了构建私有上下文感知 AI 应用所需的所有原语。其 API 设计遵循并扩展了 OpenAI API 标准,支持普通响应和流式响应,分为两个逻辑块:
- 高级 API:抽象了 RAG 管道的复杂性,包括文档提取(解析、分割、元数据提取、嵌入生成与存储)以及基于上下文的聊天与完成(上下文检索、提示工程与响应生成)。
- 低级 API:面向高级用户,允许自定义复杂管道,包括基于文本的嵌入生成和给定查询的上下文块检索。
此外,项目提供了一个 Gradio UI 客户端用于测试 API,并包含批量模型下载脚本、文档文件夹监视等实用工具。
安装与环境配置
开始安装前,请确认系统满足以下基础环境要求:
- Python >= 3.11
- Make
- Poetry
快速安装步骤
# 克隆仓库
git clone https://github.com/imartinez/privateGPT
cd privateGPT
# 安装 Python 3.11 (如已安装可跳过)
pyenv install 3.11
pyenv local 3.11
# 安装依赖
poetry install --with ui,local
# 下载嵌入和 LLM 模型
poetry run python scripts/setup
# (可选) 对于 Mac Metal GPU,启用加速
CMAKE_ARGS="-DLLAMA_METAL=on" pip install --force-reinstall --no-cache-dir llama-cpp-python
# 启动本地服务器
PGPT_PROFILES=local make run
启动后,访问 http://localhost:8001/ 即可使用 Web 界面。
性能优化建议
为了获得最佳性能,强烈建议使用 GPU 加速。PrivateGPT 支持与 llama.cpp 兼容的模型进行本地执行。推荐的已知良好运行的模型包括:
- TheBloke/Llama-2–7B-chat-GGUF
- TheBloke/Mistral-7B-Instruct-v0.1-GGUF
若显存有限,可选择量化版本(如 Q4_K_M),这能在保持较高精度的同时显著降低内存占用。
配置与模型管理
PrivateGPT 允许通过配置文件自定义行为。主要配置文件位于 settings.yaml,其中可设置以下关键参数:
- LLM Provider: 选择本地或远程模型服务。
- Embedding Provider: 定义文本向量化方式。
- Vector Store: 指定向量数据库类型(如 ChromaDB, FAISS 等)。


