Hello, I already spent lots of hours to figure out why my custom action doesnt call. inside my rules.yml
- rule: Respond to where to buy money bags
steps:
- intent: ask_where_to_buy_money_item
- action: action_validate_product <—this line try to call actions.py
inside actions.py class ValidateProductAction(Action): def name(self) → Text: return “action_validate_product”
def run(self, dispatcher: CollectingDispatcher, tracker: Tracker, domain: Dict[Text, Any]) -> List[Dict[Text, Any]]:
product_entity = next(tracker.get_latest_entity_values("brand"), None)
print("alex this is called from outside")
if product_entity and product_entity.lower() != "monkey":
dispatcher.utter_message("Sorry, we only offer monkey bags. Please ask for a monkey bag.")
return [SlotSet("brand", None)]
return []
in nlu.yml
- intent: ask_where_to_buy_designated_item
examples: |
- Where can we buy a monkey bag?
end point also running…but seems never call. I want to accept “monkey” as the keyword, other than that, I will give “sorry message”