Бот-ChatGPT на aiogram выдает ошибку
Сейчас я делаю телеграмм бота ChatGPT на библиотеке g4f (gpt4free) и aiogram с парой других по типу asyncio, но после того как я перешел с библиотеки openai на g4f, появилась ошибка TypeError и TimeoutError, при этом боту отправляется пустая переменная(или объект) message, вот часть кода с библиотеками и ChatCompletion в которой проблема вся (я если что новичок в пайтоне/питоне):
from aiogram import Bot, Dispatcher, executor, types
import g4f
from asyncio import sleep
import asyncio
from time import sleep
from config import *
import os
async def ask_turbo(messages, provider: g4f.Provider.BaseProvider):
global response
try:
response = await g4f.ChatCompletion.create_async(
model="gpt-3.5-turbo",
provider=provider,
messages=messages,
max_tokens=token_limit,
temperature=0.7,
name='ChatGPT',
)
print(f"{provider.__name__}:", response)
except Exception as e:
print(f"{provider.__name__}:", e)
return messages
@dp.message_handler()
async def ask_bot(message):
global used_tokens, messages, tokens, completion, provider
for i in range(1):
try:
call_turbo = await ask_turbo(message_list.get(message.from_user.id), provider)
calls = [
await ask_turbo(message, provider) for provider in _providers
]
await asyncio.gather(*calls)
completion, used_tokens = await asyncio.run(call_turbo)
generate = await bot.send_message(message.from_user.id, language.gen_answer)
await sleep(10)
message_list[message.from_user.id] = [{'role': 'user', 'content': message.text}]
message_list[message.from_user.id] = [{'role': 'system', 'content': completion}]
await bot.send_message(message.from_user.id, response)
await bot.delete_message(message.from_user.id, generate.id)
if used_tokens >= token_limit:
await bot.send_message(message.from_user.id, language.ram_answer)
await message_list.get(message.from_user.id).clear()
used_tokens = 0
except NameError:
await choose_language(message)
А также вот ответы которые нейронки выдают:
"-1", "object of type 'Message' has no len()", "tuple indices must be integers or slices, not str",
Я пробовал использовать global для переменных и return в ChatCompletion, также я пробовал в отдельную функцию заносить часть кода, но у меня ничего не вышло, хотя я ожидал что проблема решится добавлением чего-то в global, return или созданием функции.