-3

我能够使用 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.

场景一:

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

场景二:

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

假设

....
Bot: Ok, How many days ?

User: show me my leaves count

Bot: Ok, which type of leave ?
....

如何打破对话流并使其对话。

4

2 回答 2

2

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

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

于 2018-06-30T18:55:25.673 回答
1

由于您认识到可能存在用户询问休假计数的情况,因此您还需要在 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

于 2018-07-13T05:30:48.833 回答