from aiogram.utils import executor from loguru import logger from aiogram import Bot, Dispatcher, types from functions import get_audio_messages_func, create_statistic, openai_answer bot = Bot(token="5941118321:AAG0g0keLrlnuH_9U9X6ehpFFAdOX38qeXI") # создаю объект бота dp = Dispatcher(bot) # создаю объект слушателя logger.remove() # удаляю стандартный логер logger.add("logs/logging_log.log", level="INFO") # создаю логер @dp.message_handler(commands=['start']) # обрабатываю команду start async def start(message: types.Message): # получаю имя отправителя if message.chat.first_name: name = message.chat.first_name else: name = message.chat.title logger.info(f"Группа {name} (ID: {message.chat.id}) запустил бота") # записываю в логи await bot.send_message(message.chat.id, 'Привет! Отправляй голосовое, я расшифрую!') # отправляю ответное сообщение @dp.message_handler(commands=['statistic']) async def statistic(message: types.Message): if message.chat.id != "": for i in create_statistic.create_statistic(): await bot.send_message(message.chat.id, i) await bot.delete_message(message.chat.id, message.message_id) else: await bot.delete_message(message.chat.id, message.message_id) await bot.send_message(message.chat.id, "У вас нет прав на просмотр статистики") @dp.message_handler(commands=['response']) async def answer(message: types.Message): openai_answer.get_response(message) await message.answer_document(open("response_ru.txt", "rb"), reply=True) await message.answer_document(open("resource_ru_not_translate.txt", "rb"), reply=True) @dp.message_handler(commands=['r']) async def r(message: types.Message): import openai openai.api_key = "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" response = openai.Completion.create( model="text-davinci-003", prompt=' '.join(message.text.split()[1:]), temperature=0.5, max_tokens=1000, top_p=1.0, frequency_penalty=0.5, presence_penalty=0.0 ) for i in response['choices']: await bot.send_message(message.chat.id, f"ChatGPT\n{i['text']}", parse_mode=None, reply_to_message_id=message.message_id) @dp.message_handler(content_types=['voice', 'video_note', 'video']) # обрабатываю голосовые сообщения, кружки, видео async def get_audio_messages(message: types.Message): await get_audio_messages_func.get_audio_messages_func(message, logger, bot) # вызываю функцию def start_work_bot(): # функция запуска бота logger.info("Бот запустился") # записываю логи executor.start_polling(dp, skip_updates=False) # запускаю pooling без пропуска пропущенных сообщений