- 注意事项:
- 这个安装手册只适用于操作系统: centos7.
- 安装部署步骤:
- 1: 拷贝必备文件.
- 2: 安装Anaconda科学计算环境, 包括python2, pip, pandas, numpy, matplotplib等科学计算包.
# 将环境包安装在/root/目录下
cd /root
curl -O https://repo.anaconda.com/archive/Anaconda3-5.2.0-Linux-x86_64.sh
sh Anaconda3-2019.07-Linux-x86_64.sh
# 配置~/.bashrc, 添加一行: export PATH=/root/anaconda/bin/:$PATH
- 3: 安装项目需要的若干独立工具.
# 安装Flask
pip install Flask==1.1.1
# 安装Redis数据库
yum install redis -y
# 安装python中的redis驱动
pip install redis
# 安装gunicorn
pip install gunicorn==20.0.4
# 安装supervisor
yum install supervisor -y
# 安装lsof
yum install lsof -y
- 4: 安装项目需要的重要工具Pytorch.
# 安装pytorch
pip install pytorch
- 5: 安装图数据库neo4j.
# 第一步: 将neo4j安装信息载入到yum检索列表
cd /tmp
wget http://debian.neo4j.org/neotechnology.gpg.key
rpm --import neotechnology.gpg.key
cat <<EOF> /etc/yum.repos.d/neo4j.repo
# 写入下面内容
[neo4j]
name=Neo4j RPM Repository
baseurl=http://yum.neo4j.org/stable
enabled=1
gpgcheck=1
# 第二步: 使用yum install命令安装
yum install neo4j-3.3.5
# 第三步: 使用自己的配置文件
cp /data/neo4j.conf /etc/neo4j/neo4j.conf
- 6: 启动neo4j图数据库并查看状态.
# 启动neo4j命令
neo4j start
# 查看状态命令
neo4j status
- 7: 使用脚本生成图谱.
# 执行已经写好的脚本代码, 将数据写入到neo4j数据库中
python /data/doctor_offline/neo4j_write.py
- 8: 使用脚本训练模型.
# 在线部分只有一个模型bert-chinese
cd /data/doctor_online/bert_server/
python train.py
- 9: 以挂起的方式启动werobot服务.
# 启动werobot服务, 使得用户可以通过微信接口和AI医生完成对话.
nohup python /data/wr.py &
- 10: 使用supervisor启动主要逻辑服务及其redis服务.
# supervisor配置文件简要分析
# 文件路径位置/data/doctor_online/main_serve/supervisor.conf
; 使用gunicorn启动基于Flask框架的主要逻辑服务
[program:main_server]
command=gunicorn -w 1 -b 0.0.0.0:5000 app:app ; the program (relative uses PATH, can take args)
stopsignal=QUIT ; signal used to kill process (default TERM)
stopasgroup=false ; send stop signal to the UNIX process group (default false)
killasgroup=false ; SIGKILL the UNIX process group (def false)
stdout_logfile=./log/main_server_out ; stdout log path, NONE for none; default AUTO
stdout_logfile_maxbytes=1MB ; max # logfile bytes b4 rotation (default 50MB)
stderr_logfile=./log/main_server_error ; stderr log path, NONE for none; default AUTO
stderr_logfile_maxbytes=1MB ; max # logfile bytes b4 rotation (default 50MB)
; 启动redis服务,作为会话管理数据库
[program:redis]
command=redis-server
# 使用supervisord命令, 读取指定目录下的文件
supervisord -c /data/doctor_online/main_serve/supervisor.conf
# 查看启动的服务状态
supervisorctl status
- 11: 以挂起的方式启动句子相关模型服务.
# 以挂起的方式启动服务, 代码已经预先编写好
# 脚本start.sh中的内容是 gunicorn -w 1 -b 0.0.0.0:5001 app:app
nohup sh /data/doctor_online/bert_serve/start.sh &
- 12: 启动和查看neo4j服务(图数据查询):
# neo4j服务在之前应该一直处在启动状态
neo4j start
# 查看服务启动状态:
neo4j status
- 13: 进行测试.
测试1: 关注公众号(新用户), 发送"我最近有些腹痛".
测试2: (老用户)发送"我最近有些腹痛"后, 继续发送"并且左腹部有一些红点".