前言
最近在GitHub上出现了一个名为PrivateGPT的开源项目。该项目旨在为面临敏感数据、涉密信息或个人隐私问题的用户提供一种新的聊天工具。PrivateGPT具备完整的数据控制能力,使用户能够在本地环境中与强大的语言模型进行交互,无需上传数据到互联网或与他人分享。令人欣喜的是,PrivateGPT是一个免费的开源项目,任何人都可以在GitHub上下载和使用它。这种开放性使更多人能够受益于PrivateGPT的强大功能,并为其改进和发展做出贡献。
目前看github上类似的项目有两个,地址如下
imartinez/privateGPT SamurAIGPT/privateGPT
两个项目用的模型均为ggml-gpt4all-j-v1.3-groovy.bin,所以理论上效果是差不多的,但是,第二个有可视化界面,是的,它竟然是有前端界面的,那作为一个合格的前端er,那必须选它
一、部署
我是在ubuntu 18.04的服务器部署的,如果大家还没有python环境的话,可以先看下我的这篇文章ChatGLM-6B (介绍相关概念、基础环境搭建及部署),里边有详细的python环境搭建过程。接下来我们就正式开始privateGPT的搭建
1.clone项目
git clone https://github.com/SamurAIGPT/privateGPT
2.安装依赖
# Go to client folder and run the below commands
npm install
npm run dev
# Go to server folder and run the below commands
# 此步骤是有坑的,平坑步骤见第二小节
pip install -r requirements.txt
python privateGPT.py
3.查看项目
直接打开127.0.0.1:3000即可,界面如下
二、部署遇到的问题
1.python版本选择
尽量选择python3.8的环境,虽然README.me中写了“Requirements Python 3.8 or later“,但是在python3.10启动服务端是会报错的
2.python装包提示
......
Failed to build hnswlib llama-cpp-python
ERROR: Could not build wheels for hnswlib, llama-cpp-python, which is required to install pyproject.toml-based projects
解决方法:
将llama-cpp-python0.1.50和pyllamacpp2.3.0从requirements.txt移除,然后重新装包即可
3.执行python privateGPT.py报错
/lib/x86_64-linux-gnu/libm.so.6: version `GLIBC_2.29' not found
解决方法:
重新装GLIBC_2.29,但是装的时候需要特别谨慎,因为这个库是linux的核心库,一步小心可能会导致系统崩溃,以下解决方法仅供大家参考
# 下载编译glibc-2.29
wget -c https://ftp.gnu.org/gnu/glibc/glibc-2.29.tar.gz
tar -zxvf glibc-2.29.tar.gz
mkdir glibc-2.29/build
cd glibc-2.29/build
../configure --prefix=/opt/glibc
# 执行此步骤可能导致类似于Makeconfig:42: *** missing separator.的错误,应该是上一步执行因部分包版本比较旧导致失败,直接apt update下那两包即可
make
make install
# 建立软链
cp /opt/glibc/lib/libm-2.29.so /lib/x86_64-linux-gnu/
ln -sf libm-2.29.so libm.so.6
# 查看结果
strings /lib/x86_64-linux-gnu/libm.so.6 | grep GLIBC_
4.在局域网中无法访问前端
我是把这个项目放到了服务器,然后用我本地的电脑去链接查看,发现后端接口均无法访问。
解决方案:
把client/components/MainContainer.js和client/components
/ConfigSideNav.js文件中的http://localhost换成服务器ip即可
三、使用感受
我是将他自己的README.md进行上传,然后进行提问,开始是用中文,发现他是不支持的,服务端报错如下:
然后使用提问了两个引文问题
1.how to run
2.what the Requirements in the docs
问题来源于文档内容,内容如下
回答如下:大家可以自行感受下
不太确定是不是我的打开方式不对,感觉这个回答简直离谱,如果有大佬知道是什么问题,希望可以指点一下
总结
总的起来,我认为目前的PrivateGPT在回答简单的问题时表现不佳,比ChatGPT差不少。但我仍然认为PrivateGPT的概念符合现在的趋势,在不断完善后,必将能够实现质的飞跃。
欢迎各位大佬随时指正。