
PrivateGPT 是由 Zylon 构建的生产就绪级 AI 项目,它允许您利用大语言模型 (LLM) 的强大功能,就您的文档提出问题,即使在无网络连接的环境中也能使用。100% 私密,您的数据在任何时候都不会离开您的运行环境。
[!TIP]
如果您正在为金融(银行、保险、投资)、国防、关键基础设施服务、政府和医疗保健等受监管行业寻找企业就绪、完全私密的 AI 平台,请查看 Zylon 官网 或 申请演示。
Zylon 是一个企业级 AI 平台,为受监管行业提供私密生成式 AI 和本地化 AI 软件,支持在企业基础设施内部安全部署,无需依赖外部云服务。
该项目提供了一个 API,涵盖了构建私密、上下文感知的 AI 应用程序所需的所有基础组件。它遵循并扩展了 OpenAI API 标准,并支持普通响应和流式响应。
API 分为两个逻辑模块:
高级 API,它抽象了 RAG(检索增强生成)管道实现的所有复杂性:
- 文档摄取:内部处理文档解析、分割、元数据提取、嵌入向量生成和存储。
- 基于已摄取文档上下文的聊天与补全:抽象了上下文检索、提示工程和响应生成。
低级 API,允许高级用户实现他们自己的复杂管道:
- 嵌入向量生成:基于一段文本生成嵌入向量。
- 上下文片段检索:给定一个查询,从已摄取的文档中返回最相关的文本片段。
除此之外,还提供了一个可工作的 Gradio UI 客户端来测试 API,以及一套有用的工具,如批量模型下载脚本、摄取脚本、文档文件夹监控等。
[!WARNING]
此 README 的更新频率不如官方文档。请查阅文档以获取最新更新!
生成式 AI 正在改变我们的社会,但在各种规模的公司以及医疗保健或法律等数据敏感领域的应用,受到一个明确担忧的限制:隐私。在使用第三方 AI 工具时,无法确保您的数据完全处于您的控制之下,这是这些行业无法承担的风险。
PrivateGPT 的第一个版本于 2023 年 5 月发布,作为一种新颖的方法,通过完全离线的方式使用 LLM 来解决隐私问题。
该版本迅速成为隐私敏感设置的首选项目,并为数千个专注于本地的生成式 AI 项目奠定了基础,也是当今 PrivateGPT 的雏形;它是一个更简单、更具教育意义的实现,有助于理解构建一个完全本地化(因此也是私密的)类 ChatGPT 工具所需的基本概念。
如果您想继续试用它,我们已将其保存在项目的 primordial 分支 中。
如果您来自之前的初始版本,强烈建议您全新克隆并安装此新版本的 PrivateGPT。
PrivateGPT 现在正朝着成为生成式 AI 模型和基础组件的网关发展,包括补全、文档摄取、RAG 管道和其他低级构建块。我们希望让任何开发者都能更轻松地构建 AI 应用程序和体验,并为社区提供一个合适的扩展架构,以便持续贡献。
请关注我们的 发布版本,查看所有包含的新功能和更改。
关于安装、依赖项、配置、运行服务器、部署选项、摄取本地文档、API 详情和 UI 功能的完整文档可以在此处找到:https://docs.privategpt.dev/
从概念上讲,PrivateGPT 是一个包装了 RAG 管道并暴露其基础组件的 API。
* API 使用 FastAPI 构建,并遵循 OpenAI 的 API 方案。
* RAG 管道基于 LlamaIndex。
PrivateGPT 的设计允许轻松扩展和适配 API 及 RAG 实现。一些关键的架构决策包括:
* 依赖注入,解耦不同的组件和层。
* 使用 LlamaIndex 抽象,如 LLM、BaseEmbedding 或 VectorStore,使得更换这些抽象的实际实现变得非常直接。
* 简洁性,尽可能少地添加层和新抽象。
* 开箱即用,提供 API 和 RAG 管道的完整实现。
主要构建模块:
* API 定义在 private_gpt:server:<api> 中。每个包包含一个 <api>_router.py(FastAPI 层)和一个 <api>_service.py(服务实现)。每个 Service 使用 LlamaIndex 的基础抽象而非特定实现,将实际实现与其使用解耦。
* 组件放置在 private_gpt:components:<component> 中。每个 Component 负责为 Service 中使用的基础抽象提供实际实现——例如,LLMComponent 负责提供 LLM 的实际实现(例如 LlamaCPP 或 OpenAI)。
欢迎贡献!为确保代码质量,我们启用了多种格式和类型检查,只需在提交前运行 make check 以确保您的代码无误。请记得测试您的代码!您可以在 tests 文件夹中找到辅助工具,并使用 make test 命令运行测试。
不知道贡献什么?这里是包含多个想法的公共 项目看板。
前往 Discord 的 #contributors 频道,申请该 GitHub 项目的写入权限。
加入关于 PrivateGPT 的讨论:
- Twitter (即 X)
- Discord
如果您在论文中使用 PrivateGPT,请查看 引用文件 以获取正确的引用格式。您也可以使用此仓库中的 "Cite this repository" 按钮获取不同格式的引用。
以下是几个示例:
@software{Zylon_PrivateGPT_2023,
author = {Zylon by PrivateGPT},
license = {Apache-2.0},
month = may,
title = {{PrivateGPT}},
url = {https://github.com/zylon-ai/private-gpt},
year = {2023}
}
Zylon by PrivateGPT (2023). PrivateGPT [Computer software]. https://github.com/zylon-ai/private-gpt
PrivateGPT 得到了以下团队的大力支持:
* Qdrant,提供默认的向量数据库
* Fern,提供文档和 SDK
* LlamaIndex,提供基础的 RAG 框架和抽象
此项目也深受其他优秀项目的强烈影响和支持,例如:
LangChain、
GPT4All、
LlamaCpp、
Chroma
和 SentenceTransformers。