6f480bdcb2
1. добавил chatgpt 2. многое переписал
67 lines
3.1 KiB
Python
67 lines
3.1 KiB
Python
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 без пропуска пропущенных сообщений
|