Inform Intent for random course names

Hello,

using rasa version: 2.2.6. Python version: 3.7.2

I am trying to build a chatbot story, where the user informs the chatbot about a course to get a specific result if the course is not already set. I encounter the problem, that if the course title is not one of the course titles in my training data (for the intent inform) the chatbot mostly does not understand or fails to match the intent.

So my story is this:

- story: get achievements course-not-set
  steps:
    - intent: get_achievements
    - action: action_course_set
    - slot_was_set:
      - course-set: false
    - action: utter_ask_which_course
    - intent: inform
      entities:
      - course-title: "Course A"
    - action: action_set_current_course
    - slot_was_set:
      - current_course_title: "Course A"
    - checkpoint: get_achievements

The structure of the course title cannot be regexed. The intent inform has about 15 course titles that are very different from each other. Does anyone have an idea how to get the intent inform right? Am I doing something wrong here?

Edit: As I have the list of courses the user could select from / inform the chatbot about, I was wondering if there is a way to update the intent on the fly? Or does that somehow works with slots as well? I am a bit clueless here how to proceed with inform

Please let me know if there is any other information I should provide that could help solve this problem :slight_smile:

One way to do this would be to use a form. Depending on how your conversation is structured, you could define a course_title slot of type ‘from_text’. Then that slot would be set no matter what within a form.

If you have the full list of courses for the user to choose from, then you could use a validation action to validate that the user input was one of those courses. A categorical slot type might also work (though I would avoid this due to the possibility of misspellings.)

It’s also possible that you need more training data. Although, if you were using a form as described above then no training data would be required since the slot would get filled no matter what.

what? I did not withdraw my post

Your post is still here, I just deleted one of my answers :slight_smile: