У меня есть код бота на aiogram:
import os
import sys
import asyncio
import logging
from dotenv import dotenv_values
import socks
import socket
from aiogram import Bot, Dispatcher, types
from aiogram.enums import ParseMode
from aiogram.filters import CommandStart
from aiogram.types import Message
from utils.model import LLMModel
PWD = os.path.abspath(os.getcwd())
CONFIG = dotenv_values(os.path.join(PWD,'.env'))
socks.set_default_proxy(socks.SOCKS5, CONFIG['SOCKS5_IP'], int(CONFIG['SOCKS5_PORT']), username=CONFIG['SOCKS5_USERNAME'], password=CONFIG['SOCKS5_PASSWORD'])
socket.socket = socks.socksocket
dp = Dispatcher()
llm = LLMModel(api_key=CONFIG['OPENAI_KEY'],
data_path=os.path.join(PWD,'data.json'))
@dp.message(CommandStart())
async def command_start(message: Message) -> None:
await message.answer(f"Здавствуйте, готов ответить на ваши вопросы!")
@dp.message()
async def message_handler(message: types.Message) -> None:
responce = await llm.get_responce(message.text)
await message.answer(responce)
async def main() -> None:
bot = Bot(CONFIG['BOT_TOKEN'], parse_mode=ParseMode.HTML)
await dp.start_polling(bot)
if __name__ == "__main__":
logging.basicConfig(level=logging.INFO, stream=sys.stdout)
try:
asyncio.run(main())
except KeyboardInterrupt:
exit(0)
Но при запуске программы бот не просыпается и никаких логов не выводится. Эта проблема решается, если убрать определение прокси:
socks.set_default_proxy(socks.SOCKS5, CONFIG['SOCKS5_IP'], int(CONFIG['SOCKS5_PORT']), username=CONFIG['SOCKS5_USERNAME'], password=CONFIG['SOCKS5_PASSWORD'])
socket.socket = socks.socksocket
Но без них я не могу пользоваться openai api.
Как подружить бота с прокси?