在线医生——二总体框架和工具介绍

本文详细解析了在线医生系统的总体架构,包括在线部分的Werobot服务、逻辑服务、模型服务等,以及离线部分的数据采集、实体抽取流程。介绍了Flask、Redis、Gunicorn、Supervisor、Neo4j等关键工具的使用。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

2.1 在线医生的总体架构

 

  • 架构图分析:
    • 整个项目分为: 在线部分和离线部分
    • 在线部分包括: werobot服务模块, 主要逻辑服务模块, 句子相关模型服务模块, 会话管理模块(redis), 图数据库模块以及规则对话/Unit模块.
    • 离线部分包括: 结构与非结构化数据采集模块, NER模型使用模块, 以及实体审核模型使用模块.
    • 在线部分数据流: 从用户请求开始, 通过werobot服务, 在werobot服务内部请求主服务, 在主服务中将调用会话管理数据库redis, 调用句子相关模型服务, 以及调用图数据库, 最后将查询结果输送给对话规则模版或者使用Unit对话API回复.
    • 离线部分数据流: 从数据采集开始, 将获得结构化和非结构化的数据, 对于结构化数据将直接使用实体审核模型进行审核, 然后写入图数据库; 对于非结构化数据, 将使用NER模型进行实体抽取, 然后通过实体审核后再写入图数据库.

2.2 总体架构中的工具介绍

学习目标:

  • 了解总体架构中使用了哪些工具.
    • Flask web服务框架
    • Redis数据库
    • Gunicorn服务组件
    • Supervisor服务监控器
    • Neo4j图数据库
  • 掌握总体架构中各个工具的简介, 作用, 安装和基本使用方法.

2.2.1Flask web服务框架:

 

2.2.2Redis数据库

安装:参考https://www.cnblogs.com/langtianya/p/5187681.html

            https://askubuntu.com/questions/868848/how-to-install-redis-on-ubuntu-16-04

  • curl -O http://download.redis.io/redis-stable.tar.gz
  • /home/username/redis-stable中:tar xzvf redis-stable.tar.gz
  • cd redis-stabel中
  • make
  • make test
  • sudo make install
  • 启动redis服务,使用默认配置(redis.conf);通过启动参数告诉redis使用指定配置文件使用下面命令启动。
  • cd src

  • ./redis-server

  • ./redis-server redis.conf

  • 启动redis服务进程后,就可以使用测试客户端程序redis-cli和redis服务交互了。 比如:
  • $ cd src
    $ ./redis-cli
    redis> set foo bar
    OK
    redis> get foo
    "bar"

  • 启动redis-server之后可以通过redis_demo.py文件

  • # coding=utf-8
    # redis配置
    REDIS_CONFIG = {
         "host": "0.0.0.0",
         "port": 6379
    }
    
    # 导入redis驱动
    import redis
    
    # 创建一个redis连接池
    pool = redis.ConnectionPool( **REDIS_CONFIG)
    # 从连接池中初始化一个活跃的连接对象
    r = redis.StrictRedis(connection_pool=pool)
    # hset表示使用hash数据结构进行数据写入
    # uid代表某个用户的唯一标识
    uid = "8888"
    # key是需要记录的数据描述
    key = "该用户最后一次说的话:".encode('utf-8')
    # value是需要记录的数据具体内容
    value = "再见, 董小姐".encode('utf-8')
    r.hset(uid, key, value)
    
    
    # hget表示使用hash数据结构进行数据读取
    result = r.hget(uid, key)
    print(result.decode('utf-8'))

    输出:再见,董小姐

  • 2.2.3 Gunicorn服务组件:

简介:

Gunicorn是一个被广泛使用的高性能的Python WSGI UNIX HTTP服务组件(WSGI: Web Server Gateway Interface),移植自Ruby的独角兽(Unicorn )项目,具有使用非常简单,轻量级的资源消耗,以及高性能等特点.

作用:

  • 在项目中, Gunicorn和Flask框架一同使用, 能够开启服务, 处理请求,因其高性能的特点能够有效减少服务丢包率.

安装:

# 使用pip安装gunicorn pip install gunicorn==20.0.4

基本使用

# 使用其启动Flask服务: gunicorn -w 1 -b 0.0.0.0:5000 app:app # -w 代表开启的进程数, 我们只开启一个进程 # -b 服务的IP地址和端口 # app:app 是指执行的主要对象位置, 在app.py中的app对象 # 如果使其在后台运行可使用: # nohup gunicorn -w 1 -b 0.0.0.0:5001 app:app &

2.2.4Supervisor服务监控

简介:

  • Supervisor是用Python开发的一个client/server服务,是Linux/Unix系统下的一个进程管理工具。它可以很方便的监听、启动、停止、重启一个或多个进程, 并守护这些进程

作用:

  • 在项目中, Supervisor用于监控和守护主要逻辑服务和redis数据库服务.

2.2.5neo4j  (重要)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值