Бот-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 или созданием функции.


Ответы (0 шт):