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()]
Example #2
0
 def run(
     self,
     dispatcher: CollectingDispatcher,
     tracker: Tracker,
     domain: Dict[Text, Any],
 ) -> List[EventType]:
     return [ConversationPaused()]
Example #3
0
    def test_goodbye(self):
        tracker = self.create_tracker()

        self.run_action(tracker)

        self.assert_events([ConversationPaused()])

        self.assert_templates(["utter_goodbye"])
Example #4
0
    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"])
Example #5
0
    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()]
Example #6
0
    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"]
        )
Example #7
0
    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"])
Example #8
0
    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"]
        )
Example #9
0
    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()]
Example #10
0
    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()]
Example #11
0
    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([{}, {}, {}, {}])
Example #12
0
    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])
Example #14
0
    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()]
Example #15
0
    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()]
Example #16
0
    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()]
Example #17
0
 def run(self, dispatcher, tracker, domain) -> List[EventType]:
     return [ConversationPaused()]
Example #18
0
    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 ()
Example #20
0
 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()]