自然语言理解(Natural Language Understanding,NLU)是自然语言处理领域中非常重要的一个方向,日常生活中最常见应用就是聊天(客服)机器人,比如淘宝、京东这些电商平台的客服机器人,它需要精准地理解用户所说的问题,并能够通过回复内容来快速解决。目前,除了各大语言厂商自研系统外,最主流的开源工具便是我们今天的主角——Rasa。
1. Rasa 和 Rasa X区别
Rasa 是基于文本和语音的自动开源机器学习框架,它致力于消息的理解、进行对话,以及连接到消息传递通道和 API。借助于 Rasa,我们可以搭建出具备个性化、高性能、弹性的专有 AI 助手。
目前 Rasa 分为 2 个版本,分别为 Rasa Open Source(后面我们直接称之为 Rasa) 和 Rasa X,其中 Rasa X 又分为社区版本(CE)和企业收费版本(EE)。Rasa X 是基于对话驱动开发的一套工具,它最大的亮点在于可以通过倾听用户的意见,并利用这些见解来改进 AI 助手。同时,它还具备 WEB 可视化的交互界面,这一点是 Rasa 还不具备的。
💡 除此之外,Rasa 上还有一个 Rasa Action Servers,但官网对齐描述较少,后续补充。
下表是不同版本的 Rasa 包含的功能:
Rasa | Rasa X(CE) | Rasa X(EE) | |
---|---|---|---|
特性(Features) | |||
消息理解(Understand messages) | - [x] |
|
- [x]
|
- [x]
|
| 进行对话(Hold conversations) |
- [x]
|
- [x]
|
- [x]
|
| 交互式学习(Interative learning) |
- [x]
|
- [x]
|
- [x]
|
| 连接消息传递通道和API
(Connect to messageing channels and APIs) |
- [x]
|
- [x]
|
- [x]
|
| 查看和标注对话(View and annotate conversations) | |
- [x]
|
- [x]
|
| 从测试者进行反馈(Get feedback from testers) | |
- [x]
|
- [x]
|
| 版本和模型管理(Version and manage models) | |
- [x]
|
- [x]
|
| 可以部署在任意位置部署(Deploy anywhere) | |
- [x]
|
- [x]
|
| 分析(Analytics) | | |
- [x]
|
| 用户访问权限(Role-based access control) | | |
- [x]
|
| 多种部署环境(Multiple deployment environments) | | |
- [x]
|
| 单点登录(Single sign on) | | |
- [x]
|
| 服务级别协议(Service Level Agreements,SLAs) | | |
- [x]
|
| 支持(Support) | | | |
| 社区支持(Community Support) |
- [x]
|
- [x]
|
- [x]
|
| 专家支持(Expert Support) | | |
- [x]
|
| 部署和安装支持(Deployment and Installation Support) | | |
- [x]
|
2. Rasa 特性
Rasa 具备以下特性:
- 消息理解:Rasa 可以将任意语言中的自由格式文本转换为结构化数据,支持多个意图识别、预训练模型以及自定义实体,对于任意领域、行业以及用户案例,Rasa 可以完全自定义 NLU。
- 进行对话:Rasa 使用基于机器学习的对话管理,将保留重要的上下文以及保持前后对话,同时它可以平滑地处理主题变化,无缝地将业务逻辑集成到对话流中。
- 交互式学习:通过与 AI 助手进行交流产生的数据,当出现错误时,Rasa 可以提供反馈,我们可以非常容易地与测试者分享 AI 助手。
- 连接消息传递通道和APIs:Rasa 给 AI 助手提供了多个通道,它可以运行在 Slack、Facebook、Google Home、IVR 上。同时,通过 Rasa 自定义的操作来与 API、数据库以及其他系统进行交互,也支持与知识库、内容管理系统、CRM 的连接。
- 版本和模型管理:Rasa 可以跟踪和管理模型,促进生产,可以轻松地对模型版本进行回滚,并集成了自动化测试也 CI/CD。
- 可以部署在任意位置部署:Rasa 可以预先运行在 Docker 容器上,也可以是您喜爱的云提供商。
- 基于对话系驱动的开发:Rasa 通过将用户意见和最佳工程实践融合到团队工作流中每个部分,构建出以用户中心的虚拟 AI 助手。
3. Rasa Playground
强烈建议仔细阅读和使用下 Rasa 官网上提供的 Rasa Playground,通过交互式的指南,我们可以了解到构建 Rasa 机器人的基本知识,并且你可以自定义机器人、进行对话,以及下载项目。
🤖 Rasa Playground:https://rasa.com/docs/rasa/playground
4. 其他同类产品
做聊天机器人的开源软件不止 Rasa 一个,还有以下同类产品:
- Google Dialogflow:使用需要收费
- Wit.ai:免费,必须使用 Facebook 账号
- Microsoft LUIS:使用需要收费
- IBM Watson:免费
5. 选择何种版本Rasa
从上面的对比表来看,Rasa X 更适合做聊天机器人的开发,需要注意的是,Rasa X 的安装是依赖于 Rasa 的安装的,且 Rasa 对 Python 的版本有限制:3.6 ~ 3.8。
Rasa X安装可以参照这篇文章:https://www.yuque.com/yumingmin/lmoydg/gqc5c5#vfXc3