vollchara
@vollchara
Нубик

Как подвязать команду к функции или как реализовать задуманное?

Не знаю насколько это возможно, вся задумка ниже.
На данный момент есть две команды (/start, /help) и возможность вести "живой разговор" с ботом. Нужно этот разговор загнать под команду /chat и во время его выполнения запретить пользоваться всеми командами кроме /exit (Выйти из режима чата). После выхода соответственно вернуть эту возможность.
ИИ.
#Artificial intelligence
@bot.message_handler(content_types=['text'])
def send_text(message):
	request = apiai.ApiAI('my_token').text_request() # Токен API к Dialogflow
	request.lang = 'ru' # На каком языке будет послан запрос
	request.session_id = 'BatlabAIBot' # ID Сессии диалога (нужно, чтобы потом учить бота)
	request.query = message.text # Посылаем запрос к ИИ с сообщением от юзера
	responseJson = json.loads(request.getresponse().read().decode('utf-8'))
	response = responseJson['result']['fulfillment']['speech'] # Разбираем Json и вытаскиваем ответ
	if response: 
		bot.send_message(message.chat.id, text=response)
	else:
		bot.send_message(message.chat.id, text='Я тебя не понимаю.')

Код полностью - link
Заранее извиняюсь за скудную формулировку, я только начал своё обучение.
  • Вопрос задан
  • 150 просмотров
Решения вопроса 1
vollchara
@vollchara Автор вопроса
Нубик
Долго не заглядывал сюда, на то были свои причины.
Как и описали выше, я добавил в бд пользователей и их статус "разговора".
При вводе других команд идёт проверка на статус и не даём им их выполнить.
Кому интересно, выбрал СУБД mongoDB.
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы