• 注意事项:
      • 这个安装手册只适用于操作系统: centos7.

    • 安装部署步骤:

    • 1: 拷贝必备文件.

    • 2: 安装Anaconda科学计算环境, 包括python2, pip, pandas, numpy, matplotplib等科学计算包.
      1. # 将环境包安装在/root/目录下
      2. cd /root
      3. curl -O https://repo.anaconda.com/archive/Anaconda3-5.2.0-Linux-x86_64.sh
      4. sh Anaconda3-2019.07-Linux-x86_64.sh
      5. # 配置~/.bashrc, 添加一行: export PATH=/root/anaconda/bin/:$PATH

    • 3: 安装项目需要的若干独立工具.
      1. # 安装Flask
      2. pip install Flask==1.1.1
      3. # 安装Redis数据库
      4. yum install redis -y
      5. # 安装python中的redis驱动
      6. pip install redis
      7. # 安装gunicorn
      8. pip install gunicorn==20.0.4
      9. # 安装supervisor
      10. yum install supervisor -y
      11. # 安装lsof
      12. yum install lsof -y

    • 4: 安装项目需要的重要工具Pytorch.
      1. # 安装pytorch
      2. pip install pytorch

    • 5: 安装图数据库neo4j.
      1. # 第一步: 将neo4j安装信息载入到yum检索列表
      2. cd /tmp
      3. wget http://debian.neo4j.org/neotechnology.gpg.key
      4. rpm --import neotechnology.gpg.key
      5. cat <<EOF> /etc/yum.repos.d/neo4j.repo
      6. # 写入下面内容
      7. [neo4j]
      8. name=Neo4j RPM Repository
      9. baseurl=http://yum.neo4j.org/stable
      10. enabled=1
      11. gpgcheck=1
      12. # 第二步: 使用yum install命令安装
      13. yum install neo4j-3.3.5
      14. # 第三步: 使用自己的配置文件
      15. cp /data/neo4j.conf /etc/neo4j/neo4j.conf

    • 6: 启动neo4j图数据库并查看状态.
      1. # 启动neo4j命令
      2. neo4j start
      3. # 查看状态命令
      4. neo4j status

    • 7: 使用脚本生成图谱.
      1. # 执行已经写好的脚本代码, 将数据写入到neo4j数据库中
      2. python /data/doctor_offline/neo4j_write.py

    • 8: 使用脚本训练模型.
      1. # 在线部分只有一个模型bert-chinese
      2. cd /data/doctor_online/bert_server/
      3. python train.py

    • 9: 以挂起的方式启动werobot服务.
      1. # 启动werobot服务, 使得用户可以通过微信接口和AI医生完成对话.
      2. nohup python /data/wr.py &

    • 10: 使用supervisor启动主要逻辑服务及其redis服务.
      1. # supervisor配置文件简要分析
      2. # 文件路径位置/data/doctor_online/main_serve/supervisor.conf
      3. ; 使用gunicorn启动基于Flask框架的主要逻辑服务
      4. [program:main_server]
      5. command=gunicorn -w 1 -b 0.0.0.0:5000 app:app ; the program (relative uses PATH, can take args)
      6. stopsignal=QUIT ; signal used to kill process (default TERM)
      7. stopasgroup=false ; send stop signal to the UNIX process group (default false)
      8. killasgroup=false ; SIGKILL the UNIX process group (def false)
      9. stdout_logfile=./log/main_server_out ; stdout log path, NONE for none; default AUTO
      10. stdout_logfile_maxbytes=1MB ; max # logfile bytes b4 rotation (default 50MB)
      11. stderr_logfile=./log/main_server_error ; stderr log path, NONE for none; default AUTO
      12. stderr_logfile_maxbytes=1MB ; max # logfile bytes b4 rotation (default 50MB)
      13. ; 启动redis服务,作为会话管理数据库
      14. [program:redis]
      15. command=redis-server

    1. # 使用supervisord命令, 读取指定目录下的文件
    2. supervisord -c /data/doctor_online/main_serve/supervisor.conf

    1. # 查看启动的服务状态
    2. supervisorctl status

    • 11: 以挂起的方式启动句子相关模型服务.
      1. # 以挂起的方式启动服务, 代码已经预先编写好
      2. # 脚本start.sh中的内容是 gunicorn -w 1 -b 0.0.0.0:5001 app:app
      3. nohup sh /data/doctor_online/bert_serve/start.sh &

    • 12: 启动和查看neo4j服务(图数据查询):
      1. # neo4j服务在之前应该一直处在启动状态
      2. neo4j start
      3. # 查看服务启动状态:
      4. neo4j status

    • 13: 进行测试.
      1. 测试1: 关注公众号(新用户), 发送"我最近有些腹痛".
      2. 测试2: (老用户)发送"我最近有些腹痛"后, 继续发送"并且左腹部有一些红点".