From d449abe96651d736cf68a60101a00e2acec97d16 Mon Sep 17 00:00:00 2001 From: weicw1996 Date: Wed, 21 Oct 2026 19:18:13 +0800 Subject: [PATCH] =?UTF-8?q?feat(ai):=20=E5=B0=8F=E7=A8=8B=E5=BA=8F=20AI=20?= =?UTF-8?q?=E9=93=BE=E8=B7=AF=E6=94=B9=E8=B5=B0=20HTTP=20=E6=B5=81?= =?UTF-8?q?=E5=BC=8F=EF=BC=8CWS=20=E7=BB=86=E8=8A=82=E6=94=B6=E6=95=9B?= =?UTF-8?q?=E5=88=B0=20utils/chat-socket?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 与 web 端同因:生成期间普通 POST 零字节,会被 60s 空闲超时掐成 504。 - 新增 utils/chat-socket.js:地址统一拼 /api/chat/{userId}(网关只放行 /api), attachHeartbeat 每 25s 发 ping;三个页面不再各抄一份 - chat-service 新增 streamAiRequest:H5 走 fetch + ReadableStream,小程序走 enableChunked + onChunkReceived,并手写 UTF-8 分块解码,避免中文被切半 - 写作 / 图片 / 大纲 / 稿件改走 /stream,结构化结果从末帧 {type:'final'} 取; 流断但有正文时保留已生成部分,不整块覆盖成错误文案 - 对话仍先试 WebSocket,连不上回退 /ai/chat/message/stream,帧处理复用 handleSocketMessage --- src/pages/activity-outline/index.vue | 41 +++-- src/pages/activity-outline/service.js | 6 +- src/pages/assistant/chat-service.js | 223 ++++++++++++++++++++++++-- src/pages/assistant/index.vue | 104 ++++++++++-- src/pages/manuscript/index.vue | 65 ++++++-- src/pages/manuscript/service.js | 6 +- src/utils/chat-socket.js | 64 ++++++++ 7 files changed, 456 insertions(+), 53 deletions(-) create mode 100644 src/utils/chat-socket.js diff --git a/src/pages/activity-outline/index.vue b/src/pages/activity-outline/index.vue index cfef6e8..56b7fa6 100644 --- a/src/pages/activity-outline/index.vue +++ b/src/pages/activity-outline/index.vue @@ -158,8 +158,10 @@