Dialogflow 机器人框架与 Rasa nlu 机器人框架有什么区别?

What is the difference between Dialogflow bot framework vs Rasa nlu bot framework?

Dialogflow 机器人框架与 Rasa nlu 机器人框架有什么区别?市场上是否有任何其他支持 NLP 的开源框架?

我想我可以毫无偏见地回答这个问题,假设随着时间的推移,随着这两项服务的发展,答案会变得过时。

Cliffnotes 版本:

Dialogflow is a complete closed source product with a fully functional API and graphical web interface. Rasa (NLU + Core) are open source python libraries that require slightly lower level development. Both try to abstract some of the difficulty of working with Machine Learning to build a chatbot.

在撰写本文时,这是我的比较:

DialogFlow

  • 是用于创建聊天机器人的最完整的工具。基本完整意味着它几乎可以满足大多数聊天机器人的所有需求。
  • 具体来说,它可以处理意图和实体的分类。它使用所谓的上下文来处理对话。它允许实现网络挂钩。
  • 它不具备聊天机器人通常需要的一件事是某种形式的最终用户管理。
  • 它具有强大的 API,允许您通过 API 或基于 Web 的界面定义 entities/intents/etc。
  • 在被 Google 收购之前,以前称为 API.ai。
  • 数据托管在云中,与 API.ai 的任何交互都需要与云相关的通信。
  • 无法在本地运行。

Rasa NLU + 核心

  • 要接近与 Dialogflow 相同级别的功能,您必须同时使用 Rasa NLU 和 Rasa Core。 Rasa NLU 处理 projects/intents/entities 而 Rasa Core 处理对话和实现。
  • Rasa 不提供完整的开源 GUI,将您与 NLU 的大部分交互留在 JSON 或 markdown 中。 Rasa Core 需要直接 python 开发来自定义您的机器人。
  • 也不直接提供任何类型的用户信息管理。
  • Rasa 团队不提供托管(至少在他们的企业产品之外),您将负责托管并因此拥有数据所有权。
  • 可以在本地操作。

至于其他开源框架,我想说现在大多数聊天机器人框架很可能是基于各种开源工具构建的,带有一些专有插件。所以你总是可以从较低级别的开源工具开始,比如 MITIE or spaCy.

更新:

Smart Platform Group(我是其中的成员)最近发布了一款介于 Rasa NLU/Core 和 Dialogflow 之间的产品,名为 Articulate

Articulate is a full-featured bot framework, based on Rasa NLU, that lets you build Natural Language Agents effortlessly.

  • 使用 Rasa NLU 来理解和自定义基于上下文的对话代码。这使得它比 Rasa Core 更接近 Dialogflow 的工作方式。
  • HTTP API 用于创建意图、实体以及与代理交互。
  • GUI 类似于完全开源的 Dialogflow。
  • 数据和接口可以托管在云端或本地。

最重要的区别是,整个 NLU、NLP 和 NLG 并不是在 Rasa 的情况下发生的。它是开源的。你是老板。在 Dialogflow 的情况下,您拥有所有功能,但每次对话事务发生时它都必须将数据发送到云服务。此外,一些服务提供商对每天的对话数量有限制。

然而,Dialogflow 完美无缺,易于使用且易于建模。

对话流:

无需安装,立即开始

易于使用,非技术人员也可以构建机器人

封闭系统

用于构建机器人的基于 Web 的界面

数据托管在云端

无法托管在您的服务器上或本地

开箱即用 Google Assistant、Skype、Slack、Fb Messenger 等

拉萨:

需要安装多个组件

需要技术知识

开源,代码在 Github

中可用

没有提供接口,写JSON或者markdown文件

不提供托管(至少在免费版中) 将其托管在您的服务器上

没有开箱即用的集成

来源:https://www.kommunicate.io/blog/dialogflow-vs-rasa-which-one-to-choose/

微软的bot框架也是开源的

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