You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用telebot开发Telegram机器人时,回复函数仅返回‘I don't understand.’问题排查

问题原因

你的代码核心问题是传递给greet函数的参数错误:在reply函数中,你传入的是message对象(TeleBot封装的消息实体),而非用户实际发送的文本内容message.text。当把message对象转成字符串时,内容是类似<telebot.types.Message object at 0x...>的对象描述,完全匹配不上预设的关键词列表,所以每次都会触发else分支返回"I don't understand."。

修复方案

只需修改reply函数的调用逻辑,将greet(message)改为greet(message.text):

@bot.message_handler(func=lambda m:True)
def reply(message):
    bot.reply_to(message, greet(message.text))  # 替换message为message.text

另外有个小细节需要优化:你给/start和/help命令绑定的处理函数同名(都叫welcom),虽不影响当前功能,但后续扩展易引发混淆,建议重命名为不同函数名:

@bot.message_handler(commands = ["start"])
def start_command(message):
    bot.send_message(message.chat.id, "Howdy, how are you doing?")

@bot.message_handler(commands = ["help"])
def help_command(message):
    bot.send_message(message.chat.id, "what can i do for you today")
验证效果

修改完成后,发送"hi"、"hello"、"who are you"等预设关键词时,机器人会返回对应的预期回复。

内容的提问来源于stack exchange,提问作者Frank_tyler

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.10 11:59:54