Hello,
I am trying to restructure my domain to reduce/remove ORs from stories without losing intent ifnromation, as at this moment my model runs out of memory when I try to train.
I have a 16 question questionnaire the user needs to fill out, they answer on a 5-point Likert scale from strongly disagree to strongly agree. To implement this, I’ve used five buttons for each question with five intent payloads. The exact intent does not affect the flow of the conversation as the bot just moves on to the next question, however, I do need to know which exact button the user selected in the action server where I perform some calculations. At the moment, my implementation looks like so:
- story: q_15
steps:
- checkpoint: q_15
- or:
- intent: likert_1
- intent: likert_2
- intent: likert_3
- intent: likert_4
- intent: likert_5
- action: action_calc_qs
- action: utter_q_16
- checkpoint: q_16
utter_q_1:
- text: some statement is here
buttons:
- title: Strongly disagree
payload: /likert_1
- title: Disagree
payload: /likert_2
- title: Neither Agree or Disagree
payload: /likert_3
- title: Agree
payload: /likert_4
- title: Strongly Agree
payload: /likert_5
questionnaire = tracker.get_slot(key="questionnaire")
intent = tracker.get_intent_of_latest_message()
question = tracker.latest_action_name
if "likert_" in intent:
intent_value = interpret_answer(intent) # transform intent to integer value
if "q_16" in question:
questionnaire[15] = intent_value
I cannot think of a way to remove the ORs from the stories without losing the intent information, but training over 16x5 stories looks like it will be impossible, are there any suggestions?