赞
踩
本次安装使用Docker的方式,在linux服务器上执行,尽可能的简化操作流程。其他操作流程暂未实践过。仅作为记录使用。
#安装Docker
curl -fsSL https://get.docker.com | bash -s docker --mirror Aliyun
systemctl enable --now docker
#安装Docker-compose
curl -L https://github.com/docker/compose/releases/download/2.20.3/docker-compose-`uname -s`-`uname -m` -o /usr/local/bin/docker-compose
chmod +x /usr/local/bin/docker-compose
#验证安装
docker -v
docker-compose -v
创建FastGPT文件并拉取docker-compose.yml和config.json两个文件。这里需要注意,下载下来的docker-compose文件里mongo,pg两个数据库有两个镜像源,当下载的特别慢的时候,可以更换阿里云的。下载的文件里面有写,注意查看。
mkdir fastgpt
cd fastgpt
curl -O https://raw.githubusercontent.com/labring/FastGPT/main/files/deploy/fastgpt/docker-compose.yml
curl -O https://raw.githubusercontent.com/labring/FastGPT/main/projects/app/data/config.json
docker-compose中提到的几个端口没有被占用的情况下,只需要修改docker-compose中的OPENAI_BASE_URL和CHAT_API_KEY就行。因为我本地也部署了one-api服务,所以这两个值,填写one-api上的即可。
下面这两步很重要,如果不和文档上的一样,有可能会执行不了,我部署了两遍才能够正常执行。
cd fastgpt
# 创建 mongo 密钥
openssl rand -base64 756 > ./mongodb.key
# 600不行可以用chmod 999
chmod 600 ./mongodb.key
chown 999:root ./mongodb.key
# 启动容器
docker-compose pull
docker-compose up -d
FastGPT 4.6.8 后使用了 MongoDB 的事务,需要运行在副本集上。副本集没法自动化初始化,需手动操作。这是原文档中的描述,执行这个的前提是docker ps 查看mongo是否已经运行,如果没有运行执行下面的操作也是不起作用。
# 查看 mongo 容器是否正常运行
docker ps
# 进入容器
docker exec -it mongo bash
# 连接数据库
mongo -u myname -p mypassword --authenticationDatabase admin
# 初始化副本集。如果需要外网访问,mongo:27017 可以改成 ip:27017。但是需要同时修改 FastGPT 连接的参数(MONGODB_URI=mongodb://myname:mypassword@mongo:27017/fastgpt?authSource=admin => MONGODB_URI=mongodb://myname:mypassword@ip:27017/fastgpt?authSource=admin)
rs.initiate({
_id: "rs0",
members: [
{ _id: 0, host: "mongo:27017" }
]
})
# 检查状态。如果提示 rs0 状态,则代表运行成功
rs.status()
现在就可以通过本地ip:3000来访问了。用户名和密码都在docker-compose文件中。
oneapi的部署比较简单,只需要执行这个docker命令就可以。
docker run --name one-api -d --restart always -p 13000:3000 -e TZ=Asia/Shanghai -v /home/ubuntu/data/one-api:/data justsong/one-api
这里解释一下代码!
因为前面我们已经在docker中部署了fastgpt了,用的是‘3000’端口!你往后部署任何的docker镜像,要注意端口不能重复的,否则会占用报错!
所以这里one api,我们用的是‘13000’端口!这样就不冲突了!
docker run:用于启动一个新容器的命令。
--name one-api:为容器指定一个名称,便于识别。
-d:表示以分离模式运行容器,使得容器在后台运行。
--restart always:设置容器的重启策略,当容器退出时,自动重启。
-p 13000:3000:端口映射,将主机的 13000 端口映射到容器的 3000 端口。
-e TZ=Asia/Shanghai:设置容器的时区为上海时区。
-v /home/ubuntu/data/one-api:/data:volume 映射,将主机的 /home/ubuntu/data/one-api 目录映射到容器的 /data 目录。
justsong/one-api:要运行的容器镜像名称,该镜像包含了 one-api 应用程序。
运行后就可以登录了,使用本地ip:13000就可以进入了,帐号:root,密码:123456,登录系统会让你修改密码,需要自行修改。
在oneapi系统界面点击“令牌”添加。
随便输入一个名称就可以,过期时间选择永不过期+无限额度。这样API key的访问量就是不限量的了。如果你是转发给其他人使用,你可以选择时间可额度,进行购买即可。
点击“提交”返回。这时候就可以看到已经创建成功了,点击“复制”就可以得到API key了。
打开fastgpt的目录找到docker-compose文件,找到OPENAI_BASE_URL和CHAT_API_KEY将刚才oneapi上的填入即可。这里注意http和https,我看到好多文档上写的是https,我在配置完后无法正常运行,改为http后就可以,这里需要注意。
到这里还没有结束,需要在fastgpt目录下执行这两个命令才可以。
docker-compose pull
docker-compose up -d
当出现上面的时候就表示已经配置成功,可以将oneapi上的模型接入到fastgpt了。
这里需要已经有本地运行的千问模型,具体这里就不在描述了。
打开oneapi界面,找到“渠道”,进入后选择“添加新的渠道”。
依次填写需要内容就可以,类型选择“自定义渠道”,BaseUrl填写自己的模型地址加端口,名称为自己模型名称,分组默认不需要更改,模型和名称相同就行,密钥可以不用填写。
填写完成后,点击提交,在渠道页面点击绿色按钮“测试”他会向你的模型后台发送一条请求,你能够在后台看到200 ok字样,说明接入成功。
在部署fastgpt的时候下载了两个文件,一个docker-compose和一个config.json,选择config.json把模型信息加入到配置文件中。
将红色框上面的复制一个下来就好,填写刚才在oneapi上填写的模型和名称,不要忘了大括号前面有一个“,”,然后还是docker ps 将fastgpt这个容器重新启动一下。进入fastgpt界面找到下面位置就可以看到刚才添加的模型了。
这个时候已经把模型和fastgpt打通了,可以进行测试了。
这里可以使用gpu和cpu两种方式,gpu的能够快一点,cpu也能够运行。
#我在直接运行的时候无法获取到镜像,可以先将镜像拉下来
docker pull registry.cn-hangzhou.aliyuncs.com/fastgpt_docker/m3e-large-api:latest
#然后使用下面命令直接运行,这个是gpu模式
docker run -d -p 6008:6008 --gpus all registry.cn-hangzhou.aliyuncs.com/fastgpt_docker/m3e-large-api:latest
#这个是cpu模式
docker run -d -p 6008:6008 registry.cn-hangzhou.aliyuncs.com/fastgpt_docker/m3e-large-api:latest
这里在介绍另一种方式,上面的方式是无需梯子直接下载镜像就可以,下面的方式需要手动将模型下载下来。
这个就是chatglm3的模型操作,通过github下载chatglm3的源码。
#下载chatglm3代码
git clone https://github.com/THUDM/ChatGLM3.git
#找到需要的
cd /openai_api_demo
#找到api_server.py文件
vim api_server.py
#将其中调用聊天模型的部分注释
图未截全,需要将这个方法下的所有都注释掉,还有main方法中的load llm部分也注掉。
将端口改为6008或者其他,因为8000已经被占用了,这个过程需要自己创建python运行环境,否则不会运行成功。
执行下面命令将程序运行
nohup python api_server.py >./m3elog.log 2>&1 &
这种方式比较麻烦,仅做记录,可以选择上面docker方式即可。
下面进入到oneapi界面,和配置千问模型一样,填写内容即可。
这里需要提一下,为什么没强调测试呢,因为我这个版本现在有一个bug,点击测试会出现404,其实是通的,这个需要注意。
上面配置完成后,还要到fastgpt文件下的config.json去增加向量模型。还是复制上面的就可以,把模型和名称填一下就可以了。
重启fastgpt的容器,我们登录到fastgpt上就可以看到已经有m3e模型了。
然后我们就可以导入文档进行切片,制作知识库了。
到这里模型部署已经结束了,如果有哪里错误,最好的办法就是重新安装,否则会陷入各种未知的错误里。
最后讲一下我是需要通过api进行调用访问的,fastgpt提供了接口方式,直接按照官方的来就行了,直接按照聊天模型调用就能够使用知识库的内容进行作答了,不过现在测下来感觉回答的还不是太准,也有可能是模型的问题,这个还有待后续测试。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。