如何修复此错误

问题描述 投票:0回答:1
import asyncio
from pyrogram import Client, filters
import g4f

app = Client("my_account")

@app.on_message(filters.text & filters.private)
def echo(client, message):
    result = g4f.ChatCompletion.create(
        model="gpt-3.5-turbo",
        provider=g4f.Provider.ChatBase,
        messages=[{"role": "user", "content": message.text}],
        stream=False)
    print(result)
    message.reply(result)

app.run()

这是提问时发生的用户机器人错误:

Task \<Task pending name='Task-108' coro=\<Message.reply_text() running at C:\\Users\\ПК\\AppData\\Local\\Programs\\Python\\Python311\\Lib\\site-packages\\pyrogram\\types\\messages_and_media\\message.py:970\> cb=\[\_run_until_complete_cb() at C:\\Users\\ПК\\AppData\\Local\\Programs\\Python\\Python311\\Lib\\asyncio\\base_events.py:180\]\> got Future \<Future pending cb=\[\_chain_future.\<locals\>.\_call_check_cancel() at C:\\Users\\ПК\\AppData\\Local\\Programs\\Python\\Python311\\Lib\\asyncio\\futures.py:387\]\> attached to a different loop
Traceback (most recent call last):
File "C:\\Users\\ПК\\AppData\\Local\\Programs\\Python\\Python311\\Lib\\site-packages\\pyrogram\\dispatcher.py", line 242, in handler_worker
await self.loop.run_in_executor(
File "C:\\Users\\ПК\\AppData\\Local\\Programs\\Python\\Python311\\Lib\\concurrent\\futures\\thread.py", line 58, in run
result = self.fn(\*self.args, \*\*self.kwargs)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "C:\\Users\\ПК\\Desktop\\PYTHON1\\Python\\UserBot\\Test1.py", line 18, in echo
message.reply(result)
File "C:\\Users\\ПК\\AppData\\Local\\Programs\\Python\\Python311\\Lib\\site-packages\\pyrogram\\sync.py", line 66, in async_to_sync_wrap
return loop.run_until_complete(coroutine)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "C:\\Users\\ПК\\AppData\\Local\\Programs\\Python\\Python311\\Lib\\asyncio\\base_events.py", line 653, in run_until_complete
return future.result()
^^^^^^^^^^^^^^^
File "C:\\Users\\ПК\\AppData\\Local\\Programs\\Python\\Python311\\Lib\\site-packages\\pyrogram\\types\\messages_and_media\\message.py", line 970, in reply_text
return await self.\_client.send_message(
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "C:\\Users\\ПК\\AppData\\Local\\Programs\\Python\\Python311\\Lib\\site-packages\\pyrogram\\methods\\messages\\send_message.py", line 126, in send_message
r = await self.invoke(
^^^^^^^^^^^^^^^^^^
File "C:\\Users\\ПК\\AppData\\Local\\Programs\\Python\\Python311\\Lib\\site-packages\\pyrogram\\methods\\advanced\\invoke.py", line 79, in invoke
r = await self.session.invoke(
^^^^^^^^^^^^^^^^^^^^^^^^^^
File "C:\\Users\\ПК\\AppData\\Local\\Programs\\Python\\Python311\\Lib\\site-packages\\pyrogram\\session\\session.py", line 389, in invoke
return await self.send(query, timeout=timeout)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "C:\\Users\\ПК\\AppData\\Local\\Programs\\Python\\Python311\\Lib\\site-packages\\pyrogram\\session\\session.py", line 326, in send
payload = await self.loop.run_in_executor(
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
RuntimeError: Task \<Task pending name='Task-108' coro=\<Message.reply_text() running at C:\\Users\\ПК\\AppData\\Local\\Programs\\Python\\Python311\\Lib\\site-packages\\pyrogram\\types\\messages_and_media\\message.py:970\> cb=\[\_run_until_complete_cb() at C:\\Users\\ПК\\AppData\\Local\\Programs\\Python\\Python311\\Lib\\asyncio\\base_events.py:180\]\> got Future \<Future pending cb=\[\_chain_future.\<locals\>.\_call_check_cancel() at C:\\Users\\ПК\\AppData\\Local\\Programs\\Python\\Python311\\Lib\\asyncio\\futures.py:387\]\> attached to a different loop

它应该是一个应该在 Telegram 中回答问题的用户机器人。但会出现错误, 一开始我是异步的,但是出现了更难以理解的错误,下面是异步代码:

import asyncio
from pyrogram import Client, filters
import g4f

app = Client("my_account")


@app.on_message(filters.text & filters.private)
async def echo(client, message):
    result = g4f.ChatCompletion.create(
        model="gpt-3.5-turbo",
        provider=g4f.Provider.ChatBase,
        messages=[{"role": "user", "content": message.text}],
        stream=False)
    print(result)
    await message.reply(result)


app.run()

和错误:

Exception in callback Task.task_wakeup(\<Future finished result=None\>)
handle: \<Handle Task.task_wakeup(\<Future finished result=None\>)\>
Traceback (most recent call last):
File "C:\\Users\\ПК\\AppData\\Local\\Programs\\Python\\Python311\\Lib\\asyncio\\events.py", line 80, in \_run
self.\_context.run(self.\_callback, \*self.\_args)
RuntimeError: Cannot enter into task \<Task pending name='Task-37' coro=\<Dispatcher.handler_worker() running at C:\\Users\\ПК\\AppData\\Local\\Programs\\Python\\Python311\\Lib\\site-packages\\pyrogram\\dispatcher.py:204\> wait_for=\<Future finished result=None\>\> while another task \<Task pending name='Task-36' coro=\<Dispatcher.handler_worker() running at C:\\Users\\ПК\\AppData\\Local\\Programs\\Python\\Python311\\Lib\\site-packages\\pyrogram\\dispatcher.py:240\>\> is being executed.
Exception in callback Task.task_wakeup(\<Future finished result=None\>)
handle: \<Handle Task.task_wakeup(\<Future finished result=None\>)\>
Traceback (most recent call last):
File "C:\\Users\\ПК\\AppData\\Local\\Programs\\Python\\Python311\\Lib\\asyncio\\events.py", line 80, in \_run
self.\_context.run(self.\_callback, \*self.\_args)
RuntimeError: Cannot enter into task \<Task pending name='Task-19' coro=\<Session.ping_worker() running at C:\\Users\\ПК\\AppData\\Local\\Programs\\Python\\Python311\\Lib\\site-packages\\pyrogram\\session\\session.py:276\> wait_for=\<Future finished result=None\>\> while another task \<Task pending name='Task-36' coro=\<Dispatcher.handler_worker() running at C:\\Users\\ПК\\AppData\\Local\\Programs\\Python\\Python311\\Lib\\site-packages\\pyrogram\\dispatcher.py:240\>\> is being executed.
Exception in callback Task.task_wakeup(\<Future finished result=None\>)
handle: \<Handle Task.task_wakeup(\<Future finished result=None\>)\>
Traceback (most recent call last):
File "C:\\Users\\ПК\\AppData\\Local\\Programs\\Python\\Python311\\Lib\\asyncio\\events.py", line 80, in \_run
self.\_context.run(self.\_callback, \*self.\_args)
RuntimeError: Cannot enter into task \<Task pending name='Task-4' coro=\<Session.recv_worker() running at C:\\Users\\ПК\\AppData\\Local\\Programs\\Python\\Python311\\Lib\\site-packages\\pyrogram\\session\\session.py:297\> wait_for=\<Future finished result=None\>\> while another task \<Task pending name='Task-36' coro=\<Dispatcher.handler_worker() running at C:\\Users\\ПК\\AppData\\Local\\Programs\\Python\\Python311\\Lib\\site-packages\\pyrogram\\dispatcher.py:240\>\> is being executed.
python python-asyncio pyrogram
1个回答
0
投票

g4f.ChatCompletion.create_async
这解决了我的问题

© www.soinside.com 2019 - 2024. All rights reserved.