更新后不管发送什么内容 都是思考一段时间后返回413

用户在 Windows 系统上使用 LobeChat Desktop App (Electron) V2.2.6 版本。更新后,无论发送什么内容(可能包括包含大量对话历史或附件的请求),都会在经过一段思考时间后收到 413 错误。此问题发生在 Electron 客户端中,与服务端流式请求处理机制有关

更新后不管发送什么内容 都是思考一段时间后返回413

更新后不管发送什么内容 都是思考一段时间后返回413

快速结论:该报错发生在 LobeChat Desktop App (Electron) 更新到 V2.2.6 版本后,发送任何消息都会在等待一段时间后返回 413 Request Entity Too Large 错误。优先排查反向代理的 client_max_body_size 配置是否过小,因为积累的对话历史或附件(如图片)可能使请求体超出代理限制。

问题场景

用户在 Windows 系统上使用 LobeChat Desktop App (Electron) V2.2.6 版本。更新后,无论发送什么内容(可能包括包含大量对话历史或附件的请求),都会在经过一段思考时间后收到 413 错误。此问题发生在 Electron 客户端中,与服务端流式请求处理机制有关。

报错原文

413 <html> <head><title>413 Request Entity Too Large</title></head> <body> <center><h1>413 Request Entity Too Large</h1></center> <hr><center>openresty</center> </body> </html>

{
  "message": "413 <html>\r\n<head><title>413 Request Entity Too Large</title></head>\r\n<body>\r\n<center><h1>413 Request Entity Too Large</h1></center>\r\n<hr><center>openresty</center></body></html>\r\n"
}

原因分析

可能原因:413 错误来自 openresty(基于 nginx 的 Web 平台),表明在请求到达 LobeChat 应用程序之前,反向代理(nginx/openresty)拒绝了该请求,因为请求体超过了代理配置的大小限制。更新到 V2.2.6 后,可能由于对话历史积累、附件(尤其是图片)变大,导致总请求载荷超过了反向代理的 client_max_body_size 默认限制。这并非 LobeChat 应用本身的 bug,而是反向代理的配置问题。

环境排查

  • 确认是否使用自托管(self-hosted)的 LobeChat 部署,前端是否有 nginx 或 openresty 作为反向代理。
  • 如果是 Docker 部署,检查之前是否有额外的代理层。
  • 如果使用 LobeChat 的官方在线服务,此问题应不会出现;若出现,需联系服务提供商。
  • 对话中是否包含大量历史记录或较大的附件(如图片),LobeChat 内部限制二进制图片载荷约为 3MB,但仍可能累积较大。

解决步骤

  1. 检查反向代理配置文件(nginx/openresty):找到 nginx 的配置文件(通常位于 /etc/nginx/nginx.conf 或对应的 openresty 配置)。
  2. 增加请求体大小限制:httpserverlocation 块中添加或修改指令:client_max_body_size 50M;(建议从 10M 开始,根据实际需要调整,如 50M 或 100M)。
  3. 重启 nginx 或 openresty:执行 nginx -s reload 或对应的重载命令。

可优先尝试:如果不想修改配置,也可以尝试新建一个对话(清除累积的聊天历史),或者避免在对话中发送大尺寸图片,以减小请求体大小,但这只是临时规避。

验证方法

修改配置并重载后,在 LobeChat Desktop App 中再次发送消息。如果之前返回 413 的消息现在能正常发送并得到响应,则问题已解决。

参考来源

lobehub/lobe-chat #15983

celebrityanime
celebrityanime
文章: 8815

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注