PrivateGPT(如何部署及使用感受)

news/2024/11/30 10:30:49/

在这里插入图片描述

前言

最近在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的概念符合现在的趋势,在不断完善后,必将能够实现质的飞跃。

欢迎各位大佬随时指正。


http://www.ppmy.cn/news/176048.html

相关文章

go 的编译执行流程,build,run

build命令简述 在Golang中,build过程主要由go build执行。它完成了源码的编译与可执行文件的生成。 go build接收参数为.go文件或目录,默认情况下编译当前目录下所有.go文件。在main包下执行会生成相应的可执行文件,在非main包下&#xff0…

python中结果返回<built-in method reverse of list object at 0x000002032889FD48>

L2 [1,2,3] print(L2.reverse) 输出结果为 <built-in method reverse of list object at 0x000002032889FD48> 想要的结果为 [3, 2, 1] 错误原因&#xff1a;reverse不可以直接print 正确代码为 L2 [1,2,3] L2.reverse() print(L2)

单片机操作寄存器应用,8、16、32数按位翻转

概述 在单片机实际应用中&#xff0c;操作各种芯片&#xff0c;都是在操作寄存器。有些芯片比较特殊&#xff0c;如&#xff1a;低位在前高位在后&#xff0c;有时通过逻辑分析仪抓到波形又是反向。在编写程序时&#xff0c;每次需要都要换算&#xff0c;觉得非常麻烦&#xff…

c54x汇编语言程序设计,第4章_C54x的汇编语言程序设计.ppt

第4章TMS320C54x汇编语言程序设计,4.1概述4.1.1汇编语言源程序格式汇编语言程序以.asm为扩展名&#xff0c;可以用任意的编辑器编写源文件。一条语句占源程序的一行&#xff0c;长度可以是源文件编辑器格式允许的长度&#xff0c;但汇编器每行最多读200个字符。因此&#xff0c…

微机----------------存储器

目录 位扩展定义 字扩展定义1、线选法定义优点缺点 2、部分译码法定义 3、全译码法定义优点缺点 ⭐⭐⭐字位扩展定义问题 位扩展 定义 当存储芯片的存储字的数量 满足需要&#xff0c;而存储字长&#xff08;存储单元的位数&#xff09;不满足需要时&#xff0c;就需要增加存…

Windows保护模式(四)中断门陷阱门

中断门 Windows 系统没有使用调用门&#xff0c;但使用了中断门。 中断描述符表&#xff08;IDT&#xff09; 描述 IDT即中断描述符表&#xff0c;同GDT一样&#xff0c;IDT也是由一系列描述符组成的&#xff0c;每个描述符占8个字节 但要注意的是&#xff0c;IDT表中的第一…

Windows保护模式(五)任务段任务门

任务段 TSS&#xff08;Task-state segment&#xff09; 描述 TSS是一块内存 大小&#xff1a;104字节 TSS存储了一堆寄存器的值 TSS结构图 Previous Task Link&#xff1a;存放上一任务的 TSS 的段选择子&#xff0c; 以便在返回时确定切换任务前原来的 TSS 。SS0-SS2&…

HDS推出全闪存A系列阵列方案

HFS意味着HDS方面正大步走上与Pure以及EMC XtremIO正面对抗的发展道路。 HDS公司推出全闪存阵列层面的A级队伍 日立数据系统公司正着手利用市场营销攻势对XtremIO以及Pure Storage发起冲击&#xff0c;而其依凭的武器正是区别于现有VSP及HUS阵列的全新入门级全闪存阵列存储产品…