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

时间:2018-06-30 16:48:33

标签: python machine-learning chatbot rasa-nlu rasa-core

我能够使用Rasa Core和Rasa NLU开发Dialog Flow ChatBot。但是无法实现对话式的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 ?
....

如何打破对话流程并使之具有对话性。

2 个答案:

答案 0 :(得分:1)

使用Rasa Core,可以从实际示例中了解对话的流程。因此,您还应该提供用户不合作时的示例对话,以及在这种情况下机器人应如何响应。

如果您仅提供示例,其中用户提供了所有请求的信息,那么Rasa Core将知道如何处理所有信息。

答案 1 :(得分:0)

由于您意识到在某些情况下用户会查询请假数量,因此您也需要在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