Some times tracker.get_slots() return as None value


I’m trying custom actions in my Bot application using Python script

def run(self, dispatcher, tracker, domain): print(tracker.get_slot(‘PERSON’))

Following is my trained data

Looking for Muthu

When I type “Looking for Muthu” in Bot UI the tracker returns “Muthu” as entity/slot

But I type “Looking for Venu” the tracker returns none

It cann’t able to identify the other than Muthu as Person entity.

I’m using following configuration


  • name: “nlp_spacy”
  • name: “tokenizer_spacy”
  • name: “intent_entity_featurizer_regex”
  • name: “intent_featurizer_spacy”
  • name: “ner_crf”
  • name: “ner_spacy”
  • name: “ner_synonyms”
  • name: “intent_classifier_sklearn”

Are you training this entity extraction using CRF? This article might help

Thanks for the reply souvikg , As per the link I upgraded my RASA - NLU version to 0.13

And added the ## lookup: PERSON data/Person/Person.txt

Then train my data by using the following command python train-all

But the lookup element doesn’t add in training_data.json

Do I miss anything?

Not sure what is the issue, you just need to add the lookup object in your training data and train a CRF with some of the examples from your lookup to create a patter of identification

"lookup_tables": [ 
                    "name": "company",
                    "elements": "data/company/startups.csv"

Hi Lakshmi,

If i am trying to print tracker.get_slot(’’) i am getting the below error TabError: inconsistent use of tabs and spaces in indentation

My exact statement looks like - print(tracker.get_slot(‘cuisine’))

Just wanted to see the values present in the slots in my customized action.

Do you have any inputs ?


It got resolved…Some issue with the tab fields in that line…Deleted and wrote again.Thanks!


Yes I did , Following are the steps done

1, Upgraded rasa_nlu : 0.13.5

2, Added Lookup_tables in MD file instead of json



3, Then updated config file as follows


  • name: “nlp_spacy”

  • name: “tokenizer_spacy”

  • name: “intent_entity_featurizer_regex”

  • name: “intent_featurizer_spacy”

  • name: “ner_spacy”

  • name: “ner_synonyms”

  • name: “intent_classifier_sklearn”

  • name: "ner_crf"

    features: [ [“low”, “title”, “upper”], [“bias”, “low”, “prefix5”, “prefix2”, “suffix5”, “suffix3”, “suffix2”, “upper”, “title”, “digit”, “pattern”], [“low”, “title”, “upper”] ]

Then i executed train command . My training_data.json has the following update

“lookup_tables”: [ { “name”: “Person”, “elements”: “data/Person/Person.txt” } ],

Now I’m running rasa_nlu server Still I’m getting None response for Tracker

is your slot_name the same as the entity name?


can you simply call the NLU to see if the Person entity is detected or not

Yes it is PERSON


It detects the PERSON entity, thus why i mentioned sometimes getting None value.

In my training data, added some examples like

Looking for Muthu

Would like to about Lakshmi

So “print(tracker.get_slot(‘PERSON’))” can able to returns Muthu or Lakshmi. If i try some other names its prints nothing

I will have to test the pipeline to see why this isn’t working. Will let you know


Can anybody have solution for this issue