Loading... > [https://github.com/imartinez/privateGPT](https://github.com/imartinez/privateGPT) 使用 LLM 的强大功能,无需互联网连接就可以对您的文档提出问题。100% 私有,任何时候都没有数据离开您的执行环境。您可以在没有互联网连接的情况下提取文档和提问! 使用[LangChain](https://github.com/hwchase17/langchain)和[GPT4All](https://github.com/nomic-ai/gpt4all)以及[LlamaCpp构建](https://github.com/ggerganov/llama.cpp) [](https://user-images.githubusercontent.com/721666/236942256-985801c9-25b9-48ef-80be-3acbb4575164.png) # 环境设置 为了设置您的环境以在此处运行代码,首先安装所有要求: ```shell notranslate position-relative overflow-auto pip install -r requirements.txt ``` 然后,下载这 2 个模型并将它们放在您选择的目录中。 * LLM:默认为[ggml-gpt4all-j-v1.3-groovy.bin](https://gpt4all.io/models/ggml-gpt4all-j-v1.3-groovy.bin)。如果您喜欢不同的 GPT4All-J 兼容模型,只需下载它并在您的`.env`文件中引用它。 * 嵌入:默认为[ggml-model-q4_0.bin](https://huggingface.co/Pi3141/alpaca-native-7B-ggml/resolve/397e872bf4c83f4c642317a5bf65ce84a105786e/ggml-model-q4_0.bin)。如果您更喜欢不同的兼容嵌入模型,只需下载它并在您的`.env`文件中引用它。 重命名`example.env`并`.env`适当编辑变量。 ``` MODEL_TYPE: supports LlamaCpp or GPT4All PERSIST_DIRECTORY: is the folder you want your vectorstore in LLAMA_EMBEDDINGS_MODEL: (absolute) Path to your LlamaCpp supported embeddings model MODEL_PATH: Path to your GPT4All or LlamaCpp supported LLM MODEL_N_CTX: Maximum token limit for both embeddings and LLM models ``` `langchain`注意:由于加载嵌入的方式`LLAMA`,您需要指定嵌入模型二进制文件的绝对路径。`~/`这意味着如果您使用主目录快捷方式(例如或`$HOME/`),它将不起作用。 ## 测试数据集 这个 repo 使用[state of the union transcript](https://github.com/imartinez/privateGPT/blob/main/source_documents/state_of_the_union.txt)作为例子。 ## 摄取您自己的数据集的说明 将所有 .txt、.pdf 或 .csv 文件放入 source_documents 目录 运行以下命令以摄取所有数据。 ```shell notranslate position-relative overflow-auto python ingest.py ``` 它将创建一个`db`包含本地 vectorstore 的文件夹。需要时间,具体取决于文档的大小。您可以摄取任意数量的文档,所有文档都将累积在本地嵌入数据库中。如果要从空数据库开始,请删除该`db`文件夹。 注意:在摄取过程中,没有数据离开您的本地环境。您可以在没有互联网连接的情况下摄取。 ## 在本地对您的文件提出问题! 要提出问题,请运行如下命令: ```shell notranslate position-relative overflow-auto python privateGPT.py ``` 并等待脚本要求您输入。 ```shell notranslate position-relative overflow-auto > Enter a query: ``` 点击进入。在 LLM 模型使用提示并准备答案时,您需要等待 20-30 秒(取决于您的机器)。完成后,它将打印答案和用作文档上下文的 4 个来源;然后您可以问另一个问题而无需重新运行脚本,只需再次等待提示即可。 注意:您可以关闭互联网连接,脚本推理仍然有效。没有数据会从您的本地环境中泄露出去。 键入`exit`以完成脚本。 # 它是如何工作的? 选择正确的本地模型和您的力量`LangChain`可以在本地运行整个管道,没有任何数据离开您的环境,并且具有合理的性能。 * `ingest.py`使用`LangChain`工具解析文档并使用`LlamaCppEmbeddings`. 然后它使用矢量存储将结果存储在本地矢量数据库中`Chroma`。 * `privateGPT.py`使用基于`GPT4All-J`或`LlamaCpp`理解问题并创建答案的本地 LLM。答案的上下文是使用相似性搜索从本地向量存储中提取的,以从文档中找到正确的上下文。 * `GPT4All-J`wrapper 是在 LangChain 0.0.162 中引入的。 # 系统要求 ## 蟒蛇版本 要使用此软件,您必须安装 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 网站](https://sourceforge.net/projects/mingw/)下载 MinGW 安装程序。 4. 运行安装程序并选择“gcc”组件。 最后修改:2023 年 05 月 16 日 © 允许规范转载 打赏 赞赏作者 微信 赞 2 如果觉得我的文章对你有用,请随意赞赏