官网的接入本地模型的流程,写的太笼统且分散了,踩了无数坑,在阿里云上ubuntu20部署好了,以下是流程。
系统:ubuntu20(22也是一致的)
网络:需要魔法
cuda环境:cuda12.0
一、安装基本环境
1、安装git和git-lfs
apt install git
apt install git-lfs
2、安装docker以及docker-compose
apt update
#安装先决条件安装允许apt通过HTTPS使用仓库的软件包
apt install apt-transport-https ca-certificates curl software-properties-common#安装Docker的密钥
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -#添加Docker仓库
add-apt-repository "deb [arch=amd64] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable"#更新数据库
apt update#使用刚刚添加的库安装Docker
apt-cache policy docker-ce#安装docker
apt install docker-ce#启动docker
systemctl enable dockersystemctl start docker
#安装docker-compose
curl -L "https://github.com/docker/compose/releases/download/v2.6.1/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-composechmod +x /usr/local/bin/docker-compose
docker-compose version
3、在本地安装miniconda3或者python
wget https://repo.anaconda.com/miniconda/Miniconda3-latest-Linux-x86_64.sh
chmod +x Miniconda3-latest-Linux-x86_64.sh
./Miniconda3-latest-Linux-x86_64.sh
source ~/.bashrc
conda --version
4、拉取相关的代码和模型
git clone https://github.com/THUDM/chatglm2-6b
git clone https://huggingface.co/moka-ai/m3e-large
git clone https://github.com/labring/FastGPT
git clone https://github.com/songquanpeng/one-apicd chatglm2-6b && git lfs install && git lfs pull
cd m3e-large && git lfs install && git lfs pull
5、安装python环境
pip install torch==2.0.1+cu117 torchvision==0.15.2+cu117 torchaudio==2.0.2 --index-url https://download.pytorch.org/whl/cu117
cd chatglm2-6b
pip install -r requirements.txtcd /Fastgpt/files/models/ChatGLM2 #注释掉requirements.txt里面的torch
pip install -r requirements.txt
二、启动本地模型
#可以修改openai_api.py里面的模型权重路径,不修改的话是自己下载官方的,需要科学的环境
cd FastGPT/files/models/ChatGLM2python openai_api.py
可能会在知识库回答中出现问题,可以修改openai_api.py
#添加这个函数
def merge_content(messages):
merged_messages = []
system_content = ""
for message in messages:
if message.role == "system":
system_content += message.content
else:
if system_content:
merged_messages.append(ChatMessage(
role="system", content=system_content))
system_content = ""
merged_messages.append(message)
if system_content:
merged_messages.append(ChatMessage(
role="system", content=system_content))
return merged_messages
#原始代码,不用管,为了定位到需要修改的地方:
query = request.messages[-1].content
prev_messages = request.messages[:-1]#添加prev_messages = merge_content(prev_messages)
调用接口
curl --location --request POST 'http://localhost:6006/v1/embeddings' \
--header 'Authorization: Bearer sk-aaabbbcccdddeeefffggghhhiiijjjkkk' \
--header 'Content-Type: application/json' \
--data-raw '{
"model": "m3e",
"input": ["hello world"]
}'
curl --location --request POST 'http://localhost:6006/v1/chat/completions' \
--header 'Authorization: Bearer sk-aaabbbcccdddeeefffggghhhiiijjjkkk' \
--header 'Content-Type: application/json' \
--data-raw '{
"model": "chatglm2",
"messages": [{"role": "user", "content": "Hello!"}]
}'
三、启动OneAPI
docker配置本地代理,需要先开启科学上网环境
配置 Docker 代理创建目录mkdir -p /etc/systemd/system/docker.service.d
vim /etc/systemd/system/docker.service.d/http-proxy.conf
在http-proxy.conf文件中添加如下:
[Service]
Environment="HTTP_PROXY=http://192.168.253.2:7890"
Environment="HTTPS_PROXY=http://192.168.253.2:7890"
#直接运行这行命令,docker会自动下载justsong/one-api镜像
docker run --name one-api -d --restart always -p 3000:3000 -e TZ=Asia/Shanghai -v /home/data:/data justsong/one-api
通过http://localhost:3000/ root/123456 登录OneAPI,将模型接入到OneAPI
四、启动Fastgpt
修改FastGPT\files\deploy\fastgpt\docker-compose.yml这个文件
FastGPT\files\deploy\fastgpt\docker-compose.yml
fastgpt:
container_name: fastgpt
image: ghcr.io/labring/fastgpt:latest # git
# image: registry.cn-hangzhou.aliyuncs.com/fastgpt/fastgpt:latest # 阿里云 建议使用
ports:
- 3003:3000#需要修改端口号,因为3000已经被OneAPI使用了
environment:
# root 密码,用户名为: root
- DEFAULT_ROOT_PSW=1234
# 中转地址,如果是用官方号,不需要管
- OPENAI_BASE_URL=http://47.108.92.86:3000/v1 #OneAPi的地址
- CHAT_API_KEY=sk-bo0u9bqdXMrNnYNR059d29849f9148268c172505C0Fb2e05
修改FastGPT\files\deploy\fastgpt\config.json文件,添加
"ChatModels": [
//已有模型
{
"model": "chatglm2-6b-int4",
"name": "chatglm2",
"contextMaxToken": 8000,
"quoteMaxToken": 4000,
"maxTemperature": 1.2,
"price": 0,
"defaultSystem": ""
}
],"VectorModels": [
{
"model": "m3e",
"name": "M3E(测试使用)",
"price": 0.0,
"defaultToken": 500,
"maxToken": 1800
}
],
启动容器
cd FastGPT\files\deploy\fastgpt
docker-compose up -d #运行
docker-compose restart #重启
docker-compose down #关闭
可以看到有四个容器正在运行。进入fastgpt http://localhost:3003/ root/1234,选择知识库和对话引导
搭建完成