【大模型部署】小白教学,离线本地部署AI: chatglm3+one-api+fastGPT----Linux环境部署CPU运行---带资源包

YeMu11 2024-06-12 08:01:18 阅读 91

小白教学,离线本地部署AI: chatglm3+one-api+fastGPT----Linux环境部署CPU运行

在所有操作之前需在在线机器上按在线部署步骤部署一遍导出离线部署所需文件,在这里我为大家已经准备好了所需文件所以免去此步骤!

(由于部分文件过于庞大这里还是不放了,本文只提供了部分关键文件)

linux离线安装docker

从官方下载Docker安装包并上传至虚拟机Index of linux/static/stable/x86_64/

icon-default.png?t=N7T8

https://download.docker.com/linux/static/stable/x86_64/  解压安装包

sudo tar -xvf docker-25.0.3.tgz 将解压出来的docker文件内容移动到 /usr/bin/ 目录下

#移动命令 复制命令请用cpsudo mv docker/* /usr/bin/ 将docker注册为service服务

sudo vi /etc/systemd/system/docker.service 在打开的docker.service 文件中写入以下代码:

[Unit] # 服务的描述信息 Description=Docker Application Container Engine # 服务的文档链接 Documentation=https://docs.docker.com # 服务启动顺序,确保在网络和防火墙服务之后启动 After=network-online.target firewalld.service # 表明该服务希望与 network-online.target 同时启动 Wants=network-online.target [Service] # 服务类型,notify 表示当服务准备好后,会发送一个信号给 systemd Type=notify # 默认情况下不使用 systemd 管理 cgroups,因为还存在代理问题,并且 systemd 目前不支持 Docker 容器所需的 cgroup 功能集 # the default is not to use systemd for cgroups because the delegate issues still # exists and systemd currently does not support the cgroup feature set required # for containers run by docker ExecStart=/usr/bin/dockerd # 重新加载服务的命令 ExecReload=/bin/kill -s HUP $MAINPID # 由于内核中的会计开销,非零的 Limit* 会导致性能问题。我们建议使用 cgroups 进行容器本地会计。 # Having non-zero Limit*s causes performance problems due to accounting overhead # in the kernel. We recommend using cgroups to do container-local accounting. LimitNOFILE=infinity LimitNPROC=infinity LimitCORE=infinity # 如果你的 systemd 版本支持,可以取消注释 TasksMax。仅 systemd 226 及更高版本支持此功能。 # Uncomment TasksMax if your systemd version supports it. # Only systemd 226 and above support this version. #TasksMax=infinity # 启动超时时间 TimeoutStartSec=0 # 设置 delegate 为 yes,以便 systemd 不重置 Docker 容器的 cgroups # set delegate yes so that systemd does not reset the cgroups of docker containers Delegate=yes # 只杀死 Docker 进程,而不是 cgroup 中的所有进程 # kill only the docker process, not all processes in the cgroup KillMode=process # 如果 Docker 进程过早退出,则重新启动它 # restart the docker process if it exits prematurely Restart=on-failure # 在给定的时间间隔内,如果服务启动失败次数超过 StartLimitBurst 指定的值,则 systemd 会认为该服务启动失败 StartLimitBurst=3 # 在 StartLimitInterval 秒内,服务启动失败的次数达到 StartLimitBurst 指定的值后,系统会将服务标记为失败状态 StartLimitInterval=60s [Install] # 服务启动时想要的目标 WantedBy=multi-user.target 添加用户权限

# 使用sudo权限添加一个新的用户组名为docker sudo groupadd docker # 使用sudo权限将当前用户($USER代表当前用户)附加到docker用户组中 # -a选项表示将用户添加到附加组,而不是替换用户当前所在的所有组 # -G选项后面跟的是用户组名,这里指定为docker sudo usermod -aG docker $USER #用户授权sudo reboot #重启系统 验证:

systemctl status docker #查看Docker状态docker -v #查看Docker版本

导入镜像

 将镜像文件导入至本地机器

#导出命令: docker save 镜像名 -o 保存位置#导入命令:docker load -i 包名称.tar  在命令行输入以下命令导入(非本地部署的可以跳过此步及以上步骤,按后续步骤执行即可拉取镜像,接入接口即可):

sudo docker load -i ./one-api.tarsudo docker load -i ./fastgpt-v4.6.6.tarsudo docker load -i ./chatglm3.tarsudo docker load -i ./v0.5.0.tarsudo docker load -i ./fast-os.tarsudo docker load -i ./mongo.tar 验证:

sudo systemctl restart docker #重启dockersudo docker images #查看所有镜像

部署容器

这里先装一个fast-os的docker可视化容器,这个只是个人习惯使用可以不装.

Docker命令创建可视化容器(ip:8081):

sudo docker run --restart always --name fast -p 8081:8081 -d -v /var/run/docker.sock:/var/run/docker.sock wangbinxingkong/fast  Docker命令创建chatglm3容器(ip:8000):

sudo docker run --name chatglm3 -p 8000:8000 registry.cn-hangzhou.aliyuncs.com/ryyan/chatglm.cpp:chatglm3-q5_1#这个命令非后台,执行后进程会随命令行窗口关闭随之关闭,后续程序在新命令行窗口执行即可.  Docker命令创建one-api容器(ip:3000):

sudo docker run --name oneapi -d --restart always -p 3000:3000 -e TZ=Asia/Shanghai -v /home/ubuntu/data/one-api:/data justsong/one-api  创建成功后在浏览器访问端口进行程序内的配置(ip:3000):

 在浏览器打开的页面中点击令牌,输入默认用户名root,密码123456进行登录:

 在One API中点击渠道,创建新的渠道,均写入chatglm3名称可在后面避免错误.

 代理框里写IPV4地址,密钥那里是本地部署的话随便写

在 One API中点击令牌,选择添加新的令牌并设置为永不过期和无限额度.

Dock er命令创建FastGPT容器(ip:3020):

在任意目录中手动创建文件夹fastgpt,并在这个文件夹中手动创建docker-compose.yml和config.json文件(复制资源包内我之前写好的即可)

    因为是离线部署这里需要安装docker-compose

安装:

mv docker-compose /usr/local/bin/docker-compose #复制文件到指定目录chmod +x /usr/local/bin/docker-compose #给文件添加执行权限

验证:

docker-compose -v

    要在配置文件内修改自己的IP和生成的密钥

然后在此目录下打开终端输入以下命令(创建的fastgpt文件夹内打开命令行):

docker-compose bulid #依据docker-compose.yum生成镜像docker-compose up -d #启动容器加 -d代表后台守护进程启动

进入fastgpt的web页面:

输入默认的用户名root,密码1234

新建应用

    在左侧选择“AI模型”为chat3glm3,点击“保存并预览”,即可在右侧输入问题并得到回答:

然后就可以开始聊天了!



声明

本文内容仅代表作者观点,或转载于其他网站,本站不以此文作为商业用途
如有涉及侵权,请联系本站进行删除
转载本站原创文章,请注明来源及作者。