# Выполняем привязку обработчиков bot.add_event_handler(u'weather_forecast', on_weather_forecast) bot.add_event_handler(u'check_emails', on_check_emails) bot.add_event_handler(u'alarm_clock', on_alarm_clock) print_tech_banner() bot.start_conversation(user_id) while True: print('\n') # В самом начале диалога, когда еще не было ни одной реплики, # бот может сгенерировать некое приветствие или вопрос для # завязывания беседы. Поэтому сразу извлечем сгенерированные фразы из # буфера и покажем их. while True: answer = bot.pop_phrase(user_id) if len(answer) == 0: break print_answer(u'B:>', answer) question = input_kbd('H:>').lower() if len(question) > 0: if question in ('\exit', '\q', '\quit'): break bot.push_phrase(user_id, question)
parser.add_argument('--token', type=str, default='', help='Telegram token for bot') parser.add_argument('--data_folder', type=str, default='../data') parser.add_argument('--w2v_folder', type=str, default='../data') parser.add_argument('--facts_folder', type=str, default='../data', help='path to folder containing knowledgebase files') parser.add_argument('--models_folder', type=str, default='../tmp', help='path to folder with pretrained models') args = parser.parse_args() facts_folder = os.path.expanduser(args.facts_folder) models_folder = os.path.expanduser(args.models_folder) data_folder = os.path.expanduser(args.data_folder) w2v_folder = os.path.expanduser(args.w2v_folder) telegram_token = args.token if len(telegram_token) == 0: telegram_token = input_kbd('Enter Telegram token:') # ------------------------------------------------------- bot = telegram.Bot(token=telegram_token) print(bot.getMe()) logging.info('Loading answering machine models...') text_utils = TextUtils() text_utils.load_dictionaries(data_folder) facts_storage = Files3FactsStorage(text_utils=text_utils, facts_folder=facts_folder) answering_machine = SimpleAnsweringMachine( facts_storage=facts_storage, text_utils=text_utils) bot.load_models(models_folder, w2v_folder)
text_utils.load_dictionaries(data_folder) bot = AnswerBuilder() bot.load_models(models_folder) word_embeddings = WordEmbeddings() word_embeddings.load_wc2v_model(os.path.join(models_folder, 'wordchar2vector.dat')) for p in bot.get_w2v_paths(): word_embeddings.load_w2v_model(os.path.join(w2v_folder, os.path.basename(p))) max_nb_premises = 1 while True: print('\n') phrases = [] while True: phrase = input_kbd(u'H:>') if len(phrase) > 0: phrases.append(phrase) if phrase[-1] == u'?': break elif len(phrases) == max_nb_premises+1: break elif len(phrases) > 1: break if len(phrases) < 1: print_error('At least 1 phrase expected!') continue premises = phrases[:-1] question = phrases[-1]