how to give out error messages if a user input doesn’t match any intents. Example: I am making a restaurant finding rasa bot, so I was thinking of making the rasa bot ask location of where the user is looking for a restaurant, So if there are no restaurants in location entered by the user how to return “sorry there are no restaurants in this location” message.
Hi @AayushDangol123! You can do this with a custom action. Once you get the user’s location you can call a custom action to check if there are any nearby restaurants. Based on the result you can respond back to your user with dispatcher.utter_message
notifying the user whether a restaurant was found or not.
For your use case that custom action could look something like this where you would check for nearby_restaurants
and then based on that result send a response to the user.
class ActionCheckRestaurants(Action):
def name(self) -> Text:
return "action_check_restaurants"
def run(self,
dispatcher: CollectingDispatcher,
tracker: Tracker,
domain: Dict[Text, Any]) -> List[Dict[Text, Any]]:
nearby_restaurants = tracker.get_slot('nearby_restaurants')
if nearby_restaurants:
dispatcher.utter_message("I found nearby restaurants")
else:
dispatcher.utter_message("Sorry, I couldn't find any restaurants nearby.")
return [SlotSet("nearby_restaurants", nearby_restaurants if nearby_restaurants is not None else [])]
1 Like