# Story flow prediction gets confused deciding which Path to take

**URL:** <https://forum.rasa.com/t/story-flow-prediction-gets-confused-deciding-which-path-to-take/44552>\
**Category:** Rasa Open Source\
**Created:** [June 13, 2021, 6:20am UTC](https://forum.rasa.com/t/story-flow-prediction-gets-confused-deciding-which-path-to-take/44552 "2021-06-13T06:20:32Z")\
**Posts on this page:** 20\
**Page:** 1

<div class="post-metadata">

**Author:** ![tuhinsom](https://dub1.discourse-cdn.com/flex013/user_avatar/forum.rasa.com/tuhinsom/32/15336_2.png) [@tuhinsom](https://forum.rasa.com/u/tuhinsom)\
**Post date:** [June 13, 2021, 6:20am UTC](https://forum.rasa.com/t/story-flow-prediction-gets-confused-deciding-which-path-to-take/44552/1 "2021-06-13T06:20:32Z")

</div>

The stories are as follows:

- story: **site accessibility path different site** steps:

- story: **site accessibility path current site** steps:

You can clearly see that in these 2 paths, the deciding takes place when someone chooses whether or not the Application is current or a different application to select for the next course of actions / steps.

**The issue definition** : The problem arises when someone decides to go for current\_application: true and the program instead of predicting the path “site accessibility path current site”, abruptly ends with no output. However if the user selects current\_application: false, then path “site accessibility path different site” is correctly predicted. On a reverse scenario if I juxtapose the stories upside down, i.e.  
a) - story: site accessibility path current site b) - story: site accessibility path different site instead of

a) - story: site accessibility path different site b) - story: site accessibility path current site the prediction behavior reverses selecting the path “site accessibility path current site” correctly and abruptly ending without selecting “site accessibility path different site”.

**So now the question** is, how can I sequence the stories where there are common entities and bifurcations on a deciding factor like this case?

any angle of thought would be highly appreciated, because I am too much biased on my own presumptions.

---

<div class="post-metadata">

**Author:** ![fkoerner](https://dub1.discourse-cdn.com/flex013/user_avatar/forum.rasa.com/fkoerner/32/11784_2.png) [@fkoerner](https://forum.rasa.com/u/fkoerner)\
**Post date:** [June 14, 2021, 11:56am UTC](https://forum.rasa.com/t/story-flow-prediction-gets-confused-deciding-which-path-to-take/44552/2 "2021-06-14T11:56:04Z")

</div>

Hi! Have you run rasa data validate? Is `current_application` set to `influence_conversation: true`? What config are you using?

---

<div class="post-metadata">

**Author:** ![tuhinsom](https://dub1.discourse-cdn.com/flex013/user_avatar/forum.rasa.com/tuhinsom/32/15336_2.png) [@tuhinsom](https://forum.rasa.com/u/tuhinsom)\
**Post date:** [June 15, 2021, 8:18am UTC](https://forum.rasa.com/t/story-flow-prediction-gets-confused-deciding-which-path-to-take/44552/3 "2021-06-15T08:18:06Z")

</div>

Hi @fkoerner , yes exactly the domain.yml entry is as follows:

```
current_application:
  type: bool
  influence_conversation: true

```

The configuration is:

pipeline:

- name: WhitespaceTokenizer
- name: RegexFeaturizer
- name: LexicalSyntacticFeaturizer
- name: CountVectorsFeaturizer OOV\_token: oov token\_pattern: (?u)\b\w+\b
- name: CountVectorsFeaturizer analyzer: char\_wb min\_ngram: 1 max\_ngram: 4
- name: DIETClassifier epochs: 200 ranking\_length: 5 embedding\_dimension: 30
- name: SpacyNLP
- name: SpacyEntityExtractor model: “en\_core\_web\_sm”
- name: DucklingEntityExtractor url: [http://localhost:8000](http://localhost:8000) dimensions:
  - email
  - number
  - amount-of-money

- name: CRFEntityExtractor
- name: EntitySynonymMapper
- name: ResponseSelector retrieval\_intent: out\_of\_scope scale\_loss: false epochs: 100
- name: ResponseSelector retrieval\_intent: faq scale\_loss: false epochs: 100
- name: ResponseSelector retrieval\_intent: chitchat scale\_loss: false epochs: 100
- name: FallbackClassifier threshold: 0.7

policies:

- name: TEDPolicy max\_history: 10 epochs: 20 batch\_size:
  - 32
  - 64

- max\_history: 6 name: AugmentedMemoizationPolicy

---

<div class="post-metadata">

**Author:** ![tuhinsom](https://dub1.discourse-cdn.com/flex013/user_avatar/forum.rasa.com/tuhinsom/32/15336_2.png) [@tuhinsom](https://forum.rasa.com/u/tuhinsom)\
**Post date:** [June 15, 2021, 8:26am UTC](https://forum.rasa.com/t/story-flow-prediction-gets-confused-deciding-which-path-to-take/44552/4 "2021-06-15T08:26:38Z")

</div>

> [@fkoerner](#):
>
> rasa data validate

I just run a data validity and it gave me some futureWarnings and couple of userWarnings :

/root/.virtualenvs/chatbotrasaproject/lib/python3.6/site-packages/rasa/shared/utils/io.py:93: UserWarning: The example ‘good afternoon’ was found labeled with multiple different intents in the training data. Each annotated message should only appear with one intent. You should fix that conflict The example is labeled with: goodbye, greet.

/root/.virtualenvs/chatbotrasaproject/lib/python3.6/site-packages/rasa/shared/utils/io.py:93: UserWarning: The example ‘I have some issues’ was found labeled with multiple different intents in the training data. Each annotated message should only appear with one intent. You should fix that conflict The example is labeled with: mood\_unhappy, site\_accessibility\_issue.

/root/.virtualenvs/chatbotrasaproject/lib/python3.6/site-packages/rasa/shared/utils/io.py:93: UserWarning: The example ‘I had some issues’ was found labeled with multiple different intents in the training data. Each annotated message should only appear with one intent. You should fix that conflict The example is labeled with: mood\_unhappy, site\_accessibility\_issue.

/root/.virtualenvs/chatbotrasaproject/lib/python3.6/site-packages/rasa/shared/utils/io.py:93: UserWarning: The example ‘What does the organization or company or Informa work on?’ was found labeled with multiple different intents in the training data. Each annotated message should only appear with one intent. You should fix that conflict The example is labeled with: organization\_function, organization\_structure.

Would that be some of the contributing factors? Although I agree I need to fix these, which I will, eventually.

---

<div class="post-metadata">

**Author:** ![fkoerner](https://dub1.discourse-cdn.com/flex013/user_avatar/forum.rasa.com/fkoerner/32/11784_2.png) [@fkoerner](https://forum.rasa.com/u/fkoerner)\
**Post date:** [June 15, 2021, 8:34am UTC](https://forum.rasa.com/t/story-flow-prediction-gets-confused-deciding-which-path-to-take/44552/5 "2021-06-15T08:34:34Z")

</div>

edited: (sorry, I think I was answering the wrong question, one minute)

---

<div class="post-metadata">

**Author:** ![fkoerner](https://dub1.discourse-cdn.com/flex013/user_avatar/forum.rasa.com/fkoerner/32/11784_2.png) [@fkoerner](https://forum.rasa.com/u/fkoerner)\
**Post date:** [June 15, 2021, 9:14am UTC](https://forum.rasa.com/t/story-flow-prediction-gets-confused-deciding-which-path-to-take/44552/6 "2021-06-15T09:14:58Z")

</div>

I don’t think these are contributing factors, the warnings are all to do with your NLU data.

I do notice that you have a very small number of epochs for `TEDPolicy`. I’d suggest training for at least `100` epochs, probably more like `200` or `300`.

You might also consider using rules for this case. Rules are useful for parts of the story that you know always want to be handled a certain way. This could look something like this:

```auto
rule: current app
condition:
 - slot_was_set:
   - current_application: true
steps:
 - action: action_verify_select_application
 - action: utter_express_sorry

```

```auto
rule: not current app
condition:
 - slot_was_set:
   - current_application: false
steps:
 - action: action_verify_select_application
 - intent: choose_app
 - action: utter_express_sorry

```

You’ll also have to add `RulePolicy` to your pipeline. Try this out and let me know how it goes!

---

<div class="post-metadata">

**Author:** ![tuhinsom](https://dub1.discourse-cdn.com/flex013/user_avatar/forum.rasa.com/tuhinsom/32/15336_2.png) [@tuhinsom](https://forum.rasa.com/u/tuhinsom)\
**Post date:** [June 16, 2021, 8:02am UTC](https://forum.rasa.com/t/story-flow-prediction-gets-confused-deciding-which-path-to-take/44552/7 "2021-06-16T08:02:03Z")

</div>

@fkoerner , 1 dumb question, should I move all the conditions mentioned in the stories and create rules for each corresponding story? SO, suppose I have similar pairs of stories which deals with different questions but similar path patterns ( “…path current site” and “… path different site” ) are quite similar, like:

- story: site accessibility path different site
- story: site accessibility path current site
- story: generic dissatisfaction path different site
- story: generic dissatisfaction path current site … and so on

on each story path there is at least one deciding intent (in this specific question description mentioned as: **site\_accessibility\_issue** ) which is then processed in actions.py method action\_serve\_curated\_answers to call intended API to fetch answer. The action action\_serve\_curated\_answers is a common method to handle several story paths.

So the bottom line question is : How would the stories be rewritten if these rules are the way you said? would there be only 2 rules generally written as you mentioned that would work for all the story patterns? or there would be different rule pairs for each story-pairs?

I am being too demanding, I understand, but this to admit that I am learning this rule usage for the first time, from amazing you…

---

<div class="post-metadata">

**Author:** ![tuhinsom](https://dub1.discourse-cdn.com/flex013/user_avatar/forum.rasa.com/tuhinsom/32/15336_2.png) [@tuhinsom](https://forum.rasa.com/u/tuhinsom)\
**Post date:** [June 16, 2021, 8:06am UTC](https://forum.rasa.com/t/story-flow-prediction-gets-confused-deciding-which-path-to-take/44552/8 "2021-06-16T08:06:30Z")

</div>

also to emphasise that the rasa train is halted stating “ **Contradicting rules or stories found** ” because I kept the stories.yml as is, ignorant of the changes to be made there.

---

<div class="post-metadata">

**Author:** ![fkoerner](https://dub1.discourse-cdn.com/flex013/user_avatar/forum.rasa.com/fkoerner/32/11784_2.png) [@fkoerner](https://forum.rasa.com/u/fkoerner)\
**Post date:** [June 16, 2021, 8:35am UTC](https://forum.rasa.com/t/story-flow-prediction-gets-confused-deciding-which-path-to-take/44552/9 "2021-06-16T08:35:27Z")

</div>

@tuhinsom there are no dumb questions, we’re here to help and if something’s unclear we want to improve that!

> should I move all the conditions mentioned in the stories and create rules for each corresponding story

The answer to this is case-by-case. Rules should be used carefully: if a rule applies in a situation it will always take effect. If it _almost_ applies (meaning, for example, there is only one small difference), the system can’t generalise. So you are probably best off using a combination of rules and stories. This is also why rules should be kept short.

> How would the stories be rewritten if these rules are the way you said?

It sounds like you have a contradiction, could you share this? Then we can look at how the stories should be changed to account for the rules.

> would there be only 2 rules generally written as you mentioned that would work for all the story patterns? or there would be different rule pairs for each story-pairs?

Again, you want the rules to be short. This means you shouldn’t turn a whole story into a rule. But rules are snippets and can be pieced together combinatorially, provided that the rules apply. The `RulePolicy` will use the longest applicable rule for prediction, regardless of which rule has or hasn’t been applied in the past.

---

<div class="post-metadata">

**Author:** ![tuhinsom](https://dub1.discourse-cdn.com/flex013/user_avatar/forum.rasa.com/tuhinsom/32/15336_2.png) [@tuhinsom](https://forum.rasa.com/u/tuhinsom)\
**Post date:** [June 16, 2021, 9:04am UTC](https://forum.rasa.com/t/story-flow-prediction-gets-confused-deciding-which-path-to-take/44552/10 "2021-06-16T09:04:34Z")

</div>

@fkoerner , ok let me share the stories: [https://][pastebin.com/XzqUaXug](http://pastebin.com/XzqUaXug)

The domain: [https://][pastebin.com/FHJEwmW5](http://pastebin.com/FHJEwmW5)

config already shared

regards.

---

<div class="post-metadata">

**Author:** ![tuhinsom](https://dub1.discourse-cdn.com/flex013/user_avatar/forum.rasa.com/tuhinsom/32/15336_2.png) [@tuhinsom](https://forum.rasa.com/u/tuhinsom)\
**Post date:** [June 16, 2021, 9:42am UTC](https://forum.rasa.com/t/story-flow-prediction-gets-confused-deciding-which-path-to-take/44552/11 "2021-06-16T09:42:15Z")

</div>

@fkoerner , I was unaware that the previous post was hidden due to suspicion of the links posted. I later saw that and hence reposting the data files:

ok let me share the stories: [https://][pastebin.com/XzqUaXug](http://pastebin.com/XzqUaXug)

The domain: [https://][pastebin.com/FHJEwmW5](http://pastebin.com/FHJEwmW5)

config already shared

regards.

---

<div class="post-metadata">

**Author:** ![fkoerner](https://dub1.discourse-cdn.com/flex013/user_avatar/forum.rasa.com/fkoerner/32/11784_2.png) [@fkoerner](https://forum.rasa.com/u/fkoerner)\
**Post date:** [June 21, 2021, 9:55am UTC](https://forum.rasa.com/t/story-flow-prediction-gets-confused-deciding-which-path-to-take/44552/12 "2021-06-21T09:55:22Z")

</div>

Hi @tuhinsom, I see the issue now. I think your problem is that the the action taken after:

`- action: action_verify_select_application`

is dependent on quite a few turns in the past. All three of: `generic dissatisfaction path current site`, `searching issue path current site`, and `site accessibility path current site` contain the following:

```auto
  - action: action_set_focussed_intent
  - action: utter_ask_application_context
  - intent: choose_current_application
    entities:
    - current_application: true
  - slot_was_set:
    - current_application: true
  - action: action_verify_select_application

```

but only the `site accessibility` story predicts the action `utter_express_sorry`, which is dependent on the intent `site_accessibility_issue` quite a few turns ago. One way to disambiguate these would be to set a slot with the user’s dissatisfaction reason when they utter one of the intents: `site_accessibility_issue`, `searching_issue`, `generic_dissatisfaction`. You could call this slot `dissatisfaction_reason`. Then, you can write a rule for the different combinations of `current_application` + `dissatisfaction_reason`. Don’t forget to add the slot to your domain!

```auto
rules:
- rule: current app accessibility
  condition:
   - slot_was_set:
     - current_application: true
     - reason_dissatisfaction: accessibility
  steps:
  - action: action_verify_select_application
  - action: utter_express_sorry
  wait_for_user_input: false

- rule: not current app accessibility
  condition:
  - slot_was_set:
    - current_application: false
    - reason_dissatisfaction: accessibility
  steps:
  - action: action_verify_select_application
  - intent: choose_app
  - action: utter_express_sorry
  wait_for_user_input: false

- rule: not current app search or generic
  condition:
  - slot_was_set:
    - current_application: false
  steps:
  - action: action_verify_select_application
  - intent: choose_app
  - action: action_serve_curated_answers
  wait_for_user_input: false

- rule: current app search or generic
  condition:
  - slot_was_set:
    - current_application: true
  steps:
  - action: action_verify_select_application
  - action: action_serve_curated_answers
  wait_for_user_input: false

```

You’ll also have to add this slot to stories like so:

```auto
- story: site accessibility path different site
  steps:
  - intent: greet
  - action: utter_greet
  - action: utter_help
  - intent: site_accessibility_issue
  - action: action_set_focussed_intent
  - action: utter_ask_application_context
  - intent: choose_current_application
    entities:
    - current_application: false
  - slot_was_set:
    - current_application: false
    - reason_dissatisfaction: accessibility
  - action: action_verify_select_application
  - intent: choose_app
  - action: utter_express_sorry
  - action: action_serve_curated_answers
  - action: utter_ask_bot_helpful
 
- story: site accessibility path current site
  steps:
  - intent: greet
  - action: utter_greet
  - action: utter_help
  - intent: site_accessibility_issue
  - action: action_set_focussed_intent
  - action: utter_ask_application_context
  - intent: choose_current_application
    entities:
    - current_application: true
  - slot_was_set:
    - current_application: true
    - reason_dissatisfaction: accessibility
  - action: action_verify_select_application
  - action: utter_express_sorry
  - action: action_serve_curated_answers
  - action: utter_ask_bot_helpful

```

---

<div class="post-metadata">

**Author:** ![tuhinsom](https://dub1.discourse-cdn.com/flex013/user_avatar/forum.rasa.com/tuhinsom/32/15336_2.png) [@tuhinsom](https://forum.rasa.com/u/tuhinsom)\
**Post date:** [June 21, 2021, 10:54am UTC](https://forum.rasa.com/t/story-flow-prediction-gets-confused-deciding-which-path-to-take/44552/13 "2021-06-21T10:54:15Z")

</div>

@fkoerner , I am introspecting on the gaps I have with the explanation you provided. Let me try the changes and get back. here… Warm regards.

---

<div class="post-metadata">

**Author:** ![tuhinsom](https://dub1.discourse-cdn.com/flex013/user_avatar/forum.rasa.com/tuhinsom/32/15336_2.png) [@tuhinsom](https://forum.rasa.com/u/tuhinsom)\
**Post date:** [June 21, 2021, 11:09am UTC](https://forum.rasa.com/t/story-flow-prediction-gets-confused-deciding-which-path-to-take/44552/14 "2021-06-21T11:09:19Z")

</div>

@fkoerner , I now see where you are getting at. I was trying to achieve the same conditional treatment by looking at the intent and taking the next step in actions:

```
class ServeCuratedAnswers(Action):  
    def name(self):
        return "action_serve_curated_answers"

    def run(self,dispatcher,tracker,domain):
                 
        if tracker.get_slot("focussed_intent") == None :
            latest_intent = tracker.latest_message['intent'].get('name')
        else :
            latest_intent = tracker.get_slot("focussed_intent")

        ent = tracker.latest_message['entities']

        # for name in confvars.options('DEFAULT'):
        API_endpoint = getSysConfig('DEFAULT','CURATION_ENDPOINT')

        entities = []

        if len(ent) > 0 :

            for eachEnt in ent:

                entities.append({ eachEnt['entity']: eachEnt['value']})

        if latest_intent == 'site_accessibility_issue':

            message = API_endpoint + 'Sorry, you faced the issue, let us find some solution for you'; 

            response = callCloudAPI(API_endpoint, 'post', {'entities': entities})

            resp_msg = [{'response':json.loads(response.text),'bot_message':message}]

        elif latest_intent == 'generic_dissatisfaction':
                message = 'Sorry, you feel dissapointed, please read the following article on the issues:'

            response = callCloudAPI(API_endpoint, 'post', {'entities': entities})

            resp_msg = [{'response':json.loads(response.text),'bot_message':message}]

```

I appreciate your point of view and will try to adapt. Will come back here by letting you know the outcome of the changes I make.

Thanks again.

---

<div class="post-metadata">

**Author:** ![fkoerner](https://dub1.discourse-cdn.com/flex013/user_avatar/forum.rasa.com/fkoerner/32/11784_2.png) [@fkoerner](https://forum.rasa.com/u/fkoerner)\
**Post date:** [June 22, 2021, 6:45am UTC](https://forum.rasa.com/t/story-flow-prediction-gets-confused-deciding-which-path-to-take/44552/15 "2021-06-22T06:45:31Z")

</div>

Oh I see! @tuhinsom, in general it’s best to let the rasa system predict the next action. Otherwise, if prediction is “hidden” from the system, it will fail to generalise, and also distinguish between cases. As a general rule of thumb, you should only output an action from a custom action if this does not branch and isn’t expected to affect prediction.

Let me know how this goes, I’m confident we can figure this out 🙂

---

<div class="post-metadata">

**Author:** ![tuhinsom](https://dub1.discourse-cdn.com/flex013/user_avatar/forum.rasa.com/tuhinsom/32/15336_2.png) [@tuhinsom](https://forum.rasa.com/u/tuhinsom)\
**Post date:** [June 24, 2021, 3:13am UTC](https://forum.rasa.com/t/story-flow-prediction-gets-confused-deciding-which-path-to-take/44552/16 "2021-06-24T03:13:37Z")

</div>

@fkoerner , after all the changes I made I am stuck on the blocker on my newly bought Mac M1 chip issue with rasa currently. Not sure when I will get to check it. Although an option is there to setup. a docker of linux and try to setup rasa on it anew, but that would downgrade the performance, which is the primary objective of buying a Mac M1 with 16 core neural engine.

---

<div class="post-metadata">

**Author:** ![tuhinsom](https://dub1.discourse-cdn.com/flex013/user_avatar/forum.rasa.com/tuhinsom/32/15336_2.png) [@tuhinsom](https://forum.rasa.com/u/tuhinsom)\
**Post date:** [June 24, 2021, 3:20am UTC](https://forum.rasa.com/t/story-flow-prediction-gets-confused-deciding-which-path-to-take/44552/17 "2021-06-24T03:20:25Z")

</div>

1 question on this, did you leave out the slot - reason\_dissatisfaction: part from the trailing rules in your example, deliberately?

However, I need the action\_serve\_curated\_answers action at the end of every rule or story to execute with proper parameter value (reason\_dissatisfaction value is all I need there to call the correct api), utter\_express\_sorry is not enough to end the conversation in any case. But I understand what you mean.

---

<div class="post-metadata">

**Author:** ![fkoerner](https://dub1.discourse-cdn.com/flex013/user_avatar/forum.rasa.com/fkoerner/32/11784_2.png) [@fkoerner](https://forum.rasa.com/u/fkoerner)\
**Post date:** [June 25, 2021, 11:20am UTC](https://forum.rasa.com/t/story-flow-prediction-gets-confused-deciding-which-path-to-take/44552/18 "2021-06-25T11:20:53Z")

</div>

> I am stuck on the blocker on my newly bought Mac M1 chip issue with rasa

Yep, we’re aware of a number of users blocked by this. We’re working on it!

> did you leave out the slot - reason\_dissatisfaction: part from the trailing rules in your example

I did this because these rules apply whenever `reason_dissatisfaction` isn’t `accessibility`, i.e. it could be something else, like `searching_issue` or `generic_dissatisfaction`

---

<div class="post-metadata">

**Author:** ![tuhinsom](https://dub1.discourse-cdn.com/flex013/user_avatar/forum.rasa.com/tuhinsom/32/15336_2.png) [@tuhinsom](https://forum.rasa.com/u/tuhinsom)\
**Post date:** [June 26, 2021, 10:49am UTC](https://forum.rasa.com/t/story-flow-prediction-gets-confused-deciding-which-path-to-take/44552/19 "2021-06-26T10:49:27Z")

</div>

@fkoerner , I have stuck into the following issue (as I was trying to do rasa train) after I upgraded the TensorFlow to 2.4.0-rc0 from 2.3.1 which supports M1 chip:

File “/Users/tuhinsom/devel/python\_projects/virtual-assistant/chatbotrasaproject/lib/python3.8/site-packages/rasa/utils/tensorflow/temp\_keras\_modules.py”, line 37, in TmpKerasModel @ training.enable\_multi\_worker AttributeError: module ‘tensorflow.python.keras.engine.training’ has no attribute ‘enable\_multi\_worker’

and I checked that the tensorflow library tagged 2.4.0 training.py file actually did not have the method enable\_multi\_worker

The wheels that I used to upgrade TensorFlow are:

```
pip install pip wheel setuptools cached-property six
pip install "tensorflow_macos/x86_64/grpcio-1.33.2-cp38-cp38-macosx_10_16_x86_64.whl"
pip install "tensorflow_macos/x86_64/h5py-2.10.0-cp38-cp38-macosx_10_16_x86_64.whl"
pip install "tensorflow_macos/x86_64/numpy-1.18.5-cp38-cp38-macosx_10_16_x86_64.whl"
pip install "tensorflow_macos/x86_64/scipy-1.5.4-cp38-cp38-macosx_10_16_x86_64.whl"
pip install "tensorflow_macos/x86_64/tensorflow_addons-0.11.2+mlcompute-cp38-cp38-macosx_10_16_x86_64.whl"
pip install absl-py astunparse flatbuffers gast google_pasta keras_preprocessing opt_einsum protobuf tensorflow_estimator termcolor typing_extensions wrapt wheel tensorboard typeguard
pip install "tensorflow_macos/x86_64/tensorflow_macos-0.1a0-cp38-cp38-macosx_10_16_x86_64.whl"

```

source : [github.com/apple/tensorflow\_macos/releases/download/v0.1alpha0/tensorflow\_macos-0.1alpha0.tar.gz](http://github.com/apple/tensorflow_macos/releases/download/v0.1alpha0/tensorflow_macos-0.1alpha0.tar.gz)

---

<div class="post-metadata">

**Author:** ![fkoerner](https://dub1.discourse-cdn.com/flex013/user_avatar/forum.rasa.com/fkoerner/32/11784_2.png) [@fkoerner](https://forum.rasa.com/u/fkoerner)\
**Post date:** [June 28, 2021, 10:02am UTC](https://forum.rasa.com/t/story-flow-prediction-gets-confused-deciding-which-path-to-take/44552/20 "2021-06-28T10:02:56Z")

</div>

Hi, yes, there is currently no way to run Rasa on an M1 mac because it is not yet compatible with tensorflow 2.5. We’re working on this, and will update [this post](http://forum.rasa.com/t/apple-m1-illegal-hardware-instruction-using-any-rasa-command) when done
