原因:旧实现在返回 SseEmitter 之前同步做文档解析/渲染,一旦抛异常会被全局
异常处理器包成 JSON(HTTP 200 + {code,msg})返回;前端按 SSE 流读取,找不到
\n\n 分隔帧便静默结束——表现为“闪一下后无输出、也无报错”。
后端:
- analyzeStream 拆分 prepareSync(仅校验+读字节,必须在请求线程内)与
buildPrompt(解析/渲染/构建提示词)。buildPrompt 移入异步线程,任何异常都
转为 SSE error 事件返回,不再走 JSON 静默路径
- 线程启动即推送 start 事件,确认通道已打开
- 流式接口去掉 @Log(操作日志切面会尝试序列化 SseEmitter 返回值)
前端 add.vue:
- 校验响应 content-type:非 text/event-stream(鉴权失败/异常JSON/HTML)时读出
正文并弹出错误,避免静默
- 统计收到的事件数,全程零事件时提示“未收到流式数据,请检查后端能否访问AI服务”
- 处理 start 事件
注:服务端为 Undertow、未开 gzip 压缩,dev 代理默认透传,排除缓冲导致。
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
开发
# 克隆项目
git clone https://gitee.com/KonBAI-Q/ruoyi-flowable-plus.git
# 进入项目目录
cd ruoyi-ui
# 安装依赖
npm install
# 建议不要直接使用 cnpm 安装依赖,会有各种诡异的 bug。可以通过如下操作解决 npm 下载速度慢的问题
npm install --registry=https://registry.npmmirror.com
# 启动服务
npm run dev
浏览器访问 http://localhost:80
发布
# 构建测试环境
npm run build:stage
# 构建生产环境
npm run build:prod