def run( self, dispatcher: CollectingDispatcher, tracker: Tracker, domain: Dict[Text, Any], ) -> List[EventType]: # Fallback caused by TwoStageFallbackPolicy lang = tracker.get_slot("language") if (len(tracker.events) >= 4 and tracker.events[-4].get("name") == "action_default_ask_affirmation"): dispatcher.utter_message(template="utter_restart_with_button") return [ SlotSet("feedback_value", "negative"), ConversationPaused() ] # Fallback caused by Core else: if lang == "hindi": dispatcher.utter_message(template="utter_default_hi") else: dispatcher.utter_message(template="utter_default") return [UserUtteranceReverted()]
def run( self, dispatcher: CollectingDispatcher, tracker: Tracker, domain: Dict[Text, Any], ) -> List[EventType]: return [ConversationPaused()]
def test_goodbye(self): tracker = self.create_tracker() self.run_action(tracker) self.assert_events([ConversationPaused()]) self.assert_templates(["utter_goodbye"])
def test_continue_ci_false(self): tracker = self.create_tracker(slots={CONTINUE_CI_SLOT: False}) self.run_action(tracker) self.assert_events([ConversationPaused()]) self.assert_templates(["utter_goodbye"])
def run( self, dispatcher: CollectingDispatcher, tracker: Tracker, domain: Dict[Text, Any], ) -> List[Dict[Text, Any]]: bind_logger(tracker) dispatcher.utter_message(template="utter_goodbye") return [ConversationPaused()]
async def test_continue_ci(self): tracker = self.create_tracker(slots={LAST_SYMPTOMS_SLOT: Symptoms.MILD}) await self.run_action(tracker) self.assert_events([ConversationPaused()]) self.assert_templates( ["utter_daily_ci_qa_will_contact_tomorrow", "utter_goodbye"] )
async def test_cancel_ci(self): tracker = self.create_tracker( slots={LAST_SYMPTOMS_SLOT: Symptoms.MILD, CANCEL_CI_SLOT: True} ) await self.run_action(tracker) self.assert_events([ConversationPaused()]) self.assert_templates(["utter_goodbye"])
def test_continue_ci_true(self): tracker = self.create_tracker(slots={CONTINUE_CI_SLOT: True}) self.run_action(tracker) self.assert_events([ConversationPaused()]) self.assert_templates( ["utter_daily_ci__qa__will_contact_tomorrow", "utter_goodbye"] )
async def run( self, dispatcher: CollectingDispatcher, tracker: Tracker, domain: Dict[Text, Any], ) -> List[Dict[Text, Any]]: bind_logger(tracker) dispatcher.utter_message(template="utter_severe_symptoms_recommendations_1") dispatcher.utter_message(template="utter_severe_symptoms_recommendations_2") dispatcher.utter_message(template="utter_severe_symptoms_recommendations_3") dispatcher.utter_message(template="utter_severe_symptoms_recommendations_4") return [ConversationPaused()]
def run( self, dispatcher: CollectingDispatcher, tracker: Tracker, domain: Dict[Text, Any], ) -> List[Dict[Text, Any]]: bind_logger(tracker) if tracker.get_slot(CANCEL_CI_SLOT) is False: dispatcher.utter_message( template="utter_daily_ci__qa__will_contact_tomorrow") dispatcher.utter_message(template="utter_goodbye") return [ConversationPaused()]
async def test_recommendations(self): tracker = self.create_tracker() await self.run_action(tracker) self.assert_events([ConversationPaused()]) self.assert_templates([ "utter_severe_symptoms_recommendations_1", "utter_severe_symptoms_recommendations_2", "utter_severe_symptoms_recommendations_3", "utter_severe_symptoms_recommendations_4", ]) self.assert_json_messages([{}, {}, {}, {}])
async def run( self, dispatcher: CollectingDispatcher, tracker: Tracker, domain: Dict[Text, Any], ) -> List[Dict[Text, Any]]: bind_logger(tracker) # Last symptoms slot tells us we are in a daily check-in conversation if (tracker.get_slot(LAST_SYMPTOMS_SLOT) is not None and tracker.get_slot(CANCEL_CI_SLOT) is not True): dispatcher.utter_message( template="utter_daily_ci_qa_will_contact_tomorrow") dispatcher.utter_message(template="utter_goodbye") return [ConversationPaused()]
def test_recommendations(self): tracker = self.create_tracker() self.run_action(tracker) self.assert_events([ConversationPaused()]) self.assert_templates([ "utter_severe_symptoms_recommendations_1", "utter_severe_symptoms_recommendations_2", "utter_severe_symptoms_recommendations_3", "utter_severe_symptoms_recommendations_4", None, ]) self.assert_json_messages([{}, {}, {}, {}, END_CONVERSATION_MESSAGE])
def run( self, dispatcher: CollectingDispatcher, tracker: Tracker, domain: Dict[Text, Any], ) -> List[EventType]: # Fallback caused by TwoStageFallbackPolicy if (len(tracker.events) >= 4 and tracker.events[-4].get("name") == "action_default_ask_affirmation"): dispatcher.utter_message(template="utter_restart_with_button") return [ConversationPaused()] # Fallback caused by Core else: dispatcher.utter_message(template="utter_default") return [UserUtteranceReverted()]
def run( self, dispatcher: CollectingDispatcher, tracker: Tracker, domain: Dict[Text, Any], ) -> List["Event"]: # Fallback caused by TwoStageFallbackPolicy if ( len(tracker.events) >= 4 and tracker.events[-4].get("name") == "action_default_ask_affirmation" ): dispatcher.utter_template("utter_restart_with_button", tracker) return [SlotSet("feedback_value", "negative"), ConversationPaused()] # Fallback caused by Core else: dispatcher.utter_template("utter_default", tracker) return [UserUtteranceReverted()]
def run(self, dispatcher: CollectingDispatcher, tracker: Tracker, domain: Dict[Text, Any]) -> List[Dict[Text, Any]]: is_asking = tracker.get_slot('state') == 'questions' if is_asking: dispatcher.utter_message( text="Gracias por responder a mis preguntas 😁") if self.__user_needs_evaluation(tracker): score_resolution = "Con la información que me has proporcionado he podido determinar que existe " \ "cierto riesgo de que estés sufriendo un trastorno del ánimo. Por lo tanto, " \ "es importante que te pongas en contacto con un profesional de la salud para " \ "realizar una evaluación más completa." else: score_resolution = "Con la información que me has proporcionado he podido determinar que no " \ "existe un riesgo alto de que padezcas un trastorno del ánimo. No obstante, " \ "te recomiendo que si notas cualquier malestar te pongas en contacto con tu " \ "profesional de la salud." dispatcher.utter_message(text=score_resolution) else: dispatcher.utter_message( text="Está bien. ¡Espero hablar contigo en otro momento!") return [ConversationPaused()]
def run(self, dispatcher, tracker, domain) -> List[EventType]: return [ConversationPaused()]
def run(self, dispatcher, tracker, domain): return [ConversationPaused()]
def run(self, dispatcher, tracker, domain): global fallback_num_inside_form global fallback_num #global fallback_counts #intent = tracker.latest_message['intent'].get('name') #print("----INTENT-----",intent) #latest_action = tracker.latest_action_name #print("----latest _ action -----",latest_action) #latest_message = tracker.latest_message #print("---- latest_message -----",latest_message) #followup_action = tracker.followup_action #print("----followup_action -----",followup_action) requested_slt = tracker.get_slot("requested_slot") #latest_entity_values = tracker.get_latest_entity_values("requested_slot") #current_state = tracker.current_state() current_slot_values = tracker.current_slot_values() #print("latest_entity_values",latest_entity_values,"current_state",current_state,"current_slot_values",current_slot_values) print("requested_slot", requested_slt) print("current_slot_values", current_slot_values) active_form = tracker.active_form print("---- active_form -----", active_form) if active_form: #INSIDE FORM FALLBACK active_form_name = active_form['name'] print("---- In active form ==>", active_form_name) fallback_num_inside_form += 1 if fallback_num_inside_form == 5: print("....... INside form COUNTS ===> 3 .......") dispatcher.utter_template("utter_exceed_fallback", tracker, silent_fail=True) dispatcher.utter_template("utter_submit", tracker, silent_fail=True) fallback_num_inside_form = 0 return [ConversationPaused()] else: if requested_slt == 'age': dispatcher.utter_message( "Age is not valid or not allowed, please try again.") elif requested_slt == 'mobileNumber': dispatcher.utter_message( "Mobile number is incorrect, please try again") elif requested_slt == 'accountType': dispatcher.utter_template("utter_wrong_accountType", tracker, silent_fail=True) #elif requested_slt == 'name': # dispatcher.utter_message("") elif requested_slt == 'OTP': dispatcher.utter_message( "OTP is incorrect. Please try again") elif requested_slt == 'account_id': dispatcher.utter_template("utter_wrong_account_id", tracker, silent_fail=True) elif requested_slt == 'amount_transfer': dispatcher.utter_message( "It's a wrong amount, Please enter an amount from 50 to 2000 with the currency of the transaction." ) #elif requested_slt == 'residence': # dispatcher.utter_message("") elif requested_slt == 'transfer_to_id': dispatcher.utter_template("utter_wrong_account_id", tracker, silent_fail=True) #elif requested_slt == 'profession': # dispatcher.utter_message("") elif requested_slt == 'general_account_id': dispatcher.utter_template("utter_wrong_account_id", tracker, silent_fail=True) return [(FollowupAction(active_form_name))] else: # OUTSIDE FORM FALLBACK fallback_num += 1 if fallback_num == 5: print("....... IN COUNTS 3 .......") dispatcher.utter_template("utter_exceed_fallback", tracker, silent_fail=True) dispatcher.utter_template("utter_submit", tracker, silent_fail=True) fallback_num = 0 else: dispatcher.utter_template("utter_default", tracker, silent_fail=True) dispatcher.utter_template("utter_offer_help", tracker, silent_fail=True) #if not active_form : # dispatcher.utter_template("utter_offer_help", tracker, silent_fail=True) # return [UserUtteranceReverted()] return ()
def run(self, dispatcher: CollectingDispatcher, tracker: Tracker, domain: Dict[Text, Any]) -> List[Dict[Text, Any]]: dispatcher.utter_message(text="❤️Espero que te encuentres mucho mejor❤️") dispatcher.utter_message(text="Cuando quieras volver a practicar esta técnica u otra avísame") return [ConversationPaused()]