【智能语音机器人】0_Ubuntu20.04下Rasa环境部署
一、环境部署
由于Rasa依赖于Python3.6~3.9版本,笔者对Python、Rasa也才刚开始接触,在这里为了避免麻烦,选择Ubuntu20.04【该系统默认Python版本为Python3.8,同时方便部署在EXSI服务器上进行训练模型或作为对话交互服务器端,并可以考虑将模型移植到树莓派上,便于开发语音机器人及后续更多机器人控制任务】进行部署。
Rasa和其开发工具Rasa X所依赖的软件包众多,在安装过程中存在共同依赖,因此对这两部分软件版本需要进行合理的选择,这里可以参考官方网页的介绍:Rasa版本矩阵
Rasa X | Rasa Open Source | Rasa SDK |
---|---|---|
1.1.x | 3.0.x, 3.1.x | 3.0.x, 3.1.x |
1.0.1 | 2.8.25 | 2.8.4 |
0.42.6 | 2.8.14 | 2.8.3 |
0.41.2 | 2.7.1 | 2.7.0 |
0.40.0 | 2.6.2 | 2.6.0 |
经过多轮的尝试,最终得到能够同时使用Rasa和Rasa X的版本组合,这里选择版本组合为:
- Rasa X:1.0.1
- Rasa:2.8.25
- Rasa SDK:2.8.4
二、基本环境设置
镜像服务器选择有利于节省Rasa的安装时间,不设置情况下,安装速度基本在几十k/s甚至十几k/s。
1、镜像设置
更换镜像源可参考中科大镜像源的网页:中科大镜像源,如有需要,可对deb-src
部分取消注释。
2、python3-pip安装与设置
终端下使用命令,安装python3-pip
sudo apt install python3-pip
使用下述命令创建pip的配置脚本
sudo mkdir ~/.pip
sudo gedit ~/.pip/pip.conf
在文件中添加以下内容
[global]
index-url = https://pypi.tuna.tsinghua.edu.cn/simple
[install]
trusted-host=pypi.tuna.tsinghua.edu.cn
disable-pip-version-check = true
timeout = 6000
三、Rasa安装
完成上述设置后,即可对Rasa进行安装,笔者为了方便,同时避免依赖冲突,将Rasa、Rasa X、Rasa SDK一同进行安装,安装命令如下:
pip install rasa==2.8.25 rasa-x==1.0.1 rasa-sdk==2.8.4 -i https://pypi.tuna.tsinghua.edu.cn/simple --extra-index-url https://pypi.rasa.com/simple
如有其他版本的安装需要,可根据情况自行更改上述版本编号。
四、问题排查
安装过程中,软件的依赖经常深度绑定,使得安装过程中版本冲突的问题比较多,以下是笔者多次实践过程中所遇到的一些问题,以及通过ChatGPT辅助找到的解决措施。
1、tensorflow.python.framework.errors_impl.NotFoundError
问题示例:
File "/home/wenyun/.local/lib/python3.8/site-packages/rasa/utils/tensorflow/callback.py", line 5, in <module>
import tensorflow as tf
File "/home/wenyun/.local/lib/python3.8/site-packages/tensorflow/__init__.py", line 438, in <module>
_ll.load_library(_main_dir)
File "/home/wenyun/.local/lib/python3.8/site-packages/tensorflow/python/framework/load_library.py", line 154, in load_library
py_tf.TF_LoadLibrary(lib)
tensorflow.python.framework.errors_impl.NotFoundError: /usr/local/lib/python3.8/dist-packages/tensorflow/core/kernels/libtfkernel_sobol_op.so: undefined symbol: _ZNK10tensorflow8OpKernel11TraceStringB5cxx11ERKNS_15OpKernelContextEb
解决措施:
这个错误表明在加载TensorFlow的libtfkernel_sobol_op.so库文件时,找不到某个符号,这通常是由于版本不兼容或者安装不完整引起的。可以将TensorFlow卸装后重装进行解决,但要注意sudo、pip3、pip
这些情况下并不公用,都会存在相同的软件安装包,在卸装的过程中,需要将这些都卸装干净,随后在通过安装rasa、rasa-x、rasa-sdk
的命令进行安装,此时会根据需要所依赖的版本,直接使用pip install tensorflow
安装,会选择最新的发布版本,容易产生冲突。相关命令如下:
卸装命令(根据实际情况进行选择)
pip uninstall tensorflow
pip3 uninstall tensorflow
sudo pip3 uninstall tensorflow
安装命令(参考安装部分介绍即可)
2、Failed to build xmlsec
问题示例:
Failed to build xmlsec
ERROR: Could not build wheels for xmlsec which use PEP 517 and cannot be installed directly
解决措施:
执行以下命令,对关联的库进行安装更新
sudo apt-get install libxml2-dev libxmlsec1-dev
五、安装验证
在完成上述安装过程后,可通过以下方式对安装的情况进行验证:
1、查看版本
使用以下命令,查看软件的安装版本:
rasa --version
2、运行官方示例模板
运行官方示例模板能同时检查软件的安装与运行情况,使用以下命令即可运行:
Rasa运行
# 创建工程的基本文件夹
mkdir JuniorProj
cd JuniorProj
# 执行命令,此时会自动生成示例模板和文件
rasa init
#随后开始对工程的一系列设置
#1.是否在当前路径下创建工程?按下 Enter 键进行确认;
#2.当前文件夹为空是否继续?按下 y 键进行确认;
#3.是否开始训练模型?按下 y 键进行确认;
#4.是否使用命令终端进行交互?按下 y 键进行确认;
#图示如下:
中间如果是从0开始训练,需要一些时间,如果训练过,相对来说会快一些。最终出现交互端口如下:
Rasa X运行
Rasa X可用于对模型、数据进行管理、过程进行设计。在Rasa工程所在的文件夹下使用以下命令进行启动:
#执行命令,启动rasa-x,启动时间会比rasa要长
rasa x
#第一次打开会需要初始设置,允许浏览器打开,以及构建连接
#后续打开会直接打开浏览器,出现绿色字体部分,可刷新一下网页,图示如下: