赞
踩
小白教学,离线本地部署AI: chatglm3+one-api+fastGPT----Linux环境部署CPU运行
在所有操作之前需在在线机器上按在线部署步骤部署一遍导出离线部署所需文件,在这里我为大家已经准备好了所需文件所以免去此步骤!
(由于部分文件过于庞大这里还是不放了,本文只提供了部分关键文件)
sudo tar -xvf docker-25.0.3.tgz
-
- #移动命令 复制命令请用cp
- sudo mv docker/* /usr/bin/
sudo vi /etc/systemd/system/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.tar
- sudo docker load -i ./fastgpt-v4.6.6.tar
- sudo docker load -i ./chatglm3.tar
- sudo docker load -i ./v0.5.0.tar
- sudo docker load -i ./fast-os.tar
- sudo docker load -i ./mongo.tar
- sudo systemctl restart docker #重启docker
- sudo docker images #查看所有镜像
这里先装一个fast-os的docker可视化容器,这个只是个人习惯使用可以不装.
sudo docker run --restart always --name fast -p 8081:8081 -d -v /var/run/docker.sock:/var/run/docker.sock wangbinxingkong/fast
- sudo docker run --name chatglm3 -p 8000:8000 registry.cn-hangzhou.aliyuncs.com/ryyan/chatglm.cpp:chatglm3-q5_1
- #这个命令非后台,执行后进程会随命令行窗口关闭随之关闭,后续程序在新命令行窗口执行即可.
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
在浏览器打开的页面中点击令牌,输入默认用户名root,密码123456进行登录:
在One API中点击渠道,创建新的渠道,均写入chatglm3名称可在后面避免错误.
代理框里写IPV4地址,密钥那里是本地部署的话随便写
在 One API中点击令牌,选择添加新的令牌并设置为永不过期和无限额度.
在任意目录中手动创建文件夹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,点击“保存并预览”,即可在右侧输入问题并得到回答:
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。