Win11使用privateGPT进行多文档问答

目标还是用GPT实现局域网内文档内容快速查询。发现privateGPT似乎更接近这个目标。

使用privateGPT进行多文档问答 · ymcui/Chinese-LLaMA-Alpaca Wiki (github.com)

第一步安装llama-cpp-python这里就遇到问题了。

默认的命令是需要编译的,结果就报错了。查了一下,是我的VS太老了,需要VS2019以上版本,来支持cmake的std:c11。

VS2022已经装好了,才发现其实不用按文档上的命令去编译,直接从

Releases · abetlen/llama-cpp-python (github.com)

这里选择适合自己环境的whl,然后本地安装whl就可以了。privateGPT require里面要求llma-cpp-python版本是0.1.68,别选最新版本。

 

Step 1: 克隆目录并安装依赖包  通过了。

Step 2: 修改配置文件

这一步没什么问题,把MODEL_PATH换成了自己用的文件。这里我是直接把bin复制到了privateGPT目录下,所以只填了文件名。

Step 3: 分析本地文件

运行ingest.py报错了,no module named torch_optim

这里又掉坑里了,第一反应是pip install torch.optim,结果安装成功,怎么看路径也是对的,但是报错还是一样。

正确的方法是uninstall torch和torch.optim,按pytorch官方的安装命令pip3 install torch torchvision torchaudio装好后,就没有报错了。

这次ingest.py终于执行成功了。

 

再执行privateGPT.py,经过漫长的等待,终于看到了提示符Enter a query:

随便输入个问题,马上就报错了

File "D:\Program Files\Python310\lib\site-packages\llama_cpp\llama.py", line 822, in _create_completion
raise ValueError(
ValueError: Requested tokens (1321) exceed context window of 512

分析了下,是llamacpp的n_ctx使用了默认值512。修改privategpt.py中,llamacpp这一行,增加了n_ctx=model_n_ctx,顺手也加了n_threads参数。

 

终于能跑起来了!

输入问题后,就听风扇狂转了几分钟,然后答案出来了,虽然结果的效果不怎么样,但是会给出文档来源,可以自己去核对。还是不错的。

实测LangChain策略stuff效果不如refine,参考原文中修改成refine后结果相关性比较高。

 

更新个问题,解析docx格式文件时,提示

zipfile.BadZipFile: File is not a zip file

解决方法:

新建一个py文件,内容

import nltk
nltk.download('punkt')
nltk.download('averaged_perceptron_tagger')

执行后,下载了nltk的包就不再报错了。下载过程报错就多试几次吧,直到成功为止。

posted @ 2023-08-18 10:55  Leon_DAL  阅读(453)  评论(0)    收藏  举报