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

如何在Discord Bot的代码块中正确实现GPT-4回复的换行?

解决方案

问题根源

你的代码存在两个核心问题导致换行失效:

  1. 正则过滤移除了换行符:当前的replace正则表达式未包含换行符(\n),GPT返回的换行被全部删除,内容自然挤在一起。
  2. 代码块依赖有效换行符:你将回复放在代码块中,但过滤后的内容已无换行,代码块无法渲染出换行效果。

修复步骤

1. 修改正则表达式,保留换行符

调整过滤用的正则表达式,将\n加入允许的字符集合,确保GPT返回的换行被保留:

// 新增\n到允许的字符集合中
let responseFiltered = response.text.replace(/[^a-zA-ZěščřžýáíéďťňůúĚŠČŘŽÝÁÍÉĎŤŇŮÚ\?!,.0-9\\ \n-]/g, '');

2. 处理转义换行符(可选)

如果GPT返回的是转义后的\\n而非实际换行符,需先将其转换为真实换行:

// 在过滤前先处理转义的换行符
let responseText = response.text.replace(/\\n/g, '\n');
let responseFiltered = responseText.replace(/[^a-zA-ZěščřžýáíéďťňůúĚŠČŘŽÝÁÍÉĎŤŇŮÚ\?!,.0-9\\ \n-]/g, '');

3. 可选:切换为纯文本发送

若不需要代码块展示回复,可直接发送纯文本,Discord同样会识别\n渲染换行:

await message.channel.send({
  content: `<@${message.author.id}>\n\n${chunk}`
});

完整修改后的代码片段

response = await api.sendMessage("User has sent you a query to the roleplay. Respond without breaking character in terms of the roleplay as you were taught at the start. His query is: "+message.content, {
  parentMessageId: lastResponseId
}).then(async (response) => {
  // add to user message history
  if (userMessageHistory.has(message.author.id)) {
    let userMessageHistoryArray = userMessageHistory.get(message.author.id);
    userMessageHistoryArray.push(response.id);
    userMessageHistory.set(message.author.id, userMessageHistoryArray);
  } else {
    let userMessageHistoryArray = [];
    userMessageHistoryArray.push(response.id);
    userMessageHistory.set(message.author.id, userMessageHistoryArray);
  }

  // 先处理转义换行,再调整正则保留换行
  let responseText = response.text.replace(/\\n/g, '\n');
  let responseFiltered = responseText.replace(/[^a-zA-ZěščřžýáíéďťňůúĚŠČŘŽÝÁÍÉĎŤŇŮÚ\?!,.0-9\\ \n-]/g, '');

  const responseChunks = responseFiltered.match(/.{1,1800}/g) || [responseFiltered];

  for (const chunk of responseChunks) {
    await message.channel.send({
      content: `<@${message.author.id}>\n\n\`\`\`\n${chunk}\n\`\`\``
    });
  }

  await message.reactions.removeAll();
  await message.react('<a:checkmark2:751058781156278382>')
});

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.28 15:47:14