您当前的位置:首页 > 电脑百科 > 人工智能

如何将Rasa聊天机器人框架部署到linux,简明教程(适合收藏)

时间:2020-06-22 10:37:56  来源:  作者:

前言

这几天一直在研究linux环境下安装配置rasa框架,顺便整理一下安装步骤,以后可以查看。

 

建议:本文适合收藏,里面每个步骤都是实际开发中遇到的,这里不涉及Rasa聊天机器人框架的源码,因为源码在网上获取非常方便。这里只是单纯介绍部署的步骤,以及如何解决一些遇到的问题。

本文不建议直接拿来用,因为网上有很多介绍关于rasa机器人的部署,特别是对于windows环境下的部署,已经有很多成熟的部署步骤。但是对于linux部署,小编是一直找不到合适的部署方法。

于是,小编通过不断尝试,不断总结,才有了本文。所以,大家可以先在windows下部署,如果成功了,想移植到linux环境下,可以回头来看看这篇文章,相信对你有很大的帮助。

如何将Rasa聊天机器人框架部署到linux,简明教程(适合收藏)

 

环境: centos7、 Python 3.6.2
目标: 安装flask+uwsgi+Rasa1.10.2+MITIE+tensorflow2.0+supervisor服务

 

linux虚拟环境安装

 

备注: 没有安装pyenv, 可以在linux下安装pyenv。 pyenv 类似于windows下的Anaconda,主要用于python的版本管理。

 

  1. 查看pyenv托管了哪些python版本
 $ pyenv versions
如何将Rasa聊天机器人框架部署到linux,简明教程(适合收藏)

 

 

  1. 使用pyenv安装python环境(已经安装好的可以跳过)
 $ pyenv install -v 3.6.2

 

  1. 安装时报错ModuleNotFoundError: No module named '_ctypes'的解决办法
yum install libffi-devel 

 

项目配置

 

  1. 从git上拉下项目( git-url 替换成实际的git地址)
git clone -b master git-url

 

  1. 进入代码根目录,新建虚拟环境
# 当前目录 
$cd chatBotRasa
如何将Rasa聊天机器人框架部署到linux,简明教程(适合收藏)

 

 

  1. 创建虚拟环境
# 当前python环境切换到3.6.2
$ pyenv global 3.6.2


# 在当前项目根目录下新建虚拟环境目录
$ virtualenv venv_rasa_362


# 切回之前的python环境(保证原始环境不变, 假设原始环境是python 3.6.0)
$ pyenv global 3.6.0

 

  1. 在项目的根目录下新建几个目录
$ mkdir log
$ mkdir logs
$ mkdir models

 

  1. 对应的模型放到指定目录下
total_word_feature_extractor_zh.dat  # 放到 data 目录下
20200615-225841.tar.gz  # 放到models下(不同版本rasa对应不同版本的模型,否则要重新训练)

 

【安装虚拟环境的rasa相关python包】

 

  1. 进入虚拟环境
$ source venv_rasa_362/bin/activate

 

  1. 退出虚拟环境
$ deactivate

 

  1. 安装rasa==1.10.2 , 安装失败,多安装几次就可以了
$ pip --default-timeout=1000 install rasa==1.10.2

 

  1. 安装项目其他的包
$ pip install -r requirements.txt
如何将Rasa聊天机器人框架部署到linux,简明教程(适合收藏)

 

 

  1. 安装MITIE (第一步容易安装失败,多安装几次就可以了)
$ pip install git+https://github.com/mit-nlp/MITIE.git
$ pip install rasa[mitie]

 

  1. 安装uwsgi
$ pip install uwsgi

 

uwsgi 配置文件, 一般放在代码根目录下,例如:
/opt/algorithm/chatBotRasa/chatBotRasa_config.ini

 

如何将Rasa聊天机器人框架部署到linux,简明教程(适合收藏)

 

【启动rasa的两个服务】

 

(以脚本的形式,均需要在虚拟环境下进行。 一般更改模型的话,主线程App.py 不用重启,只要重启一下两个服务即可。运行脚本命令: $ sh xxxx.sh)

 

  1. 开启第一个服务 start_one_rasa.sh
nohup python -m rasa run --port 5005 --endpoints configs/endpoints.yml --credentials configs/credentials.yml --debug > ./log/start_one_rasa.log  2>&1 &

 

  1. 查看第一个服务 check_one_rasa.sh
# 查看端口对应的线程
netstat -tunlp|grep 5005

 

  1. 关闭第一个服务 kill_one_rasa.sh
fuser -k -n tcp 5005
  1. 开启第二个服务 start_two_rasa.sh
nohup python -m rasa run actions --port 5055 --actions actions --debug > ./log/start_two_rasa.log  2>&1 &

 

  1. 查看第二个服务 check_two_rasa.sh
# 查看端口对应的线程
netstat -tunlp|grep 5055

 

  1. 关闭第二个服务 kill_two_rasa.sh
fuser -k -n tcp 5055

【在线训练模型】

 

  1. 进入虚拟环境,进入项目根目录
# 模型训练: 该命令会同时训练NLU和Core模型
# 前提是安装好MITIE模块
$ python -m rasa train --config configs/config.yml --domain configs/domain.yml --data data/

【配置supervisor】

 

  1. 安装配置supervisor (非虚拟环境)

 

安装supervisor(一般是提前安装好了):

yum install supervisor

 

增加配置文件, 例如命名为:
chatBotRasa_supervisor.ini

保存在
/etc/supervisord.d/chatBotRasa_supervisor.ini

 

注意事项:

(1) 如果网站所在的目录为chatBotRasa, 则建议ini文件命名为:
chatBotRasa_supervisor.ini

(2) 如果有多一个网站,目录为charts, 则可以新建多个文件: charts_supervisor.ini

(3) 多个xxx_supervisor.ini 文件,Supervisor 会同时允许加载多个配置

 

如何将Rasa聊天机器人框架部署到linux,简明教程(适合收藏)

 

 

  1. 启动停止supervisord (只有单个服务时适用, 或者首次启动)

(1) 启动supervisord: supervisord -c /etc/supervisord.conf

(2) 停止 supervisord(需要多次停止才能生效):supervisorctl shutdown

(3) 重启服务(里面的配置也会更新):supervisorctl reload

 

  1. 启动停止指定supervisord

(1) 查看所有子进程的状态:

$ supervisorctl status
如何将Rasa聊天机器人框架部署到linux,简明教程(适合收藏)

 

 

(2) 关闭开启指定子进程:

$ supervisorctl restart chat_bot_rasa    # 重启
$ supervisorctl stop chat_bot_rasa       # 停止
$ supervisorctl start chat_bot_rasa      # 启动

(3) 关闭、开启所有的子进程

$  supervisorctl stop all
$  supervisorctl start all

 

  1. 管理相关进程

(1) 查看相关进程: netstat -ntlp | grep 9108

(2) kill某个端口: fuser -k -n tcp 9108

【项目在线调试】

 

1. 进入虚拟目录: source my_venv/bin/activate

2. 启动项目: uwsgi dataSys_config.ini

3. 调试结束后,记得删除 项目下log目录下的日志(supervisord的调试日志)否则项目不能正常启动

 

结语

 

学习python,不需要一杯奶茶钱,只需要你点个关注。如果觉得小编的文章对你有帮助,记得点个赞,顺便帮我分享出去。有什么不明白的地方,欢迎在下方评论,或私信小编。最后,感谢大家的阅读,祝大家生活愉快。

 

 



Tags:机器人   点击:()  评论:()
声明:本站部分内容及图片来自互联网,转载是出于传递更多信息之目的,内容观点仅代表作者本人,如有任何标注错误或版权侵犯请与我们联系(Email:2595517585@qq.com),我们将及时更正、删除,谢谢。
▌相关推荐
随着技术的不断进步,扫地机器人的智能性能越来越完善,自主清扫地面卫生,深受众多人群的喜欢。而对于广大的消费者们来说,扫地机器人品牌、型号、功能等都参差不齐,很担心买回来不...【详细内容】
2021-08-04  Tags: 机器人  点击:(62)  评论:(0)  加入收藏
前段时间,上海快仓智能科技领着自己第三代智能搬运机器人产品,斩获了2021第十届LT中国物流技术奖创新应用奖,成为液晶显示器细分行业第一个采用智能搬运机器人的项目,更是创造了...【详细内容】
2021-05-18  Tags: 机器人  点击:(98)  评论:(0)  加入收藏
概要原始路径恢复功能,是在机器人运行过程中,程序动作由于某种原因被暂停的情况下,当机器人再次启动运行时首先恢复到暂停时位置的一种功能。比如,在暂停后通过手动运行方式使得...【详细内容】
2021-03-26  Tags: 机器人  点击:(162)  评论:(0)  加入收藏
机器人“绝影”实现了可与四足动物相比拟的运动技能。 李智彬供图一只狗或者一只猫从来不用经过太多思考,就能依靠本能适应自然界的变化,在复杂地形中上蹿下跳,灵活运动。但这...【详细内容】
2021-02-07  Tags: 机器人  点击:(108)  评论:(0)  加入收藏
> Image source: Author可以为自己的网站构建聊天机器人,而无需依赖Dialogflow或Watson等第三方服务,也无需服务器。 我将向您展示如何构建一个完全在浏览器中运行的聊天机器...【详细内容】
2020-11-26  Tags: 机器人  点击:(89)  评论:(0)  加入收藏
环境和工具 公众号一个 云服务器一台 Python 环境 Flask(Python 第三方库) 图灵机器人账号以上就是我们实现公众号后台智能对话机器人需要的环境和工具,前两个就不多说了。我...【详细内容】
2020-09-25  Tags: 机器人  点击:(103)  评论:(0)  加入收藏
写在前面微信群牛皮癣,指的是在微信群里面恶心群发小广告的用户,是微信群主最痛恨的一波人。如果熟悉早起的读者可以知道我有一个技术交流群,但是自从建群以来就饱受小广告的困...【详细内容】
2020-09-09  Tags: 机器人  点击:(31)  评论:(0)  加入收藏
出品 | 搜狐科技编辑 | 张雅婷继空气炸锅、宝宝辅食机以及跑鞋等品类后,8月21日下午4点,由搜狐科技主办的第七期搜狐好物扫地机器人横评直播将在北京通州北投和苑举行,本期直播...【详细内容】
2020-08-20  Tags: 机器人  点击:(230)  评论:(0)  加入收藏
工作中,经常会遇到事件通知,目前用比较多的是钉钉,群自定义机器人可以让我们快速实现消息通知。包package dingtalk​import ( "bytes" "encoding/json" "errors"...【详细内容】
2020-08-19  Tags: 机器人  点击:(62)  评论:(0)  加入收藏
23年的时间,拉里·柯林斯在旧金山湾区卡奎内兹大桥的一个小棚里收通行费。票价随时间变化,从几美元到6美元,但工作的基本原理保持不变。但是在3月中旬的一天,由于确诊的新...【详细内容】
2020-08-14  Tags: 机器人  点击:(66)  评论:(0)  加入收藏
▌简易百科推荐
作为数据科学家或机器学习从业者,将可解释性集成到机器学习模型中可以帮助决策者和其他利益相关者有更多的可见性并可以让他们理解模型输出决策的解释。在本文中,我将介绍两个...【详细内容】
2021-12-17  deephub    Tags:AI   点击:(16)  评论:(0)  加入收藏
基于算法的业务或者说AI的应用在这几年发展得很快。但是,在实际应用的场景中,我们经常会遇到一些非常奇怪的偏差现象。例如,Facebook将黑人标记为灵长类动物、城市图像识别系统...【详细内容】
2021-11-08  数据学习DataLearner    Tags:机器学习   点击:(32)  评论:(0)  加入收藏
11月2日召开的世界顶尖科学家数字未来论坛上,2013年诺贝尔化学奖得主迈克尔·莱维特、2014年诺贝尔生理学或医学奖得主爱德华·莫索尔、2007年图灵奖得主约瑟夫·斯发斯基、1986年图灵奖得主约翰·霍普克罗夫特、2002...【详细内容】
2021-11-03  张淑贤  证券时报  Tags:人工智能   点击:(39)  评论:(0)  加入收藏
鉴于物联网设备广泛部署、5G快速无线技术闪亮登场,把计算、存储和分析放在靠近数据生成的地方来处理,让边缘计算有了用武之地。 边缘计算正在改变全球数百万个设备处理和传输...【详细内容】
2021-10-26    计算机世界  Tags:边缘计算   点击:(45)  评论:(0)  加入收藏
这是几位机器学习权威专家汇总的725个机器学习术语表,非常全面了,值得收藏! 英文术语 中文翻译 0-1 Loss Function 0-1损失函数 Accept-Reject Samplin...【详细内容】
2021-10-21  Python部落    Tags:机器学习   点击:(43)  评论:(0)  加入收藏
要开始为开源项目做贡献,有一些先决条件:1. 学习一门编程语言:由于在开源贡献中你需要编写代码才能参与开发,你需要学习任意一门编程语言。根据项目的需要,在后期学习另一种语言...【详细内容】
2021-10-20  TSINGSEE青犀视频    Tags:机器学习   点击:(37)  评论:(0)  加入收藏
SimpleAI.人工智能、机器学习、深度学习还是遥不可及?来这里看看吧~ 从基本的概念、原理、公式,到用生动形象的例子去理解,到动手做实验去感知,到著名案例的学习,到用所学来实现...【详细内容】
2021-10-19  憨昊昊    Tags:神经网络   点击:(47)  评论:(0)  加入收藏
语言是人类思维的基础,当计算机具备了处理自然语言的能力,才具有真正智能的想象。自然语言处理(Natural Language Processing, NLP)作为人工智能(Artificial Intelligence, AI)的核心技术之一,是用计算机来处理、理解以及运...【详细内容】
2021-10-11    36氪  Tags:NLP   点击:(49)  评论:(0)  加入收藏
边缘计算是什么?近年来,物联网设备数量呈线性增长趋势。根据艾瑞测算, 2020年,中国物联网设备的数量达74亿,预计2025年突破150亿个。同时,设备本身也变得越来越智能化,AI与互联网在...【详细内容】
2021-09-22  汉智兴科技    Tags:   点击:(54)  评论:(0)  加入收藏
说起人工智能,大家总把它和科幻电影中的机器人联系起来,而实际上这些科幻场景与现如今的人工智能没什么太大关系。人工智能确实跟人类大脑很相似,但它们的显著差异在于人工智能...【详细内容】
2021-09-17  异步社区    Tags:人工智能   点击:(57)  评论:(0)  加入收藏
最新更新
栏目热门
栏目头条