Esempio n. 1
0
    def run(self, dispatcher: CollectingDispatcher, tracker: Tracker,
            domain: Dict[Text, Any]) -> List[Dict[Text, Any]]:

        # choose random quiz
        #max_id = quizzes.find().sort({_id:-1}).limit(1)["_id"]
        rand_id = random.randint(0, 2)
        quiz = quizzes.find_one({"_id": rand_id})

        # print(quiz['fen'].split())
        fen = Board(quiz['fen'].split())
        if fen.isvalid:
            fmt = "png"
            if not os.path.isdir(OUTPUT):
                # Handle if directory is not valid
                os.mkdir(OUTPUT)
                print("Creating new directory: {}".format(OUTPUT))
            boardImg = DrawImage(fen, fmt, OUTPUT, "result")
            boardImg.create()
            boardImg.to_image()
            print("Completed! File created in {}/{}.{}".format(
                OUTPUT, "result", fmt))
        else:
            print("Invalid FEN. No Image file was generated.")

        dispatcher.utter_template('utter_image',
                                  tracker,
                                  output="./result.png")

        return []
Esempio n. 2
0
    def validate_outdoor_seating(
        self,
        value: Text,
        dispatcher: CollectingDispatcher,
        tracker: Tracker,
        domain: Dict[Text, Any],
    ) -> Any:
        """Validate outdoor_seating value."""

        if isinstance(value, str):
            if "out" in value:
                # convert "out..." to True
                return {"outdoor_seating": True}
            elif "in" in value:
                # convert "in..." to False
                return {"outdoor_seating": False}
            else:
                dispatcher.utter_template("utter_wrong_outdoor_seating",
                                          tracker)
                # validation failed, set slot to None
                return {"outdoor_seating": None}

        else:
            # affirm/deny was picked up as T/F
            return {"outdoor_seating": value}
Esempio n. 3
0
    def run(self, dispatcher: CollectingDispatcher, tracker: Tracker,
            domain: Dict[Text, Any]) -> List[Dict[Text, Any]]:

        user_id = tracker.get_slot("user_id")

        # Recebe rastreadores da aapi
        trackers = requests.get(
            f'http://localhost:10000/api/actions/{user_id}/trackers')
        data = trackers.json()
        tks = []

        # Imprime sequencia de msg informando os dados da conta do usuario

        is_activated = "ativa"
        if (tracker.slots["is_actived"] == False):
            is_activated = "inativa"

        dispatcher.utter_template("utter_mostrar_dados", tracker)
        dispatcher.utter_message(f"sua conta está {is_activated} \n")

        dispatcher.utter_message("Seus rastreadores: \n")
        for tk in data:
            tks.append(tk['name'])
            dispatcher.utter_message(
                f"{tk['name']} - {tk['phone']} - imei- {tk['imei']}" + "\n")

        return [SlotSet("rastreadores", {"tk": tks})]
Esempio n. 4
0
    def validate(self, dispatcher: CollectingDispatcher, tracker: Tracker,
                 domain: Dict[Text, Any]) -> List[Dict]:
        """Validate extracted requested slot
            else reject the execution of the form action
        """
        # extract other slots that were not requested
        # but set by corresponding entity
        slot_values = self.extract_other_slots(dispatcher, tracker, domain)
        logger.info("validate, slot_values: {}".format(slot_values))

        # extract requested slot
        slot_to_fill = tracker.get_slot(REQUESTED_SLOT)
        logger.info("validate, slot_to_fill: {}".format(slot_to_fill))
        if slot_to_fill:
            slot_values.update(
                self.extract_requested_slot(dispatcher, tracker, domain))
            if not slot_values:
                dispatcher.utter_message(
                    "Sorry, I could not understand your response.")

        for slot, value in slot_values.items():
            if slot == 'penalty_location':
                if value.lower() not in self.valid_penalty_location():
                    logger.debug("Invalid location type: {}".format(value))
                    dispatcher.utter_template('utter_invalid_penalty_area',
                                              tracker)
                    # validation failed, set slot to None
                    slot_values[slot] = None

        # validation succeed, set the slots values to the extracted values
        return [SlotSet(slot, value) for slot, value in slot_values.items()]
Esempio n. 5
0
    def submit(
        self,
        dispatcher: CollectingDispatcher,
        tracker: Tracker,
        domain: Dict[Text, Any],
    ) -> List[EventType]:
        """Once we have all the information, attempt to add it to the
        Google Drive database"""

        import datetime

        budget = tracker.get_slot("budget")
        company = tracker.get_slot("company")
        email = tracker.get_slot("business_email")
        job_function = tracker.get_slot("job_function")
        person_name = tracker.get_slot("person_name")
        use_case = tracker.get_slot("use_case")
        date = datetime.datetime.now().strftime("%d/%m/%Y")

        sales_info = [company, use_case, budget, date, person_name, job_function, email]

        try:
            gdrive = GDriveService()
            gdrive.store_data(sales_info)
            dispatcher.utter_template("utter_confirm_salesrequest", tracker)
            return []
        except Exception as e:
            logger.error(
                "Failed to write data to gdocs. Error: {}" "".format(e.message),
                exc_info=True,
            )
            dispatcher.utter_template("utter_salesrequest_failed", tracker)
            return []
    def submit(
        self,
        dispatcher: CollectingDispatcher,
        tracker: Tracker,
        domain: Dict[Text, Any],
    ) -> List[Dict]:
        """Define what the form has to do
            after all required slots are filled"""

        cur_int = tracker.latest_message.get("intent").get("name")
        cur_ent = tracker.latest_message.get("entities")

        if cur_int == "ask_weather" and not cur_ent:
            dispatcher.utter_template("utter_confirm_weather_location",
                                      tracker)
            return []
        elif cur_int == "deny":
            dispatcher.utter_template("utter_ask_weather_location", tracker)
            return []

        msg = ("Weather in " + str(self.loc) + " is " + str(self.condition) +
               " with " + str(self.degree) + " Celcius")

        dispatcher.utter_message(msg)

        return []
Esempio n. 7
0
    def run(
        self,
        dispatcher: CollectingDispatcher,
        tracker: Tracker,
        domain: Dict[Text, Any],
    ) -> List["Event"]:
    
        intent = tracker.latest_message["intent"].get("name")

        # retrieve the correct chitchat utterance dependent on the intent
        if intent in [
            "ask_builder",
            "ask_weather",
            "ask_howdoing",
            "ask_whatspossible",
            "ask_time",
            "ask_wherefrom",
            "ask_whoami",
            "handleinsult",
            "telljoke",
            "ask_whatismyname",
            "ask_howbuilt",
            "ask_whoisit",
            "out_of_scope"
        ]:
            dispatcher.utter_template("utter_" + intent, tracker)

        dispatcher.utter_template("utter_default", tracker)
        return [UserUtteranceReverted()]
        
Esempio n. 8
0
    def validate_used_vip_duration(
        self,
        value: Text,
        dispatcher: CollectingDispatcher,
        tracker: Tracker,
        domain: Dict[Text, Any],
    ) -> Dict[Text, Any]:
        requested_slot = tracker.current_state()['slots']['requested_slot']
        if requested_slot != 'used_vip_duration':
            return {"used_vip_duration": tracker.get_slot('used_vip_duration')}

        _, _, _, used_days = convert_duration(value)
        buy_vip_duration = tracker.get_slot('buy_vip_duration')
        if buy_vip_duration is not None:
            _, _, _, bought_days = convert_duration(buy_vip_duration)
            if used_days > bought_days:
                dispatcher.utter_template(
                    'utter_request_valid_used_vip_duration', tracker)
                return {"used_vip_duration": None, "duration": None}
        if used_days < 1:
            dispatcher.utter_template('utter_request_valid_used_vip_duration',
                                      tracker)
            return {"duration": None, "used_vip_duration": None}

        return {"duration": None, "used_vip_duration": value}
Esempio n. 9
0
    def run(self, dispatcher: CollectingDispatcher,
            tracker: Tracker,
            domain: Dict[Text, Any]) -> List[Dict[Text, Any]]:
        r = 'http://www.rochester.edu/sba/wp-content/uploads/2018/04/map-to-SBAC-1.jpg'

        dispatcher.utter_template("utter_sorry", tracker, image=r)
        return []
Esempio n. 10
0
 def run(self, dispatcher: CollectingDispatcher, tracker: Tracker,
         domain: Dict[Text, Any]) -> List[Dict[Text, Any]]:
     post_package = tracker.get_slot('post_package')
     results = []
     if post_package != None:
         post_package = post_package.lower()
         if post_package in [
                 'tin thuong', 'tin thường', 'tinthường', 'tinthuong'
         ]:
             results.append('utter_vip0_info')
         elif 'vip' in post_package:
             if '1' in post_package:
                 results.append('utter_vip1_info')
             elif '2' in post_package:
                 results.append('utter_vip2_info')
             elif '3' in post_package:
                 results.append('utter_vip3_info')
     if len(results) < 1:
         results = [
             'utter_vip0_info', 'utter_vip1_info', 'utter_vip2_info',
             'utter_vip3_info'
         ]
     for utter in results:
         dispatcher.utter_template(utter, tracker)
     return [SlotSet("post_package", None)]
Esempio n. 11
0
 def run(self, dispatcher: CollectingDispatcher, tracker: Tracker,
         domain: Dict[Text, Any]) -> List[Dict[Text, Any]]:
     results = []
     list_entity = tracker.get_last_event_for(
         'user')["parse_data"]["entities"]
     dispatcher.utter_message(
         'Giữa các gói tin có sự khác nhau về mức độ ưu tiên hiển thị, màu và độ lớn của tiêu đề ạ.'
     )
     for entity in list_entity:
         if entity['entity'] == 'post_package':
             value = entity['value'].lower()
             if value in [
                     'tin thuong', 'tin thường', 'tinthường', 'tinthuong'
             ]:
                 results.append('utter_vip0_info')
             elif 'vip' in value:
                 if '1' in value:
                     results.append('utter_vip1_info')
                 elif '2' in value:
                     results.append('utter_vip2_info')
                 elif '3' in value:
                     results.append('utter_vip3_info')
     if len(results) <= 1:
         results = [
             'utter_vip0_info', 'utter_vip1_info', 'utter_vip2_info',
             'utter_vip3_info'
         ]
     for utter in results:
         dispatcher.utter_template(utter, tracker)
     return [SlotSet("post_package", None)]
Esempio n. 12
0
 def run(self, dispatcher: CollectingDispatcher, tracker: Tracker,
         domain: Dict[Text, Any]) -> List[Dict[Text, Any]]:
     Empid = tracker.get_slot("emp_id")
     print(Empid)
     # dispatcher.utter_message("Hi {}, Welcome to the Payroll Chatbot!, How may I help you?".format(Name))
     dispatcher.utter_template("utter_capture_empid", tracker)
     return []
Esempio n. 13
0
    def run(self, dispatcher: CollectingDispatcher, tracker: Tracker,
            domain: Dict[Text, Any]) -> List[Dict[Text, Any]]:
        language, script = get_language_and_script(tracker)
        dispatcher.utter_template(
            "{}_{}_utter_cheer_up".format(language, script), tracker)

        return []
Esempio n. 14
0
    def run(
        self,
        dispatcher: CollectingDispatcher,
        tracker: Tracker,
        domain: Dict[Text, Any],
    ) -> List[Dict[Text, Any]]:
        """
        Executes this action. If the user ask a question about an attribute,
        the knowledge base is queried for that attribute. Otherwise, if no
        attribute was detected in the request or the user is talking about a new
        object type, multiple objects of the requested type are returned from the
        knowledge base.
        Args:
            dispatcher: the dispatcher
            tracker: the tracker
            domain: the domain
        Returns: list of slots
        """
        logger.info("action_query_attribute_of")
        object_type = tracker.get_slot(SLOT_OBJECT_TYPE)
        last_object_type = tracker.get_slot(SLOT_LAST_OBJECT_TYPE)
        attribute = tracker.get_slot(SLOT_ATTRIBUTE)

        new_request = object_type != last_object_type

        if not object_type:
            self.knowledge_base.default_object_type = 'doctor'

        logger.info('query attribute attr:' + str(attribute) + ' new_req:' +
                    str(new_request))
        return self._query_attribute(dispatcher, tracker)

        dispatcher.utter_template("utter_ask_rephrase", tracker)
        return []
Esempio n. 15
0
 def run(
     self,
     dispatcher: CollectingDispatcher,
     tracker: Tracker,
     domain: Dict[Text, Any],
 ) -> List[Dict]:
     dict_thongtin = {
         "bến ninh kiều":
         "Theo Wiki: Bến Ninh Kiều là một địa danh du lịch có từ lâu và hấp dẫn du khách bởi phong cảnh sông nước hữu tình và vị trí thuận lợi nhìn ra dòng sông Hậu. Từ lâu bến Ninh Kiều đã trở thành biểu tượng về nét đẹp thơ mộng bên bờ sông Hậu của cả Thành phố Cần Thơ, thu hút nhiều du khách đến tham quan và đi vào thơ ca.",
         "chợ nổi cái răng":
         "Theo Wiki: Chợ nổi Cái Răng là chợ nổi chuyên trao đổi, mua bán nông sản, các loại trái cây, hàng hóa, thực phẩm, ăn uống ở trên sông và là điểm tham quan đặc sắc của quận Cái Răng, thành phố Cần Thơ",
         "nhà cổ bình thuỷ":
         "Bằng giá trị kiến trúc, lịch sử của mình, nhà cổ Bình Thủy đã được công nhận là “di tích nghệ thuật cấp quốc gia”, ngày càng thu hút nhiều khách đến thăm cũng như các đoàn làm phim về mượn bối cảnh cho những thước phim của mình.",
         "chùa ông":
         "Theo Wiki: Chùa Ông (Cần Thơ), tên gốc là Quảng Triệu Hội Quán (chữ Hán: 廣肇會館;广肇会馆). Đây là một ngôi chùa của người Hoa gốc Quảng Đông tại Cần Thơ, và là một di tích lịch sử cấp quốc gia kể từ năm 1993.",
         "vườn cây mỹ khánh":
         "Đặt chân tới vườn trái cây này thì bạn sẽ được tham quan hơn 20 giống cây trồng khác nhau sẽ cho bạn một trải nghiệm đặc biệt.",
         "chợ đêm":
         "Ở đây có bán rất nhiều món ngon, trong đó có những món đặc trưng của miền Tây mà tiêu biểu là những món chè"
     }
     if any(tracker.get_latest_entity_values("thong_tin")):
         # entity was picked up, validate slot
         thongtin = tracker.get_slot("thong_tin")
         ask = dict_thongtin[thongtin]
         dispatcher.utter_template("utter_thongtin",
                                   tracker,
                                   thong_tin=thongtin,
                                   tt_thongtin=ask)
     else:
         # no entity was picked up, we want to ask again
         dispatcher.utter_template("utter_no_thongtin", tracker)
     return []
Esempio n. 16
0
    def run(self, dispatcher: CollectingDispatcher, tracker: Tracker,
            domain: Dict[Text, Any]):

        city = tracker.latest_message['text']
        temp = int(Weather(city)['temp'] - 273)

        dispatcher.utter_template("utter_temp", tracker, temp=temp)
Esempio n. 17
0
 def run(self, dispatcher: CollectingDispatcher, tracker: Tracker, domain):
   
   message = (tracker.latest_message)['text']
   sent = [i for i in message.split(' ')]
   
   words = ["wtf",
      "WTF",
      "what the f**k",
      "what the f**k",
      "f*uck",
      "f*uck you",
      "f****r",
      "You suck",
      "I hate you",
      "idiot",
      "stfu",
      "shut the f*** up",
      "f*uk",
      "f**k",
      "f**k",
      "wtf?",
      "wtf bot",
      ]
   
   flag = 0
   for j in sent:    
     if j in words:
         flag = 1    
   if flag==1:
     
     dispatcher.utter_template('utter_out_of_context',tracker)
   else:
     dispatcher.utter_template('utter_greet',tracker)
     dispatcher.utter_template('utter_start',tracker)
     return [Restarted()]
    def run(self, dispatcher: CollectingDispatcher, tracker: Tracker,
            domain: Dict[Text, Any]) -> List[Dict[Text, Any]]:

        intents = ['greet', 'goodbye', 'affirm', 'deny', 'open_question','what_is_covid', 'what_symptoms',
                   'how_spread',
                   'how_spread_air',
                   'tf_transmitted_person_no_sy',
                   'tf_transmitted_person_feces',
                   'what_todo_protect',
                   'should_worry',
                   'how_risky',
                   'do_antibi_help',
                   'do_medici_exist',
                   'is_there_vaccine',
                   'should_use_mask',
                   'how_long_incubation',
                   'does_my_pet_get_infected',
                   'can_open_packages',
                   'want_know_more'
                   ]

        intent = tracker.latest_message["intent"].get("name")

        if intent in intents:
            dispatcher.utter_template("utter_response_"+intent, tracker)


        return []
    def validate_nomor_ktp(self, value: Text, dispatcher: CollectingDispatcher,
                           tracker: Tracker,
                           domain: Dict[Text, Any]) -> Optional[Dict]:
        if tracker.latest_message.get('intent', {}).get('name') != 'cancel':
            if re.search(_sixteen_digits, value) is False:
                value = None
                dispatcher.utter_template("utter_invalid_value",
                                          tracker=tracker)
            else:
                sender_id = self.get_sender_id(tracker)
                token = self.is_sender_id_token_exist(sender_id=sender_id,
                                                      tracker=tracker)
                sum_contract_list = token.get_api_3(value)
                data_user = DataUser(sender_id=sender_id,
                                     token=token,
                                     sum_contract_list=sum_contract_list,
                                     index=0,
                                     nomor_dipilih=[])
                self.update_user_data(data_user=data_user)

                if (not sum_contract_list) or (sum_contract_list is None):
                    value = None
                    dispatcher.utter_message(
                        "Maaf, kami tidak menemukan data berdasarkan nomor "
                        "KTP yang Anda masukan. Silakan ulang kembali ya")
        return {_NOMOR_KTP: value}
Esempio n. 20
0
    def submit(
        self,
        dispatcher: CollectingDispatcher,
        tracker: Tracker,
        domain: Dict[Text, Any],
    ) -> List[Dict]:
        """Definition of sumit."""
        # "Define what the form has to do after all required slots are filled"
        dispatcher.utter_message(template="utter_payment_processing ")

        # utter submit template
        dispatcher.utter_template("utter_submit", tracker)

        # remind the limitation of air ambulance transport
        if tracker.get_slot("client_medical_plane") is True:
            dispatcher.utter_message(text="再次提醒貴賓:")
            dispatcher.utter_message(template="utter_explain_medical_plane")
            dispatcher.utter_message(template="utter_limitation_medical_plane")
            dispatcher.utter_message(
                template="utter_explain_asia_12_countries")

        dispatcher.utter_message(
            template="utter_payment_processed_successful ")
        # return event
        return []
Esempio n. 21
0
    def submit(self, dispatcher: CollectingDispatcher, tracker: Tracker,
               domain: Dict[Text, Any]) -> List[Dict]:
        """Define what the form has to do
            after all required slots are filled"""

        # utter submit template
        ball_location = tracker.get_slot('ball_location')
        reason_moved = tracker.get_slot('reason_moved')
        who_moved = tracker.get_slot('who_moved')
        ball_searching = tracker.get_slot('ball_searching')

        logger.info(
            "dispatch template, ball_location: \n{}, reason_moved: {}, who_moved: {}, ball_searching: {}"
            .format(ball_location, reason_moved, who_moved, ball_searching))

        lookup_str = (ball_location if ball_location else "") + "," + (
            who_moved if who_moved else
            "") + "," + (reason_moved if reason_moved else
                         "") + "," + (ball_searching if ball_searching else "")
        logger.info("lookup_str: {}".format(lookup_str))
        if lookup_str in ballmoved_dict:
            utterance = ballmoved_dict[lookup_str]
        else:
            utterance = "utter_not_sure"
        logger.info("utterance: {}".format(utterance))
        dispatcher.utter_template(utterance, tracker)
        # dispatcher.utter_template('utter_golfballmoved_slots', tracker)

        return [
            SlotSet("ball_location", None),
            SlotSet("reason_moved", None),
            SlotSet("who_moved", None),
            SlotSet("ball_searching", None)
        ]
    def submit(self, dispatcher: CollectingDispatcher, tracker: Tracker,
               domain: Dict[Text, Any]) -> List[Dict]:

        # utter submit template
        dispatcher.utter_template('utter_submit', tracker)
        #dispatcher.utter_template('utter_transferMoney_values', tracker)
        return []
Esempio n. 23
0
    def submit(self, dispatcher: CollectingDispatcher, tracker: Tracker,
               domain: Dict[Text, Any]) -> List[Dict]:
        # utter submit template
        first_name = tracker.get_slot('first_name')
        middle_name = tracker.get_slot('middle_name')
        last_name = tracker.get_slot('last_name')
        email = tracker.get_slot('email')
        phone = tracker.get_slot('phone')

        logger.info("submit, first_name: {}, phone: {}".format(
            first_name, phone))

        #if penalty_location in relief_dict:
        #    utterance = relief_dict[penalty_location]
        #else:
        #    utterance = "utter_not_sure"
        #logger.info("utterance: {}".format(utterance))
        logger.info("self._switch_intent: {}".format(self._switch_intent))
        if self._switch_intent == True:
            dispatcher.utter_message("you're switching intents...")
        else:
            dispatcher.utter_template("utter_customer_info", tracker)
        # dispatcher.utter_template('utter_golfballmoved_slots', tracker)

        return [
            SlotSet("first_name", None),
            SlotSet("middle_name", None),
            SlotSet("last_name", None),
            SlotSet("email", None),
            SlotSet("phone", None)
        ]
Esempio n. 24
0
    def run(self, dispatcher: CollectingDispatcher, tracker: Tracker,
            domain: Dict[Text, Any]) -> List[Dict[Text, Any]]:
        city = tracker.get_slot("location")
        temp = int(fetchWeatherinfo(city)['temp'] - 273)
        dispatcher.utter_template("utter_temp", tracker, temp=temp, city=city)

        return _set_emp_details_slot(tracker, response)
Esempio n. 25
0
    def run(self, dispatcher: CollectingDispatcher,
            tracker: Tracker,
            domain: Dict[Text, Any]) -> List[Dict[Text, Any]]:
        temp = casesapi()
        dispatcher.utter_template("utter_cas", tracker, temp=temp)

        return []
Esempio n. 26
0
    def submit(
        self,
        dispatcher: CollectingDispatcher,
        tracker: Tracker,
        domain: Dict[Text, Any],
    ) -> List[Dict]:
        """Define what the form has to do
        after all required slots are filled"""
        survey = tracker.get_slot("survey")
        debug = tracker.get_slot("debug")
        logger.info(
            "DynamicForm.submit, survey: {}, debug: {} (type: {})".format(
                survey, debug, type(debug)
            )
        )

        # if debug, utter debug info
        if debug == "1":
            msg = intentHistoryStr(tracker, 0, 4)
            dispatcher.utter_message(msg)  # send the message back to the user

        # if debug, utter debug info
        if survey == "1":
            logger.info("Survey starting...")
            dispatcher.utter_template("utter_ask_feedback", tracker)
        # - utter_ask_feedback
        # * feedback
        # - action_feedback

        return []
Esempio n. 27
0
    def run(self, dispatcher: CollectingDispatcher, tracker: Tracker,
            domain: Dict[Text, Any]) -> List[Dict[Text, Any]]:
        city = tracker.latest_message['text']
        Temp = (Weather(city)['temp'] - 273)
        dispatcher.utter_template('utter_temp', tracker, temp=Temp)

        return []
Esempio n. 28
0
 def run(
     self,
     dispatcher: CollectingDispatcher,
     tracker: Tracker,
     domain: Dict[Text, Any],
 ) -> List[Dict]:
     dict_vitri = {
         "bến ninh kiều":
         "Nằm ở: 38 Hai Bà Trưng, ​​Tân An, Ninh Kiều, Cần Thơ",
         "chợ nổi cái răng":
         "Nằm ở: 46 Hai Bà Trưng, Lê Bình, Cái Răng, Cần Thơ",
         "nhà cổ bình thuỷ":
         "Nằm ở: 144 Bùi Hữu Nghĩa, Bình Thuỷ, Bình Thủy, Cần Thơ, Việt Nam",
         "chùa ông":
         "Nằm ở: 32, Hai Bà Trưng, Tân An, Ninh Kiều, Cần Thơ, Việt Nam",
         "vườn cây mỹ khánh":
         "Nằm ở: Mỹ Khánh, Phong Điền, Cần Thơ, Việt Nam",
         "chợ đêm":
         "Nằm ở: Hai Bà Trưng, Tân An, Ninh Kiều, Cần Thơ, Việt Nam"
     }
     if any(tracker.get_latest_entity_values("vi_tri")):
         # entity was picked up, validate slot
         vitri = tracker.get_slot("vi_tri")
         ask = dict_vitri[vitri]
         dispatcher.utter_template("utter_vitri",
                                   tracker,
                                   vi_tri=vitri,
                                   tt_vitri=ask)
     else:
         # no entity was picked up, we want to ask again
         dispatcher.utter_template("utter_no_vitri", tracker)
     return []
Esempio n. 29
0
    def submit(self, dispatcher: CollectingDispatcher, tracker: Tracker, domain: Dict[Text, Any]) -> List[Dict]:

        """Define what the form has to do
            after all required slots are filled"""

        key= tracker.get_slot("key")
        
        pageSize = '5' # Set the number to how many news articles you want to fetch 
        
        url = "https://newsapi.org/v2/everything?q=" + key + "&apiKey=" + NEWS_API_KEY + "&pageSize=" + pageSize
        
        r = requests.get(url = url)
        data = r.json() # extracting data in json format
        data = data['articles']

        dispatcher.utter_message("Here is some news I found!")

        for i in range(len(data)):
            output = data[i]['title'] + "\n" + data[i]['url'] + "\n"
            dispatcher.utter_message(output)

        dispatcher.utter_template("utter_confirm_if_service_is_correct", tracker)

        # utter submit template
        return []
Esempio n. 30
0
    def run(self, dispatcher: CollectingDispatcher, tracker: Tracker,
            domain: Dict[Text, Any]) -> List[Dict[Text, Any]]:
        Link = "https://www.ge.com/digital/need-technical-help"
        # dispatcher.utter_message(text="Hello World!")

        dispatcher.utter_template("utter_canthelp", tracker, link=Link)
        return []