Dialogflow bot 框架与 Rasa nlu bot 框架有什么区别?市场上还有其他支持 NLP 的开源框架吗?
4 回答
我想我可以毫无偏见地回答这个问题,因为随着这两种服务的发展,答案会随着时间的推移而变得过时。
悬崖笔记版本:
Dialogflow 是一个完整的闭源产品,具有功能齐全的 API 和图形 Web 界面。Rasa (NLU + Core) 是开源 python 库,需要稍微低级的开发。两者都试图抽象出使用机器学习构建聊天机器人的一些困难。
在撰写本文时,这是我的比较:
对话流
- 是用于创建聊天机器人的最完整的工具。大部分完成意味着它几乎可以完成大多数聊天机器人所需的一切。
- 具体来说,它可以处理意图和实体的分类。它使用所谓的上下文来处理对话。它允许 web 挂钩来实现。
- 聊天机器人通常不具备的一件事是某种形式的最终用户管理。
- 它有一个强大的 API,允许您通过 API 或基于 Web 的界面定义实体/意图/等。
- 在被谷歌收购之前,前身为 API.ai。
- 数据托管在云中,与 API.ai 的任何交互都需要与云相关的通信。
- 不能现场操作。
Rasa NLU + 核心
- 要接近与 Dialogflow 相同级别的功能,您必须同时使用 Rasa NLU 和 Rasa Core。Rasa NLU 处理项目/意图/实体,而 Rasa Core 处理对话和实现。
- Rasa 不提供完整的开源 GUI,而您与 NLU 的大部分交互都以 JSON 或 markdown 格式进行。Rasa Core 需要直接的 python 开发来定制你的机器人。
- 也不直接提供任何类型的用户信息管理。
- Rasa 团队不提供托管服务(至少在他们的企业产品之外),您将负责托管并因此拥有数据的所有权。
- 可现场操作。
至于其他开源框架,我想说现在大多数聊天机器人框架很可能是建立在各种开源工具上的,并带有一些专有的附加组件。因此,您始终可以从MITIE或spaCy等较低级别的开源工具开始。
更新:
Smart Platform Group(我是其中的一员)最近发布了一款介于 Rasa NLU/Core 和 Dialogflow 之间的产品,名为Articulate。
Articulate 是一个基于 Rasa NLU 的全功能机器人框架,可让您轻松构建自然语言代理。
- 使用 Rasa NLU 理解和自定义基于上下文的对话代码。这使得它比 Rasa Core 更接近 Dialogflow 的工作方式。
- 用于创建意图、实体和与代理交互的 HTTP API。
- GUI 类似于完全开源的 Dialogflow。
- 数据和接口可以托管在云端或本地。
对话流:
无需安装,立即开始
易于使用,非技术人员也可以构建机器人
封闭系统
用于构建机器人的基于 Web 的界面
数据托管在云端
不能托管在您的服务器或本地
与 Google Assistant、Skype、Slack、Fb messenger 等的开箱即用集成
拉萨:
需要安装多个组件
需要技术知识
开源,代码在 Github 中可用
没有提供接口,写JSON或markdown文件
没有提供托管(至少在免费版本中) 将其托管在您的服务器上
没有开箱即用的集成
来源:https ://www.kommunicate.io/blog/dialogflow-vs-rasa-which-one-to-choose/
最重要的区别是,在 Rasa 的情况下,整个 NLU、NLP 和 NLG 不会在后台发生。它是开源的。你是老板。在 Dialogflow 的情况下,您拥有所有功能,但它必须在每次对话事务发生时将数据发送到云服务。此外,一些服务提供商对每天的对话数量有限制。
然而 Dialogflow 完美无瑕,易于使用且易于建模。
微软的机器人框架也是开源的
https://github.com/microsoft/botframework-sdk
对于 nlp,它通常与 LUIS 配对,而 LUIS 不是开源的。
然而, SpaCy是一个开源 nlp(RASA 也使用它)。在 bot 框架中创建 IReconizer 以使用 SpaCy https://spacy.io/将是一个完全有效的工作流程
有很多聊天引擎也使用 SpaCy 开源 NLP,这些引擎链接在他们的网站 https://spacy.io/universe/category/conversational上。