菜单

概述

相关源文件

PrivateGPT 是一个生产就绪的 AI 系统,它利用大型语言模型 (LLM) 的强大功能,让用户能够就其文档提出问题,同时确保完全的隐私。所有处理都在本地进行,确保数据在任何时候都不会离开执行环境。本页面提供了 PrivateGPT 架构、组件和功能的概述。

有关详细的安装说明,请参阅安装与设置,有关配置系统的信息,请参阅配置系统

目的与主要功能

PrivateGPT 解决了 AI 采用中的一个关键问题:隐私。它允许组织和个人利用先进的 AI 功能,同时保持对其数据的完全控制。

主要功能包括

功能描述
文档摄取解析、分块和嵌入各种文档格式
上下文感知响应根据文档内容生成响应
可自定义的 LLM 支持使用本地模型或连接到云提供商
灵活的向量存储从多个向量数据库选项中进行选择
隐私优先设计默认情况下,所有处理都在本地进行
API 优先的架构使用提供的 API 构建自定义应用程序
用户界面基于 Gradio 的 UI,易于交互

来源:README.md12-15 README.md22-38

系统架构

该系统遵循模块化、基于组件的架构,围绕检索增强生成 (RAG) 范例构建。

高层架构

来源:README.md81-107 pyproject.toml8-85

该系统使用

  • FastAPI:提供具有同步和流式端点的 API 层
  • LlamaIndex:为 RAG 管道提供支持,为 LLM、嵌入和向量存储提供抽象
  • 依赖注入:组件通过注入模式解耦,以实现灵活性

来源:README.md84-86 README.md97-102

API结构

PrivateGPT 公开了两个级别的 API

来源:README.md26-38

组件结构

PrivateGPT 由几个关键组件组成,这些组件可以单独配置和替换

来源:pyproject.toml18-41

数据流与 RAG 管道

PrivateGPT 的核心功能实现为检索增强生成 (RAG) 管道

来源:README.md98-102

摄取过程

  1. 文档通过 API 上传
  2. 文档被解析并分割成块
  3. 使用配置的嵌入模型对块进行嵌入
  4. 嵌入被存储在向量数据库中
  5. 文档元数据和块文本存储在节点存储中

查询过程

  1. 用户查询使用相同的嵌入模型进行嵌入
  2. 从向量数据库中检索相似块
  3. 检索到的块可选择性地按相关性重新排序
  4. 将块与用户查询一起格式化为提示
  5. 将格式化后的提示发送给 LLM 以生成响应

来源:README.md28-33

可扩展性与配置

PrivateGPT 使用基于 YAML 文件的灵活配置系统,支持不同的配置文件

关键配置选项包括

  • LLM 提供商和参数
  • 嵌入模型和维度
  • 向量存储连接详细信息
  • RAG 管道参数(块大小、重叠、相似度阈值)
  • API 服务器设置(主机、端口、CORS)
  • UI 配置

来源:pyproject.toml72-85 CHANGELOG.md35-40

部署选项

PrivateGPT 可以有多种部署方式

来源:pyproject.toml63-85 CHANGELOG.md66-75

最新开发

最新版本已添加对以下功能的支持:

  • Google Gemini LLM 和嵌入
  • Milvus 和 ClickHouse 向量存储
  • 增强的 Ollama 集成,支持自动拉取模型
  • 文档摘要的新配方功能
  • PostgreSQL 用于节点存储
  • SentenceTransformer 重排序以提高结果

来源:CHANGELOG.md28-40 CHANGELOG.md72-86

本概述提供了对 PrivateGPT 架构和功能的初步了解。有关特定组件的更详细信息,请参阅相应的 Wiki 页面。