Can't set Slot

Hey folks! I somehow can’t set slots. And I have no idea what I’m doing wrong. Here are my files:

Unbenannt

Unbenannt3

The bot prints out “utter_sharepoint” flawlessly, but it seems to just ignore the

  • slot{“category1”: “sharepoint”}

Any help is appreachiated.

Have you created an entity with the same name as the slot? If not, try doing it.

2

Thank you for your answer. Yes I did. I tried with and without and everything I could think of. Here are some pictures as I can’t format the text here properly:

Unbenannt

Unbenannt3

Do you think the indentation might be a problem??. This image is from Slots

3

Compare it with yours.

While trying to change that I noticed that Rasa X seems to display the indentation differently than it is in the domain file itself. My screenshot is from Rasa X while in the Domain file it looks exactly like yours. When I try to put the value items at the same level as “values:” in Rasa X they jump back to their previous location as soon as I hit save.

Is it the same for ‘unknown’ value of category1??

It’s the same for all values. The domain file itself looks like this:

Unbenannt

I meant same for the action and the story. i.e

  • first_cat_unknown{category:unkown} slot… utter_unkown…

Unfortnunately yes.

I don’t know if this is done with categorical slots or not but did you label the entities in your nlu file?? example: i want leave on 31 dec.here (date) is a labeled entity from the whole intent.

Did you train your ‘unknown’ entity??

I did not but I will try that now. Thanks! I’ll report back if it worked. But I’m unsure if I would have to change the structure of my slots and stories then.

I don’t think so you would need to change the structure of slots and stories. What the labelling does is that it will just train the model to recognize ‘unknown’ or ‘sharepoint’ as an entity/slot.

It seems to work through training! But that way it would not be possible for rasa to differenciate between category level 1 e.g.“print”. And category level 2 e.g. “print_no_connection” or “print_no_paper” where category level 1 is already set as “print”. For example a user would write “I can not connect to the printer” Rasa could not categorize precisely enough as I believe I can not link “connect” and “printer” to be part of “print_no_connection”. I could just link “printer” to category level 1 “print”. Does that make sense?

I’m sorry, I’m not able to understand your problem. Won’t you have two different entities/slots for category 1 and category 2?

My goal is to provide a helpdesk bot which is going to help users with common problems and create a categorized ticket when it can not help. We have different helpdesk emloyees for different areas e.g. print, server, network. So when the ticket is beeing created I want it to be already categorized depending on the users question. It would not be a problem to just have one category “print” but I would like to provide my colleagues with more information. I just realize that I may misunderstand the usage of the categories. I thought that I could split the tree of possible stories by going through different category levels where each level is a little more precise than the one before. If I understand right now, the slots can basically just hold the information which the user inputs? So if the user would not write exactly “print” then he can never set the slot “category1” as “print” but just as any part of what he actually wrote?

Yes exactly, the input needs to be same. BUT you can train the model to identify different words which are similar in meaning to “print”. I don’t know in your application, what words or phrases or sentences can have similar meaning as “print”, but you get my point, right?

Yes I get it. Thank you! You helped me a lot.

1 Like

You’re very welcome. I’m glad I was able to help you.

1 Like

Hey! Thanks again for your help. I’d have one more question. I’m asking the user: “Please explain your problem” so the next input would be the explanation of the problem which could be anything. Therefore I can not extract it through training my model. I’d have to set it in the story I believe. Example (I know it’s wrong):

  • utter_what_is_your_problem
  • slot{“message_to_support”}
    • action_send_ticket

How would the story and domain file have to look like in order for me to be able to grab the slots value and use it in my action?

You don’t need to put everything in slots to use it. In this case, you could just take the entire user message and send it to your support. You can create a generic intent in times you need to retrieve a single slot value.

The story would be something like:

- utter_what_is_your_problem
* inform
- action_send_ticket