weida_doc/维达部署手册.md

3.3 KiB
Raw Permalink Blame History

维达后台服务迁移文档

1. 概述

问答服务由三部分组成:

  • 运行环境

  • 服务代码

  • AI模型

本项目根目录组织如下:

文件/文件夹 内容
维达迁移文档.md 迁移文档
weida_konwledge_image.tar 维达运行环境镜像
gpts 服务代码目录
GLM-4 AI模型目录

部署的时候需要将本文件夹所有内容拷贝到维达服务器,然后按下面步骤逐一运行。

2. 运行环境

运行环境以docker容器的形式运行。主要包含

  • 主系统: ubuntu 20.04

  • python环境mini-conda

  • 数据库: mysql(docker 内部3306端口root/zaq12wsx@weida)

  • 各种其他环境(详见下表)

环境 状态 说明
mysql 已部署 关系型数据库服务,存储问答对
faiss-cpu 已部署 向量库,存储文本向量
supervisord 已部署 管理和监控进程
conda 已部署 支持多种编程语言的包管理和环境管理系统

启动镜像

docker load -i ./weida_knowledge_image.tar
docker run -it -p 5103:5103 --name weida_knowledge -v ./gpts:/workspace/gpts ubuntu /bin/bash
  • 这里要注意端口映射。5103是一个例子实际上要根据维达服务器的具体端口情况设置。

  • 路径映射也是同样的要将本项目的根目录下的gpts全部映射过去。

2. 服务代码

服务代码包含了文件上传、问答对拆分、知识库入库等操作,要用到几个自然语言处理模块(在拷贝到维达内部服务器时千万不能漏掉)。目录结构如下:

文件/文件夹 内容
gpt_server 主项目目录
qa_content 向量库内容目录
qa_store 向量库向量目录

其中gpt_server为项目主目录其主要内容和结构如下

文件文件夹 内容
mainserver.py 主服务入口文件
supervisord.conf 托管后台配置文件
GanymedNil 词向量化模型文件夹
Helsinki-NLP 翻译模型文件夹
nltk_data 自然语言处理包

3. 开启服务

3.1 进入容器内部

以下操作均在容器内部进行

docker attach 容器ID

# 检查mysql是否运行
mysql -u root

# 如果没有启动
service mysql start
 

# 检查代码路径是否正确映射进来
cd /workspace/gpts/gpt_server
ls

如果检查通过,继续:

#激活主服务环境
conda activate weida_qa
 
#运行主服务
nohup python mainserver.py >server.log &

最后在容器中按ctrl + p + q退出当前容器。注意不能使用exit退出容器。

4. 启动AI模型

cd /workspace/GLM-4
conda activate glm4
nohup python api.py > server.log &

5. 注意事项

由于代码是放在宿主机而不是直接放在容器里的,而通过路径映射的宿主机代码路径和容器内部容器路径是实时同步的,因此查看日志不必登录容器。只需要在代码文件夹内查看即可。

  • server.log 主服务日志,用于记录与主服务相关的日志

  • 如果要重启整个服务,步骤如下

    1. 停止mainserver.py进程 ps aux | grep mainserver.py, kill -0 进程号
    2. 停止api.py进程 ps aux | grep api.py, kill -0 进程号
    3. 启动mainserver.py进程 nohup python mainserver.py >server.log &
    4. 启动api.py进程 nohup python api.py > server.log &