我对聊天机器人非常陌生,并开始使用RASA作为框架。并想知道RASA采用哪种方法作为响应生成技术。(非NLG)
从理论上讲,有两种非NLG技术:
那么,他们用的是什么方法呢?
发布于 2018-08-04 13:24:19
RASA堆栈足够灵活,可以支持这两个用例。
您的问题的文档(v: 0.10.3)可以在:http://www.rasa.com/docs/core/responses/找到
TL;DR
RASA提供了一个内置模板的 NLG。但是,它还允许您连接到NLG的外部HTTP服务器。在服务器上发生的事情取决于您,它可能是一个基于神经网络的 NLG服务器,但这需要由您来完成。
模板驱动NLG
从医生那里:
默认格式是,将话语包含到您的域文件中。然后,该文件包含对所有自定义操作、可用实体、插槽和意图的引用。
域文件的一个部分将包括一个模板部分。下面是文档中的一个示例:
templates:
utter_greet:
- "hey there {name}!" # variable will be filled by slot with the same name or by custom code
utter_goodbye:
- "goodbye "
- "bye bye " # multiple templates will allow the bot to randomly pick from them
utter_default:
- "default message"改进的神经网络与ML
从医生那里:
对机器人进行再培训,仅仅为了更改文本副本,对于某些工作流来说可能不是最优的。这就是为什么Core还允许您将响应生成外包,并将其与对话学习分离开来。 机器人仍将学习根据过去的对话预测动作和对用户输入作出反应,但是它发送给用户的响应是在Rasa Core之外生成的。 如果bot想向用户发送消息,它将使用POST请求调用外部HTTP服务器。要配置此端点,需要创建一个endpoints.yml并将其传递给运行脚本或服务器脚本。
核心将与您的服务器与对话的信息,包括用户的发言,意图和插槽填补。然后,您的服务器将有一个基于神经网络的NLG (由您开发),它将返回机器人应该向用户显示的文本。
https://stackoverflow.com/questions/51682957
复制相似问题