【privateGPT:基于GPT4All-J的私有化部署文档问答平台,无需联网,能100%保证用户的隐私不泄露。提供了一个API,用户可以使用自己的文档进行交互式问答和生成文本。此外,平台支持自定义训练数据和模型参数,以满足个性化需求】'privateGPT - Interact privately with your documents using the power of GPT, 100% privately, no data leaks' Iván Martínez " 问答, 文档
在没有互联网连接的情况下,使用LLM的功能向您的文档提问。100%私有,任何时候都没有数据离开您的执行环境。您可以在没有互联网连接的情况下获取文档并提出问题! 使用LangChain和GPT4All构建 环境设置 为了将您的环境设置为在此处运行代码,请首先安装所有要求: pip安装-r要求.txt 然后,下载这两个模型,并将它们放在名为的文件夹中/模型: LLM:默认为ggml-gpt4all-j-v1.3-groovy.bin。如果您喜欢不同的gpt4all-j兼容型号,只需下载并在privateGPT.py中引用即可。 嵌入:默认为ggml-model-q4_0.bin。如果您喜欢不同的兼容嵌入模型,只需下载它并在privateGPT.py和intake.py中引用它。 测试数据集 本次回购以国情咨文为例。 获取您自己的数据集的说明 准备好你的.txt文件。 运行以下命令以获取数据。 python摄取.py 它将创建一个包含本地向量存储的数据库文件夹。将需要时间,具体取决于文档的大小。通过运行intake,您可以摄取任意数量的文档,所有文档都将累积在本地嵌入数据库中。如果您想从scracth开始,请删除数据库文件夹。 注意:在摄取过程中,没有数据离开您的本地环境。你可以在没有互联网连接的情况下摄取。 在本地向您的文档提问! 要提问,请运行以下命令: python私有GPT.py 然后等待脚本需要您的输入。 >输入查询: 点击回车键。你会看到LLM从你的文档中打印出它正在使用的上下文,然后是最终的答案;然后,您可以在不重新运行脚本的情况下问另一个问题,只需再次等待提示。 注意:你可以关闭你的互联网连接,脚本推理仍然有效。没有数据从您的本地环境中流出。 键入exit以完成脚本。 它是如何工作的? 选择正确的本地模型和LangChain的强大功能,您可以在本地运行整个管道,而不会有任何数据离开您的环境,并且具有合理的性能。 intect.py使用LangChain工具解析文档,并使用LlamaCppEmbeddings在本地创建嵌入。然后,它使用Chroma矢量存储将结果存储在本地矢量数据库中。 privateGPT.py使用基于GPT4All的本地LLM来理解问题并创建答案。使用相似性搜索从局部向量存储中提取答案的上下文,以从文档中定位正确的上下文。 gpt4all_j.py是一个包装器,用于支持LangChain中的gpt4all-j模型。它是在创建此项目时不存在此类支持的情况下创建的(仅支持GPT4All模型)。它将很快被提议作为官方LangChain回购的一部分。 免责声明 这是一个测试项目,旨在验证使用LLM和Vector嵌入的完全私有的问答解决方案的可行性。它还没有准备好生产,也不打算在生产中使用。模型的选择不是为了性能而优化,而是为了隐私;但是可以使用不同的模型和向量来提高性能。