如何使用Rasa Core和Rasa NLU实现对话聊天机器人?



我能够使用Rasa Core和Rasa NLU开发Dialog Flow ChatBot。但无法实现对话聊天机器人。任何人,你能帮我一下。

For example:
===============================
Bot: Hi, how can I help you ?
User: I want to apply leave.
Bot: Sure, may I know when you want to apply ?
User: 07-07-2018
Bot: Ok, How many days ?
User: 1 day
Bot: Ok, which type of leave ?
User: Casual Leave ?
Bot: You want to apply Casual Leave from 07-07-2018 to 07-07-2018 ?
Bot: Please confirm Yes / No ?
User: Yes
Bot: Congrats, your leave applied successfully.

场景 1:

如果我按顺序输入所有内容,则工作正常。

场景 2:

如果我以否定的方式或其他问题输入,循环不会中断。

对于假设

....
Bot: Ok, How many days ?
User: show me my leaves count
Bot: Ok, which type of leave ?
....

如何中断对话流并使其具有对话性。

使用 Rasa Core,对话的流程是从真实示例中学习的。因此,您还应该提供用户不合作的示例对话,以及机器人在这些情况下应如何响应。

如果您只提供用户提供所有请求信息的示例,那么这就是Rasa Core将知道如何处理的全部内容。

由于您认识到可能存在用户会询问休假计数的情况,因此您也需要在 stories.md 中满足这一点,以训练对话引擎。

## Happy Flow
* intent_applyLeave
- utter_whichDay
* informDay
- utter_typeOfLeave
* informType
- utterConfirmation
> checkConfirmation
## confirmYes
> checkConfirmation
* informYes
- action_ApplyLeave
## confirmNo
> checkConfirmation
* informNo
- action_ResetParams
## Not-so-Happy flow
* intent_applyLeave
- utter_whichDay
* query_leaveBalance
- utter_leaveBalance
- utter_whichDay
* informDay
- utter_typeOfLeave
* informType
- utterConfirmation
> checkConfirmation   

我也会在Rasa Core中使用FormAction功能(见 https://core.rasa.com/patterns.html(。创建一个自定义操作,在其中定义必填字段(例如 StartDate、TypeOfLeave 等(。这将有助于满足用户已经在一个句子中输入必要信息的情况。当然,一定要用这些可能性训练rasa_nlu

最新更新