项目简介
PrivateGPT是一个已完成的AI项目,允许用户在没有互联网连接的情况下,使用大型语言模型(LLMs)私密地提问文档内容。该项目提供了构建私有、上下文感知AI应用所需的所有API基本组件。
它遵循并扩展了OpenAI API标准,支持标准和流式响应。PrivateGPT分为两个逻辑部分:高级API简化了RAG(检索增强生成)流水线的实现复杂性;低级API允许高级用户实现自己的复杂流水线 (GitHub)。
扫码加入交流群
获得更多技术支持和交流
(请注明自己的职业)
功能
高级API ,它抽象了一个RAG(检索增强生成)管道实现的所有复杂性:
文档摄入:内部管理文档解析、分割、元数据提取、嵌入生成和存储。使用摄入文档的上下文进行聊天和完成:抽象了上下文的检索、提示工程和响应生成。
低级API ,允许高级用户实现他们自己的复杂管道:
嵌入生成:基于一段文本。上下文块检索:给定一个查询,返回从摄入的文档中最相关的文本块。
概述
PrivateGPT背后的动机
生成型AI是我们社会的一个游戏规则改变者,但是在所有规模的公司以及像医疗或法律这样的数据敏感领域的采用受到一个明显问题的限制:隐私。当使用第三方AI工具时,无法确保你的数据完全在你的控制之下,是这些行业无法承担的风险。
原始版本
PrivateGPT的第一个版本于2023年5月推出,作为一种新颖的方法来解决使用LLMs(大型语言模型)时的隐私顾虑,并完全离线操作。
那个版本迅速成为了针对隐私敏感设置的首选项目,并成为了成千上万个本地化重点的生成型AI项目的种子,它是现在PrivateGPT所成为的基础;因此,一个更简单和更具教育意义的实现,用于理解构建一个完全本地化的、因而是私有的类ChatGPT工具所需的基本概念。
PrivateGPT的现在和未来
PrivateGPT现在正向成为生成型AI模型和基元的门户发展,包括完成、文档摄入、RAG管道和其他低级构建模块。我们希望让任何开发者更容易地构建AI应用和体验,同时提供一个适合社区继续贡献的广泛架构。
文档
有关安装、依赖项、配置、运行服务器、部署选项、获取本地文档、API 详细信息和 UI 功能的完整文档可以在这里找到:
https: //docs.privategpt.dev/
架构
从概念上讲, PrivateGPT是一个API ,它封装了一个RAG(检索增强生成)管道并暴露其基元。
· 这个API使用FastAPI构建,并遵循OpenAI的API模式。
· RAG管道基于LlamaIndex。
PrivateGPT的设计允许轻松扩展和适应API和RAG实现。 一些关键的架构决策包括:
· 依赖注入,解耦不同的组件和层。
· 使用LlamaIndex抽象,如LLM、BaseEmbedding或VectorStore,使改变这些抽象的实际实现变得立即可行。
· 简单性,尽可能少地添加层和新的抽象。
· 随时使用,提供API和RAG管道的完整实现。
主要构建模块:
· API在private_gpt:server:中定义。每个包包含一个_router.py(FastAPI层)和一个_service.py(服务实现)。每个服务使用LlamaIndex的基本抽象,而不是具体实现,从其使用中解耦实际实现。
· 组件放置在private_gpt:components:中。每个组件负责提供服务中使用的基本抽象的实际实现 - 例如LLMComponent负责提供一个LLM的实际实现(例如LlamaCPP或OpenAI)。
项目简介
https://github.com/zylon-ai/private-gpt
关注「 开源AI项目落地 」公众号