后台源码:利用 GPT 的力量与您的文档进行私密交互,100% 私密,无数据泄露

环境设置

为了设置您的环境以在此处运行代码,请首先安装所有要求:pip3 install -r requirements.txt

替代要求安装与诗歌

  1. 安装诗歌
  2. 运行这个命令

cd privateGPT poetry install poetry shell

然后,下载 LLM 模型并将其放置在您选择的目录中:

  • LLM:默认为ggml-gpt4all-j-v1.3-groovy.bin。如果您更喜欢不同的 GPT4All-J 兼容型号,只需下载它并在您的.env文件中引用它即可。

example.env模板复制到.envcp example.env .env

并在文件中适当编辑变量.env

MODEL_TYPE: supports LlamaCpp or GPT4All
PERSIST_DIRECTORY: is the folder you want your vectorstore in
MODEL_PATH: Path to your GPT4All or LlamaCpp supported LLM
MODEL_N_CTX: Maximum token limit for the LLM model
MODEL_N_BATCH: Number of tokens in the prompt that are fed into the model at a time. Optimal value differs a lot depending on the model (8 works well for GPT4All, and 1024 is better for LlamaCpp)
EMBEDDINGS_MODEL_NAME: SentenceTransformers embeddings model name (see https://www.sbert.net/docs/pretrained_models.html)
TARGET_SOURCE_CHUNKS: The amount of chunks (sources) that will be used to answer a question

注意:由于langchain加载SentenceTransformers嵌入的方式,第一次运行脚本时将需要互联网连接来下载嵌入模型本身。

测试数据集

此存储库使用联盟状态记录作为示例。

获取您自己的数据集的说明

将所有文件放入该source_documents目录中

支持的扩展有:

  • .csv:CSV,
  • .docx:Word文档,
  • .doc:Word文档,
  • .enex: 印象笔记,
  • .eml: 电子邮件,
  • .epub:电子书,
  • .html:HTML 文件,
  • .md:降价,
  • .msg:展望消息,
  • .odt:打开文档文本,
  • .pdf:便携式文档格式(PDF),
  • .pptx: PowerPoint 文档,
  • .ppt: PowerPoint 文档,
  • .txt:文本文件(UTF-8),

运行以下命令来提取所有数据。python ingest.py

输出应如下所示:Creating new vectorstore Loading documents from source_documents Loading new documents: 100%|██████████████████████| 1/1 [00:01<00:00, 1.73s/it] Loaded 1 new documents from source_documents Split into 90 chunks of text (max. 500 tokens each) Creating embeddings. May take some minutes… Using embedded DuckDB with persistence: data will be stored in: db Ingestion complete! You can now run privateGPT.py to query your documents

它将创建一个db包含本地矢量存储的文件夹。每个文档需要 20-30 秒,具体取决于文档的大小。您可以根据需要提取任意数量的文档,所有文档都将累积在本地嵌入数据库中。如果您想从空数据库开始,请删除该db文件夹。

注意:在摄取过程中,没有数据离开您的本地环境。您可以在没有互联网连接的情况下进行摄取,除非第一次运行摄取脚本(即下载嵌入模型时)。

在本地对您的文档提出问题!

要提出问题,请运行如下命令:python privateGPT.py

并等待脚本需要您的输入。

> Enter a query:

按回车键。当 LLM 模型处理提示并准备答案时,您需要等待 20-30 秒(取决于您的机器)。完成后,它将打印答案以及用作文档上下文的 4 个来源;然后您可以询问另一个问题,而无需重新运行脚本,只需再次等待提示即可。

注意:您可以关闭互联网连接,脚本推理仍然有效。任何数据都不会流出您的本地环境。

键入exit以完成脚本。

命令行界面

该脚本还支持可选的命令行参数来修改其行为。python privateGPT.py --help您可以通过在终端中运行命令来查看这些参数的完整列表。

它是如何工作的?

选择正确的本地模型和您的能力LangChain可以在本地运行整个管道,无需任何数据离开您的环境,并且具有合理的性能。

  • ingest.py使用LangChain工具解析文档并使用HuggingFaceEmbeddingsSentenceTransformers) 在本地创建嵌入。然后,它使用向量存储将结果存储在本地向量数据库中Chroma
  • privateGPT.py使用本地法学硕士基于GPT4All-JLlamaCpp理解问题并创建答案。使用相似性搜索从本地向量存储中提取答案的上下文,以从文档中找到正确的上下文。
  • GPT4All-J浪链0.0.162中引入了wrapper。

系统要求

Python版本

要使用该软件,您必须安装Python 3.10或更高版本。早期版本的 Python 无法编译。

C++编译器

如果您在造轮子的过程中遇到错误pip install,您可能需要在计算机上安装 C++ 编译器。

对于 Windows 10/11

要在 Windows 10/11 上安装 C++ 编译器,请按照以下步骤操作:

  1. 安装 Visual Studio 2022。
  2. 确保选择以下组件:
    • 通用Windows平台开发
    • 适用于 Windows 的 C++ CMake 工具
  3. 从MinGW 网站下载 MinGW 安装程序。
  4. 运行安装程序并选择gcc组件。

运行英特尔的 Mac

在使用 Intel 硬件(非 M1)运行 Mac 时,您可能会遇到clang: error: the clang compiler does not support ‘-march=native’在 pip install 过程中。

如果是这样,请在 pip 安装期间设置您的 archflags 。例如:ARCHFLAGS =“-arch x86_64”pip3 install -rrequirements.txt

免责声明

这是一个测试项目,旨在验证使用 LLM 和向量嵌入进行问答的完全私有解决方案的可行性。它尚未准备好用于生产,也不适合在生产中使用。模型选择不是为了性能而优化,而是为了隐私;但可以使用不同的模型和向量存储来提高性能。

阅读全文
下载地址1立即下载
1、本站所有资源均从互联网上收集整理而来,仅供学习交流之用,因此不包含技术服务请大家谅解! 2、本站不提供任何实质性的付费和支付资源,所有需要积分下载的资源均为网站运营赞助费用或者线下劳务费用! 3、本站所有资源仅用于学习及研究使用,您必须在下载后的24小时内删除所下载资源,切勿用于商业用途,否则由此引发的法律纠纷及连带责任本站和发布者概不承担! 4、本站站内提供的所有可下载资源,本站保证未做任何负面改动(不包含修复bug和完善功能等正面优化或二次开发),但本站不保证资源的准确性、安全性和完整性,用户下载后自行斟酌,我们以交流学习为目的,并不是所有的源码都100%无错或无bug!如有链接无法下载、失效或广告,请联系客服处理! 5、本站资源除标明原创外均来自网络整理,版权归原作者或本站特约原创作者所有,如侵犯到您的合法权益,请立即告知本站,本站将及时予与删除并致以最深的歉意! 6、如果您也有好的资源或教程,您可以投稿发布,成功分享后有站币奖励和额外收入! 7、如果您喜欢该资源,请支持官方正版资源,以得到更好的正版服务! 8、请您认真阅读上述内容,注册本站用户或下载本站资源即您同意上述内容!
资源下载
下载价格免费
下载说明:
1、本站所有资源均从互联网上收集整理而来,仅供学习交流之用,因此不包含技术服务请大家谅解!
2、本站不提供任何实质性的付费和支付资源,所有需要积分下载的资源均为网站运营赞助费用或者线下劳务费用!
3、本站所有资源仅用于学习及研究使用,您必须在下载后的24小时内删除所下载资源,切勿用于商业用途,否则由此引发的法律纠纷及连带责任本站和发布者概不承担!
4、本站站内提供的所有可下载资源,本站保证未做任何负面改动(不包含修复bug和完善功能等正面优化或二次开发),但本站不保证资源的准确性、安全性和完整性,用户下载后自行斟酌,我们以交流学习为目的,并不是所有的源码都100%无错或无bug!如有链接无法下载、失效或广告,请联系客服处理!
5、本站资源除标明原创外均来自网络整理,版权归原作者或本站特约原创作者所有,如侵犯到您的合法权益,请立即告知本站,本站将及时予与删除并致以最深的歉意!
6、如果您也有好的资源或教程,您可以投稿发布,成功分享后有站币奖励和额外收入!
7、如果您喜欢该资源,请支持官方正版资源,以得到更好的正版服务!
8、请您认真阅读上述内容,注册本站用户或下载本站资源即您同意上述内容!
原文链接:https://www.shuli.cc/?p=16723,转载请注明出处。
0

评论0

显示验证码
没有账号?注册  忘记密码?