当前位置:   article > 正文

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

chatglm linux本地部署one-api

小白教学,离线本地部署AI: chatglm3+one-api+fastGPT----Linux环境部署CPU运行
在所有操作之前需在在线机器上按在线部署步骤部署一遍导出离线部署所需文件,在这里我为大家已经准备好了所需文件所以免去此步骤!

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

  • linux离线安装docker

  •  解压安装包
sudo tar -xvf docker-25.0.3.tgz
  • 将解压出来的docker文件内容移动到 /usr/bin/ 目录下
  1. #移动命令 复制命令请用cp
  2. sudo mv docker/* /usr/bin/
  • 将docker注册为service服务
sudo vi /etc/systemd/system/docker.service
  • 在打开的docker.service 文件中写入以下代码:
  1. [Unit]
  2. # 服务的描述信息
  3. Description=Docker Application Container Engine
  4. # 服务的文档链接
  5. Documentation=https://docs.docker.com
  6. # 服务启动顺序,确保在网络和防火墙服务之后启动
  7. After=network-online.target firewalld.service
  8. # 表明该服务希望与 network-online.target 同时启动
  9. Wants=network-online.target
  10. [Service]
  11. # 服务类型,notify 表示当服务准备好后,会发送一个信号给 systemd
  12. Type=notify
  13. # 默认情况下不使用 systemd 管理 cgroups,因为还存在代理问题,并且 systemd 目前不支持 Docker 容器所需的 cgroup 功能集
  14. # the default is not to use systemd for cgroups because the delegate issues still
  15. # exists and systemd currently does not support the cgroup feature set required
  16. # for containers run by docker
  17. ExecStart=/usr/bin/dockerd
  18. # 重新加载服务的命令
  19. ExecReload=/bin/kill -s HUP $MAINPID
  20. # 由于内核中的会计开销,非零的 Limit* 会导致性能问题。我们建议使用 cgroups 进行容器本地会计。
  21. # Having non-zero Limit*s causes performance problems due to accounting overhead
  22. # in the kernel. We recommend using cgroups to do container-local accounting.
  23. LimitNOFILE=infinity
  24. LimitNPROC=infinity
  25. LimitCORE=infinity
  26. # 如果你的 systemd 版本支持,可以取消注释 TasksMax。仅 systemd 226 及更高版本支持此功能。
  27. # Uncomment TasksMax if your systemd version supports it.
  28. # Only systemd 226 and above support this version.
  29. #TasksMax=infinity
  30. # 启动超时时间
  31. TimeoutStartSec=0
  32. # 设置 delegate 为 yes,以便 systemd 不重置 Docker 容器的 cgroups
  33. # set delegate yes so that systemd does not reset the cgroups of docker containers
  34. Delegate=yes
  35. # 只杀死 Docker 进程,而不是 cgroup 中的所有进程
  36. # kill only the docker process, not all processes in the cgroup
  37. KillMode=process
  38. # 如果 Docker 进程过早退出,则重新启动它
  39. # restart the docker process if it exits prematurely
  40. Restart=on-failure
  41. # 在给定的时间间隔内,如果服务启动失败次数超过 StartLimitBurst 指定的值,则 systemd 会认为该服务启动失败
  42. StartLimitBurst=3
  43. # 在 StartLimitInterval 秒内,服务启动失败的次数达到 StartLimitBurst 指定的值后,系统会将服务标记为失败状态
  44. StartLimitInterval=60s
  45. [Install]
  46. # 服务启动时想要的目标
  47. WantedBy=multi-user.target
  • 添加用户权限
  1. # 使用sudo权限添加一个新的用户组名为docker
  2. sudo groupadd docker
  3. # 使用sudo权限将当前用户($USER代表当前用户)附加到docker用户组中
  4. # -a选项表示将用户添加到附加组,而不是替换用户当前所在的所有组
  5. # -G选项后面跟的是用户组名,这里指定为docker
  6. sudo usermod -aG docker $USER #用户授权
  7. sudo reboot #重启系统
  • 验证:
  1. systemctl status docker #查看Docker状态
  2. docker -v #查看Docker版本
  • 导入镜像

  •  将镜像文件导入至本地机器
  1. #导出命令: docker save 镜像名 -o 保存位置
  2. #导入命令:docker load -i 包名称.tar
  •  在命令行输入以下命令导入(非本地部署的可以跳过此步及以上步骤,按后续步骤执行即可拉取镜像,接入接口即可):
  1. sudo docker load -i ./one-api.tar
  2. sudo docker load -i ./fastgpt-v4.6.6.tar
  3. sudo docker load -i ./chatglm3.tar
  4. sudo docker load -i ./v0.5.0.tar
  5. sudo docker load -i ./fast-os.tar
  6. sudo docker load -i ./mongo.tar
  • 验证:
  1. sudo systemctl restart docker #重启docker
  2. sudo 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):
  1. sudo docker run --name chatglm3 -p 8000:8000 registry.cn-hangzhou.aliyuncs.com/ryyan/chatglm.cpp:chatglm3-q5_1
  2. #这个命令非后台,执行后进程会随命令行窗口关闭随之关闭,后续程序在新命令行窗口执行即可.
  •  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

安装:

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

验证:

docker-compose -v

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

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

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

进入fastgpt的web页面:

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

新建应用

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

然后就可以开始聊天了!

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/菜鸟追梦旅行/article/detail/487294
推荐阅读
相关标签
  

闽ICP备14008679号