Mismatch between interactive and run

I am running RASA in miniconda on Windows inside a conda virtual environment: Rasa Version : 3.5.10 Minimum Compatible Version: 3.5.0 Rasa SDK Version : 3.5.0 Python Version : 3.8.16 Operating System : Windows-10-10.0.22621-SP0

I have a very simple domain, NLU and stories where I want to differentiate the flow based on an intent with an entity+slot given by buttons.For this I made 2 stories that follow either choice 1 of my buttons’ options or choice 2. The problem I am having now is that when I run this interactively using rasa interactive, the engine correctly classifies the next step to take based on the choice made using the buttons. When I run the same model using rasa run however, it always picks the first choice.

What could be the source of this mismatch between interactive and run?

I am running interactive using: python -m rasa interactive -p 6001 --data data/ --config config.yml --domain domain/ --out models --force --endpoints endpoints.yml And the run using: python -m rasa run --enable-api -p 5007 -m models -t whatever --credentials credentials.yml --endpoints endpoints.yml --log-file rasa_run.log --cors "*" --debug Where I call and use the webhook via webhooks/rest/webhook?token=whatever

What I see in the debug statements of the run command is that it simply picks the wrong utterance for the chatbot, apart from that there are no real errors as the intents and entities are hard-coded by the button’s choices. (Note: I am using the DIETClassifier and see the TEDClassifier predicting the next action in error).

Simplified version of my domain:

version: '3.1'
intents:
- default
- intent_choice
slots:
  chosen:
    type: text
    initial_value: random
    influence_conversation: true
    mappings:
    - type: from_entity
      entity: chosen
entities:
- chosen
responses:
  utter_explain:
  - text: Make a choice
    buttons:
    - title: Choice 1
      payload: '/intent_choice{{"chosen": "choice1"}}'
    - title: Choice 2
      payload: '/intent_choice{{"chosen": "choice2"}}'
  utter_choice1:
  - text: You have chosen Choice 1
  utter_choice2:
  - text: You have chosen Choice 2
actions:
- utter_explain
- utter_choice1
- utter_choice2

and stories:

version: "3.1"

stories:
- story: default story 1
  steps:
  - intent: default
  - action: utter_explain
  - intent: intent_choice
    entities:
    - chosen: chocie1
  - slot_was_set:
    - chosen: choice1
  - action: utter_choice1

- story: default story 2
  steps:
  - intent: default
  - action: utter_explain
  - intent: intent_choice
    entities:
    - chosen: chocie2
  - slot_was_set:
    - chosen: choice2
  - action: utter_choice2

You can’t use a featurized text slot in this manner. See the docs on the text slot:

If influence_conversation is set to true , the assistant’s behavior will change depending on whether the slot is set or not. Different texts do not influence the conversation any further.

You could use a categorical slot but I recommend forms and avoid stories and categorical slots.

Thanks, I figured the same - works now.