Sub intents


currently my use case is:

user: can you fetch details of 12345678 ticket
ticket no. : 12345678
created by: skukgfr
start date: 20/11/2021
due date: 21/12/2021

i know how this can be achieved. but what if the user asks for a specific field, like

user: can you provide the start date of 12345678 ticket
<bot should reply with start date alone.>

i don’t want to create separate intents for each sub use-cases. i want to know if there is another way of achieving this.


No need for separate intents, just use entities and custom actions :slight_smile:

yep, i did think of using entities. but this means i will have to give examples for all the sub use cases right? in my case this is like 100s of sub use cases

so, something like this:

can you get the [start date](start_date) of [12345678](ticket_number) ticket
can you get the [end date](end_date) of [12345678](ticket_number) ticket
can you get the [creator](created_by) of [12345678](ticket_number) ticket


i could also do this

can you get the [start date](query) of [12345678](ticket_number)
can you get the [end date](query) of [12345678](ticket_number)
can you get the [creator](query) of [12345678](ticket_number)

but the problem with the second approach is that i need to map this to the field name ie start_date, end_date, created_by in this case

Yes, the first approach is better IMO.

You can use Duckling for extraction of entities like dates and numbers.

I will have to provide example for each of those fields right? Which means if I have 100s of such fields I’ll need atleast 100s of examples right?

That’s right

Now my issue is I have 10 such use cases that have sub use cases and 100 is the minimum number of such sub use cases. I see that the dataset will be growing and keep growing as I add more use cases. Right now I’m doing this all locally in my windows machine. As the dataset grows, it is going to take more time to train the model. How should I go about handling this? Does rasa support batch processing or any other techniques to make the training process faster and memory efficient?

@ChrisRahme any idea?

also adding @nik202 here :smiley:

@Juste any idea on how to go about this?

@lis. I think using entities would be the best approach for this (the one that Chris suggested as well). What would be the examples of other entities you would like your assistant to extract and what happens when the entities are extracted? Are you using them for querying the database?

1 Like

HI @Juste, Examples of other entities - date (Duckling), status etc I’m using the entities to make an api call. The api call is the same for all the sub use cases but I want to return only the requested field to the user instead of sending the entire response.