Rasa是一个对话式的AI框架,用于创建基于上下文的智能语音助手。这一节我们来看看如何将其部署到k8s集群中,并试一下其自带的模型。
我是T型人小付,一位坚持终身学习的互联网从业者。喜欢我的博客欢迎在csdn上关注我,如果有问题欢迎在底下的评论区交流,谢谢。
Rasa
Rasa是基于python的AI框架,可以对用户提供的数据进行训练生成模型,以达到智能语音助手的目的。更多介绍可以查看其官网。
常规安装
在python3.6或者3.7版本下,直接pip安装即可
pip3 install rasa
之后会自动创建二进制可执行文件用作命令行操作
命令行操作
命令行提供绝大多数操作功能,从安装到训练再到起服务都可以完成,如下几个常用命令我们会在下面的操作中用到
命令 | 说明 |
---|---|
rasa init | 新建一个项目,其中包含了演示用的数据 |
rasa train | 根据提供的NLU数据训练模型,结果保存在./models 中 |
rasa run | 根据训练的模型起一个rasa服务器,默认监听5005端口,可修改 |
rasa -h | 查看帮助文档 |
更多的命令行操作参考这里
API操作
运行完rasa run
之后,就可以通过rasa服务器监听的端口进行HTTP API操作了,例如检查服务器状态,传递数据进行训练,和训练完成的服务器进行交互。所有的API信息可以查看这里。
这里需要特别指出的是对服务器状态的判断,如下
http://localhost:5005/
如果服务器正常返回200,可以用这一点来指定k8s中容器的存活检测。
部署到k8s
下面开始部署。我的部署环境是在博客《从零搭建可分配节点GPU资源至容器的Kubernetes集群(Nvidia版本)》中完成的集群,可以为本文的容器分配GPU资源。
准备自定义docker镜像
dockerhub上有一个现成可用的镜像rasa/rasa
,但是根据部署过程中遇到的坑,这里有个地方要改一下。为了安全起见,rasa/rasa
在Dockerfile中将容器内的用户设置为1001,如下
USER 1001
如果Dockerhub不能访问,请注意科学上网
这样子虽然安全,但是在部署过程中可能会有权限问题,所以我们要生成一个新的镜像,将用户改为root。同时也顺便将容器运行命令从rasa --help
改为rasa init
,如下
FROM rasa/rasa:1.10.1-full
USER root
C