Sub-select slot mappings based on extractor

I really like being able to extract based on intent in slot mappings, but I don’t see a way here https://rasa.com/docs/core/_modules/rasa_core_sdk/forms/#FormAction to select based on extractor, is this possible now/in future?

I ask because if i am extracting a number the ner_crf gives a string whereas duckling gives an int, so the form actually extracts a list e.g. [ ‘12’, 12 ]. I could go through and parse this in the validate part, but it would be neat if i could just say ‘take the duckling one’. One might also end up trusting one extractor more than another for certain things (i imagine, i am not an expert)

The above could also just be me misunderstanding: should it be returning a list? I thought it would just pick whichever it matched first and ignore the rest.

Thanks!

I had a similar issue but for me, if I used ner_spacy’s inbuilt entities like CARDINAL, DATE etc it would always return a list (not sure why) of two values. When I use ner_crf, it returned a single string.

Ah right, i’m currently just using ner_crf and spacy for other stuff

language: "en"
pipeline:
- name: "nlp_spacy"
- name: "tokenizer_spacy"
- name: "intent_entity_featurizer_regex"
- name: "intent_featurizer_spacy"
- name: "ner_crf"
- name: "intent_featurizer_count_vectors"
- name: "intent_classifier_tensorflow_embedding"
- name: "ner_duckling_http"
  url:  "http://0.0.0.0:8000"
  dimensions: ["time", "number"]

do you think the other spacy stuff is responsible? I would have assumed it was because of duckling but i may be wrong.

Yea, probably spacy is responsible for this because I faced the issue only while using spacy’s entity. Maybe you can try removing the duckling and testing it to see if the issue remains. .

Hi there,

Did you find a solution ? thanks.