Slots to determine path in stories

Hi all! I am in need of some help with using slots to determine dialogue flows.

My situation is that I have a categorical slot which can either have the value “associate” or “manager”. If the slot is manager, the user gets access to more handover options, whereas the associate user just gets a closing message. The stories are as follows:

## english_speaker_story_associate
* english
    - slot{"function_type": "associate"}
    - utter_english_speaker_associate

## english_speaker_story_manager_happy
* english
    - slot{"function_type": "manager"}
    - utter_english_speaker_manager
* confirm
    - handover_SF_form_EN
    - utter_slots_values_handoverSFEN
* confirm
    - action_SF_followUpEN
    - utter_end_film_english
    - action_clear_slots

## english_speaker_story_manager_happy-twice
* english
    - slot{"function_type": "manager"}
    - utter_english_speaker_manager
* confirm
    - handover_SF_form_EN
    - utter_slots_values_handoverSFEN
* deny
    - utter_lms_login_issue_try_againEN
    - action_clear_slots
    - handover_SF_form_EN
    - utter_slots_values_handoverSFEN
* confirm
    - action_SF_followUpEN
    - utter_end_film_english
    - action_clear_slots

## english_speaker_story_manager_happy-thrice
* english
    - slot{"function_type": "manager"}
    - utter_english_speaker_manager
* confirm
    - handover_SF_form_EN
    - utter_slots_values_handoverSFEN
* deny
    - utter_lms_login_issue_try_againEN
    - action_clear_slots
    - handover_SF_form_EN
    - utter_slots_values_handoverSFEN
* deny
    - utter_lms_login_issue_try_againEN
    - action_clear_slots
    - handover_SF_form_EN
    - utter_slots_values_handoverSFEN
* confirm
    - action_SF_followUpEN
    - utter_end_film_english
    - action_clear_slots

## english_speaker_story_manager_sad
* english
    - slot{"function_type": "manager"}
    - utter_english_speaker_manager
* deny
    - utter_handover_deny_manager_english

However it seems as if the manager path is always chosen, even though the slot is set to associate. I am using Keras policy and augmented momoization. In debug mode I can see that memoization predicts no action and then Keras predicts the manager version. Is this a result of an unbalanced training set, since there are more stories with the manager version?

Would be great to get some help, thanks!

In debug mode I can see that memoization predicts no action and then Keras predicts the manager version.

Nice, job in finding that out! :rocket: I’d check which story should apply in this case and then see why it doesn’t apply.

Hi Tobias, thanks for your reply! Since my slot function_type is set to associate, I would expect the top story. I have changed max_history on both policies (now augmented memoization is 3 and Keras is 5) and it is now picking the correct story for this flow. However, I still have other similar structures that are not being picked up, for example:

## calculate_holiday_pay_parttime_pos_ahstore

* calculate_holiday_pay{"vakantiegeld": "vakantiegeld"} OR calculate_holiday_pay
    - utter_calculate_holiday_pay_parttime
* confirm
    - slot{"banner": "AH"}
    - utter_calculate_holiday_pay_allin_ahstore
    > check_end_question

## calculate_holiday_pay_sm_dc_pos_supermarketmanager

* calculate_holiday_pay{"vakantiegeld": "vakantiegeld"} OR calculate_holiday_pay
    - utter_calculate_holiday_pay_parttime
* deny
    - slot{"banner": "AH"}
    - utter_calculate_holiday_pay_depends
* confirm
    - utter_calculate_holiday_pay_sm_dc_supermarketmanager
    > check_end_question

## calculate_holiday_pay_rest_pos_ahstore

* calculate_holiday_pay{"vakantiegeld": "vakantiegeld"} OR calculate_holiday_pay
    - utter_calculate_holiday_pay_parttime
* deny
    - slot{"banner": "AH"}
    - utter_calculate_holiday_pay_depends
* deny
    - utter_calculate_holiday_pay_rest_ahstore
    > check_end_question

## calculate_holiday_pay_parttime_pos_gall

* calculate_holiday_pay{"vakantiegeld": "vakantiegeld"} OR calculate_holiday_pay
    - utter_calculate_holiday_pay_parttime
* confirm
    - slot{"banner": "GG"}
    - utter_calculate_holiday_pay_allin_gall
    > check_end_question

## calculate_holiday_pay_rest_pos_gall

* calculate_holiday_pay{"vakantiegeld": "vakantiegeld"} OR calculate_holiday_pay
    - utter_calculate_holiday_pay_parttime
* deny
    - slot{"banner": "GG"}
    - utter_calculate_holiday_pay_rest_gall
    > check_end_question


## calculate_holiday_pay_parttime_pos_hk

* calculate_holiday_pay{"vakantiegeld": "vakantiegeld"} OR calculate_holiday_pay
    - utter_calculate_holiday_pay_parttime
* confirm
    - slot{"banner": "HK"}
    - utter_calculate_holiday_pay_allin_hk
    > check_end_question

## calculate_holiday_pay_rest_pos_hk

* calculate_holiday_pay{"vakantiegeld": "vakantiegeld"} OR calculate_holiday_pay
    - utter_calculate_holiday_pay_parttime
* deny
    - slot{"banner": "HK"}
    - utter_calculate_holiday_pay_rest_hk
    > check_end_question

In this case my banner is “AH” and it works fine when the user picks “confirm” after the first reponse it works fine, but when the user picks “deny” I get a core fallback. Should I change the max history to another value? Or is there maybe something else happening?

Thanks!