环境设置
为了设置您的环境以在此处运行代码,请首先安装所有要求:pip3 install -r requirements.txt
替代要求安装与诗歌
- 安装诗歌
- 运行这个命令
cd privateGPT poetry install poetry shell
然后,下载 LLM 模型并将其放置在您选择的目录中:
- LLM:默认为ggml-gpt4all-j-v1.3-groovy.bin。如果您更喜欢不同的 GPT4All-J 兼容型号,只需下载它并在您的
.env
文件中引用它即可。
将example.env
模板复制到.env
cp 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
工具解析文档并使用HuggingFaceEmbeddings
(SentenceTransformers
) 在本地创建嵌入。然后,它使用向量存储将结果存储在本地向量数据库中Chroma
。privateGPT.py
使用本地法学硕士基于GPT4All-J
或LlamaCpp
理解问题并创建答案。使用相似性搜索从本地向量存储中提取答案的上下文,以从文档中找到正确的上下文。GPT4All-J
浪链0.0.162中引入了wrapper。
系统要求
Python版本
要使用该软件,您必须安装Python 3.10或更高版本。早期版本的 Python 无法编译。
C++编译器
如果您在造轮子的过程中遇到错误pip install
,您可能需要在计算机上安装 C++ 编译器。
对于 Windows 10/11
要在 Windows 10/11 上安装 C++ 编译器,请按照以下步骤操作:
- 安装 Visual Studio 2022。
- 确保选择以下组件:
- 通用Windows平台开发
- 适用于 Windows 的 C++ CMake 工具
- 从MinGW 网站下载 MinGW 安装程序。
- 运行安装程序并选择
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、本站所有资源均从互联网上收集整理而来,仅供学习交流之用,因此不包含技术服务请大家谅解!
2、本站不提供任何实质性的付费和支付资源,所有需要积分下载的资源均为网站运营赞助费用或者线下劳务费用!
3、本站所有资源仅用于学习及研究使用,您必须在下载后的24小时内删除所下载资源,切勿用于商业用途,否则由此引发的法律纠纷及连带责任本站和发布者概不承担!
4、本站站内提供的所有可下载资源,本站保证未做任何负面改动(不包含修复bug和完善功能等正面优化或二次开发),但本站不保证资源的准确性、安全性和完整性,用户下载后自行斟酌,我们以交流学习为目的,并不是所有的源码都100%无错或无bug!如有链接无法下载、失效或广告,请联系客服处理!
5、本站资源除标明原创外均来自网络整理,版权归原作者或本站特约原创作者所有,如侵犯到您的合法权益,请立即告知本站,本站将及时予与删除并致以最深的歉意!
6、如果您也有好的资源或教程,您可以投稿发布,成功分享后有站币奖励和额外收入!
7、如果您喜欢该资源,请支持官方正版资源,以得到更好的正版服务!
8、请您认真阅读上述内容,注册本站用户或下载本站资源即您同意上述内容!
原文链接:https://www.shuli.cc/?p=16723,转载请注明出处。
评论0