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

如何解决Discord聊天机器人未回复消息及空消息发送错误

问题分析与解决步骤

核心错误原因

触发Cannot send an empty message是因为机器人尝试发送的响应为空值,结合代码和需求,主要存在以下几个问题:

1. 命令内容截取错误

代码里message.content[2:]会跳过前两个字符,但输入!hi的长度仅为3,[2:]会取第三个字符之后的内容(也就是空字符串),导致聊天机器人接收到空请求,返回空响应。

修复方法:
将截取逻辑改为取!之后的全部内容:

response = chatbot.request(message.content[1:])

2. 环境变量读取语法错误

代码中TOKEN = os.getenv('TOKEN")存在引号语法错误,多余的"会导致无法正确读取Discord机器人令牌,可能引发后续运行异常。

修复方法:
修正为正确的引号格式:

TOKEN = os.getenv('TOKEN')

3. 意图配置文件缺失或错误

如果intents.json中没有配置对应hi的意图规则,GenericAssistant会返回空响应。

修复方法:
确保intents.json文件存在且配置正确,示例配置如下:

{
  "intents": [
    {
      "tag": "greeting",
      "patterns": ["hi", "hello", "hey"],
      "responses": ["Hello!", "Hi there!", "Hey!"]
    }
  ]
}

4. 代码变量名笔误(错误日志提示)

错误日志显示代码中调用了await message.channel.send(responses),但你的代码定义的变量是response,如果实际代码中变量名多了s,会因responses未定义导致发送空值。

修复方法:
确保发送的变量名与定义一致:

await message.channel.send(response)

修复后的完整代码

import discord
import os
from dotenv import load_dotenv
from neuralintents import GenericAssistant

intents = discord.Intents.default()
intents.message_content = True

client = discord.Client(intents=intents)

# 初始化并训练聊天机器人
chatbot = GenericAssistant('intents.json')
chatbot.train_model()
chatbot.save_model()

# 加载环境变量
load_dotenv()
TOKEN = os.getenv('TOKEN')

@client.event
async def on_ready():
    print(f'We have logged in as {client.user}')

@client.event
async def on_message(message):
    if message.author == client.user:
        return
    if message.content.startswith("!"):
        # 正确截取命令后的用户输入
        user_input = message.content[1:]
        response = chatbot.request(user_input)
        # 增加空响应判断,避免触发错误
        if response:
            await message.channel.send(response)
        else:
            await message.channel.send("抱歉,我没听懂你的意思。")

client.run(TOKEN)

额外建议

  • 每次修改intents.json后需重新训练模型;若无需频繁修改,可注释掉chatbot.train_model()和chatbot.save_model(),改用chatbot.load_model()直接加载已保存的模型,提升启动速度。
  • 保留空响应判断逻辑,避免再次触发空消息发送错误。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.12 07:55:41