我收到错误 AttributeError: 'Updater' 对象没有属性 'dispatcher'

问题描述 投票:0回答:2

运行 python 脚本将 openai 与 telegram bot 集成时出现错误。这是我的代码:

# Import the necessary modules
import telegram
import openai
from telegram.ext import CommandHandler, MessageHandler, Updater
from queue import Queue

# Initialize the Telegram bot
bot = telegram.Bot(token='')

# Initialize the OpenAI API
openai.api_key = ''

# Define a function to handle /start command
def start(bot, update):
    bot.send_message(chat_id=update.message.chat_id, text="Hi! I'm a ChatGPT bot. Send me a message and I'll try to respond to it.")

# Define a function to handle messages
def message(bot, update):
    # Get the message text
    message_text = update.message.text

    # Call the OpenAI API to generate a response
    response = openai.Completion.create(
        engine="davinci",
        prompt=message_text,
        max_tokens=1024,
        n=1,
        stop=None,
        temperature=0.5,
    )

    # Get the response text from the API
    response_text = response.choices[0].text.strip()

    # Send the response back to the user
    bot.send_message(chat_id=update.message.chat_id, text=response_text)

# Initialize the Telegram bot updater and dispatcher
update_queue = Queue()
updater = Updater(bot=bot, update_queue=update_queue)
dispatcher = updater.dispatcher

# Add command handlers
start_handler = CommandHandler('start', start)
dispatcher.add_handler(start_handler)

# Add message handler
message_handler = MessageHandler(None, message)
dispatcher.add_handler(message_handler)

# Start the Telegram bot
updater.start_polling()

错误:

dispatcher = updater.dispatcher
                 ^^^^^^^^^^^^^^^^^^
AttributeError: 'Updater' object has no attribute 'dispatcher'

我不知道如何解决这个问题,因为我已经看到了很多解决方案,但它告诉我更新电报机器人。 有什么解决办法吗?我已经升级了 telegram-bot 但仍然出错。

python python-3.x bots telegram openai-api
2个回答
1
投票

我认为

'dispatcher'
在版本中不再使用
20.0a0

如果您想使用您的代码,则可以降级为:

pip install python-telegram-bot==13.3

如果您使用

v20
,那么您必须以不同的方式构建您的应用程序,并且必须使用
async
函数。


0
投票

看起来“dispacher”已经不再使用了,有人有使用20.0版本的新编码方式吗?

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