Force Intent on user input but do entity extraction

I know the intent of the user before it goes into RASA as input and there are a lot of varied phrases that can be part of the intent (hence, I want to avoid creating training data for it) but I still do want the entity extraction to take place. Is this feasible?

Hey @nik202 , thanks for responding. So, the thing is this query that the user inputs can be anything but I want to run a custom action for it. And for that to happen I need to classify it into a certain intent. Since, the input to RASA would not come directly from the user and I can alter it I was wondering if I could add a special character or something to the query so that the particular intent is forced but the entity parsing still happens.

Let me give you an example, cause I think I didn’t get my point across So the query can be anything,

  1. tomorrow at 4 pm
  2. Starbucks at Locale
  3. meeting at 2 pm …

My application knows that all the above queries should have their entities parsed and run a custom action on them. How can I get this done without intent classification or force it into one intent? This text can be anything but the application would know before hand that this text needs the special treatment.

@nik202 , I know what intents and entities are. I want to run the query through the RASA pipeline but avoid its intent classification or force an intent cause I want to run this particular custom action for these queries.

In theory you can run the NLU part of Rasa without the core part of Rasa. But just to be clear, do you want run the entity predictions via a server/from a Jupyter notebook? Or do you want to have an assistant that only has one intent and handles everything else with a custom action that uses the found entities?

To run the former, you can run Rasa NLU as a webservice via;

rasa run --enable-api

You can also use a trained Rasa pipeline from Jupyter. I wrote a helper tool here but there’s also this blogpost that explains it more detail.

Hi @koaning ,

Thanks a lot for responding! I have multiple intents in my assistant and it works perfectly fine. The problem is with this one kind of input which can be any query text and we just want to extract the entities from it and run a custom action. But if I understand right a custom action will be run if it is part of the stories/ rules for example: if the query is this intent → run this action So basically I want to run entity extraction and custom action whenever a user enters these queries regardless of the intent detected.

Hence, I was wondering maybe I can force an intent and write in the rules that run the custom action if the intent is detected OR the other thing I was thinking of was to write a custom component and add it to the pipeline at the end and overwrite the intent detected, don’t know if that is feasible though?

Just to check, are you interested in building a form?

Hey @koaning , I wrote a component to overwrite the intent, it is working. Thanks a lot!

Can you help me how to write component for that? I also want to extract user text in action.py file without intent but not able to do.