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 )]