Конспектирование в телеграмм боте
У меня есть чат-бот с ии, помощник с домашним заданием, и есть кнопка "Сделай конспект", после этого бот отвечает "Отправьте текст", но дело в том что после этого я могу вводить любые запросы нейросети, и конспект будет только в том случае если я перед текстом напишу "законспектируй" и т.п. Как сделать так чтобы я отправил текст и бот выдавал уже готовый конспект?
import os
from telebot import types
waiting_for_summary = False
bot = telebot.TeleBot('7126215030:AAHxlTWQIJSsqwg_3G8SoPBu70l4HL96tqM')
def generate_text(text):
url = "https://api.edenai.run/v2/text/chat"
payload = {
"providers": "openai",
"text": text,
"response_as_dict": True,
"attributes_as_list": False,
"show_original_response": False,
"temperature": 0,
"max_tokens": 1000
}
headers = {
"accept": "application/json",
"content-type": "application/json",
"authorization": "Bearer " + os.environ["API_KEY"]
}
response = requests.post(url, json=payload, headers=headers)
start = response.text.find("generated_text") + 17
end = response.text.find("message") - 3
return response.text[start:end]
@bot.message_handler(commands=['start'])
def start(message):
markup = types.ReplyKeyboardMarkup(resize_keyboard=True)
bot.send_message(message.from_user.id, "? Привет! Я твой бот-помошник!", reply_markup=markup)
btn1 = types.KeyboardButton("Спросить у помощника")
btn2 = types.KeyboardButton('Создать задачу')
markup.add(btn1, btn2)
bot.send_message(message.from_user.id, "Выбери режим бота", reply_markup=markup)
@bot.message_handler(content_types=['text'])
def get_text_messages(message):
global waiting_for_summary
if waiting_for_summary:
summary = generate_text(message.text)
bot.send_message(message.from_user.id, summary)
waiting_for_summary = False
else:
if message.text == '? Поздороваться':
markup = types.ReplyKeyboardMarkup(resize_keyboard=True) # создание новых кнопок
btn1 = types.KeyboardButton('Как стать автором на Хабре?')
btn2 = types.KeyboardButton('Правила сайта')
btn3 = types.KeyboardButton('Советы по оформлению публикации')
markup.add(btn1, btn2, btn3)
bot.send_message(message.from_user.id, '❓ Задайте интересующий вас вопрос', reply_markup=markup) # ответ бота
elif message.text == 'Спросить у помощника':
markup = types.ReplyKeyboardMarkup(resize_keyboard=True)
btn1 = types.KeyboardButton('Объясни')
btn2 = types.KeyboardButton('Подбери материалы')
btn3 = types.KeyboardButton('Ответь на вопросы по коду')
btn4 = types.KeyboardButton('Сделай конспект')
markup.add(btn1, btn2, btn3, btn4)
bot.send_message(message.from_user.id, 'Как я могу тебе помочь?', reply_markup=markup) # ответ бота
elif message.text == 'Создать задачу':
markup = types.ReplyKeyboardMarkup(resize_keyboard=True)
bot.send_message(message.from_user.id, 'Введи название задачи', reply_markup=markup) # ответ бота
elif message.text == 'Сделай конспект':
markup = types.ReplyKeyboardMarkup(resize_keyboard=True)
bot.send_message(message.from_user.id, 'Отправь текст для которого требуется сделать конспект', reply_markup=markup)
waiting_for_summary = True
elif message.text == 'Объясни':
markup = types.ReplyKeyboardMarkup(resize_keyboard=True)
bot.send_message(message.fro)
bot.polling(none_stop=True, interval=0) # обязательная для работы бота часть