Exemple #1
0
 def tell_user_sign(self, alisa: Alisa):
     sign = Sign(alisa.get_intent_slot_value('SIGN', 'sign'))
     if sign:
         self.tell_horoscope_by_sign(alisa, sign)
     else:
         alisa.tts_with_text(
             "Не распознала знак зодиака, попробуйте еще раз")
         alisa.voice_button(self.on_intent('SIGN'), 'tell_user_sign')
Exemple #2
0
    def handle_dialog(self, alisa: Alisa):
        sign = alisa.get_user_state_object('sign')
        reset_sign = alisa.get_button_payload_value(
            'reset_sign') or alisa.has_intent('ANOTHER_SIGN')
        if sign and not reset_sign:
            return self.tell_horoscope_by_sign(alisa, Sign(sign))

        return super().handle_dialog(alisa)
Exemple #3
0
    def request_sign(self, alisa: Alisa):
        alisa.tts_with_text("Для какого знака зодиака рассказать гороскоп?")
        alisa.voice_button(self.on_intent('SIGN'), 'tell_user_sign')
        alisa.update_user_state('sign', None)

        for sign in random.sample(signs, 4):
            alisa.suggest(sign, 'tell_user_sign')
Exemple #4
0
 def save_user_sign(self, alisa: Alisa):
     sign = alisa.get_button_payload_value('sign')
     if not sign:
         sign = alisa.get_session_object('prev_sign')
     alisa.tts_with_text(
         "Запомнила. Теперь каждый раз при входе в навык я буду говорить ваш гороскоп. "
         "Гороскопы обновляются раз в сутки.")
     alisa.update_user_state('sign', sign)
     alisa.end_session()
Exemple #5
0
def main():
    logging.info('Request: %r', request.json)

    response = {
        "version": request.json['version'],
        "response": {
            "end_session": True
        }
    }

    dialog.handle_dialog(Alisa(request.json, response))

    logging.info('Response: %r', response)

    return json.dumps(response, ensure_ascii=False, indent=2)
Exemple #6
0
def handle_dialog_yacloud(request, context):
    logging.info('Request: %r', request)

    response = {
        "version": request['version'],
        "response": {
            "end_session": True
        }
    }

    dialog.handle_dialog(Alisa(request, response))

    logging.info('Response: %r', response)

    return response
Exemple #7
0
 def greetings(self, alisa: Alisa):
     alisa.tts_with_text(
         "Приветствую тебя в нейрогороскопе. Гороскопы сгенерированы нейросетью на текстах Сорокина и Пелевина. \n"
     )
     self.request_sign(alisa)
Exemple #8
0
    def tell_horoscope_by_sign(self, alisa: Alisa, sign: Sign):
        alisa.tts_with_text("Ваш гороскоп на сегодня: \n")
        alisa.tts("sil<[300]>")
        alisa.tts_with_text(self.get_horoscope(sign))

        alisa.suggest(self.one_of(['Другой знак']),
                      'request_sign',
                      payload={'reset_sign': True})
        alisa.voice_button(self.on_intent('ANOTHER_SIGN'), 'request_sign')

        if not alisa.get_user_state_object('sign'):
            alisa.suggest(self.one_of(['Запомнить знак']),
                          'save_user_sign',
                          payload={'sign': sign.value})
            alisa.tts("sil<[300]>")
            alisa.tts("Хотите услышать про другой знак или запомнить ваш?")
            alisa.voice_button(self.on_intent('REMEMBER_SIGN'),
                               'save_user_sign')
            alisa.add_to_session_state('prev_sign', sign.value)