Learning with real already chatted (by bots or humans) dialogues
See original GitHub issueDescription of Problem:
We have a broad base of human dialogues and want the bot to learn with this data.
In Rasa X, it’s possible to learn with old conversations, but only the realized in it.
We want to teach the bot with our old dialogue between humans.
Overview of the Solution:
We were thinking about two solutions:
- Improve the Interactive Learn to load dialogue between user and attendant (human or bot)
- Create a new Interactive Learn mode for already chatted conversations in natural language
The main difference between the two solutions is which in the first, we would make substantial changes in the behavior of the IL, mainly in UX. And the second we see which the best UI is a small Web App.
Examples:
CASE 01
In this case, the dialogue includes new intent and new utterance!
CURRENT STATE
domain.yml:
intents:
- greet
- thankyou
actions:
- utter_greet
- utter_goodbye
templates:
utter_greet:
- text: "Olá!"
utter_goodbye:
- text: "Que isso precisando é só chamar!"
nlu.md:
# intent:greet
- Oi
# intent:thankyou
- Obrigado
INPUT EXAMPLE
## Human Dialog 01
U: Oi!
A: Olá!
U: Qual é o horário de funcionamento das agências?
A: Das 11h as 16h!
U: Obrigado!
A: Que isso precisando é só chamar!
The input will be processed!
OUTPUT EXAMPLES
e2e:
## test story generated from Human Dialog 01
* greet: Oi!
- utter_greet
>> * incorrect_intent:Qual é o horário de funcionamento das agências?
>> - utter_fallback: Das 11h as 16h!
* thankyou: Obrigado!
- utter_thankyou
e2e-ext:
## test story generated from Human Dialog 01
* greet (99%): Oi!
- utter_greet (99%): Olá!
* incorrect_intent (10%): Qual é o horário de funcionamento das agências?
- utter_fallback (0%): Das 11h as 16h!
* thankyou (99%): Obrigado!
- utter_thankyou (99%): Que isso precisando é só chamar!
story:
## story generated from Human Dialog 01
* greet
- utter_greet
>> * Qual é o horário de funcionamento das agências?
>> - Das 11h as 16h!
* thankyou
- utter_thankyou
CASE 02
In this case, the dialogue includes a new flow!
CURRENT STATE
domain.yml:
intents:
- greet
- workingtime
- thankyou
actions:
- utter_greet
- utter_workingtime
- utter_goodbye
templates:
utter_greet:
- text: "Olá!"
utter_goodbye:
- text: "Que isso precisando é só chamar!"
utter_workingtime:
- text: "Das 11h as 16h!"
nlu.md:
# intent:greet
- Oi
# intent:workingtime
- Qual é o horário de funcionamento das agências?
# intent:thankyou
- Obrigado
stories.md:
# greet and thankyou
* greet
- utter_greet
* thankyou
- utter_thankyou
INPUT EXAMPLE
## Human Dialog 01
U: Oi!
A: Olá!
U: Qual é o horário de funcionamento das agências?
A: Das 11h as 16h!
U: Obrigado!
A: Que isso precisando é só chamar!
The input will be processed!
OUTPUT EXAMPLES
e2e:
## test story generated from Human Dialog 01
* greet: Oi!
- utter_greet
* worktime: Qual é o horário de funcionamento das agências?
- utter_workingtime
* thankyou: Obrigado!
- utter_thankyou
e2e-ext:
## test story generated from Human Dialog 01
* greet (99%): Oi!
- utter_greet (99%): Olá!
* worktime (99%): Qual é o horário de funcionamento das agências?
- utter_workingtime (99%): Das 11h as 16h!
* thankyou (99%): Obrigado!
- utter_thankyou (99%): Que isso precisando é só chamar!
story:
## story generated from Human Dialog 01
* greet
- utter_greet
* worktime
- utter_workingtime
* thankyou
- utter_thankyou
CASE 03
In this case, the dialogue includes a new intent example!
CURRENT STATE
domain.yml:
intents:
- greet
- workingtime
- thankyou
actions:
- utter_greet
- utter_workingtime
- utter_goodbye
templates:
utter_greet:
- text: "Olá!"
utter_goodbye:
- text: "Que isso precisando é só chamar!"
utter_workingtime:
- text: "Das 11h as 16h!"
nlu.md:
# intent:greet
- Oi
# intent:workingtime
- Qual é o horário de funcionamento das agências?
# intent:thankyou
- Obrigado
stories.md:
# greet and thankyou
* greet
- utter_greet
* thankyou
- utter_thankyou
# workingtime
* greet
- utter_greet
* workingtime
- utter_workingtime
* thankyou
- utter_thankyou
INPUT EXAMPLE
## Human Dialog 01
U: Olá!
A: Olá!
U: Qual é o horário de funcionamento das agências?
A: Das 11h as 16h!
U: Obrigado!
A: Que isso precisando é só chamar!
The input will be processed!
OUTPUT EXAMPLES
e2e:
## test story generated from Human Dialog 01
>>* Olá!
- utter_greet
* worktime: Qual é o horário de funcionamento das agências?
- utter_workingtime
* thankyou: Obrigado!
- utter_thankyou
e2e-ext:
## test story generated from Human Dialog 01
* incorrect_intent (0.2%): Olá!
- utter_greet (99%): Olá!
* worktime (99%): Qual é o horário de funcionamento das agências?
- utter_workingtime (99%): Das 11h as 16h!
* thankyou (99%): Obrigado!
- utter_thankyou (99%): Que isso precisando é só chamar!
story:
## story generated from Human Dialog 01
>> * incorrect_intent
- utter_greet
* worktime
- utter_workingtime
* thankyou
- utter_thankyou
CASE 04
In this case, the dialogue includes a new utterance text!
CURRENT STATE
domain.yml:
intents:
- greet
- workingtime
- thankyou
actions:
- utter_greet
- utter_workingtime
- utter_goodbye
templates:
utter_greet:
- text: "Olá!"
utter_goodbye:
- text: "Que isso precisando é só chamar!"
utter_workingtime:
- text: "Das 11h as 16h!"
nlu.md:
# intent:greet
- Oi
- Olá!
# intent:workingtime
- Qual é o horário de funcionamento das agências?
# intent:thankyou
- Obrigado
stories.md:
# greet and thankyou
* greet
- utter_greet
* thankyou
- utter_thankyou
# workingtime
* greet
- utter_greet
* workingtime
- utter_workingtime
* thankyou
- utter_thankyou
INPUT EXAMPLE
## Human Dialog 01
U: Olá!
A: Opa!
U: Qual é o horário de funcionamento das agências?
A: Das 11h as 16h!
U: Obrigado!
A: Que isso precisando é só chamar!
The input will be processed!
OUTPUT EXAMPLES
e2e:
## test story generated from Human Dialog 01
* greet: Olá!
>> - Opa! <!-- utter_greet (90%) -->
* worktime: Qual é o horário de funcionamento das agências?
- utter_workingtime
* thankyou: Obrigado!
- utter_thankyou
e2e-ext:
## test story generated from Human Dialog 01
* greet (99%): Olá!
- incorrect_utter (0.02%): Opa! <!-- utter_greet (90%) -->
* worktime (99%): Qual é o horário de funcionamento das agências?
- utter_workingtime (99%): Das 11h as 16h!
* thankyou (99%): Obrigado!
- utter_thankyou (99%): Que isso precisando é só chamar!
story:
## story generated from Human Dialog 01
* greet
>> - utter_greet <!-- utter_greet (90%) -->
* worktime
- utter_workingtime
* thankyou
- utter_thankyou
CASE 05
TODO
In this case, the dialogue includes a new utterance text which the NLG module must fill.
Blockers:
We only need help to define the best solution for this moment. The solution can be phased.
Definition of Done:
Issue Analytics
- State:
- Created 4 years ago
- Reactions:2
- Comments:5 (1 by maintainers)
Top GitHub Comments
Thanks for submitting this feature request 🚀@erohmensing will get back to you about it soon!✨
This issue has been automatically closed due to inactivity. Please create a new issue if you need more help.