From 4452fb156850d0d48fd381a66442ec44a3ae9505 Mon Sep 17 00:00:00 2001 From: fuzhongyun <15339891972@163.com> Date: Wed, 7 Jan 2026 10:31:20 +0800 Subject: [PATCH] =?UTF-8?q?fix:=20=E4=BF=AE=E5=A4=8D=E6=B5=81=E5=BC=8F?= =?UTF-8?q?=E5=AF=B9=E8=AF=9D=E6=97=A5=E5=BF=97=E4=B8=A2=E5=A4=B1=E9=97=AE?= =?UTF-8?q?=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- internal/biz/do/ctx.go | 30 +++++++++++++++++++++++++++++- 1 file changed, 29 insertions(+), 1 deletion(-) diff --git a/internal/biz/do/ctx.go b/internal/biz/do/ctx.go index 62b259f..6058b38 100644 --- a/internal/biz/do/ctx.go +++ b/internal/biz/do/ctx.go @@ -284,14 +284,42 @@ func (d *Do) startMessageHandler( }() + streamText := "" + streamIndex := "" for v := range requireData.Ch { // 自动检测通道关闭 if err := sendWithTimeout(client, v, 10*time.Second); err != nil { log.Errorf("Send error: %v", err) return } - if v.Type == entitys.ResponseText || v.Type == entitys.ResponseStream || v.Type == entitys.ResponseJson { + // 文本+卡片 + if v.Type == entitys.ResponseText || v.Type == entitys.ResponseJson { chat = append(chat, v) } + // 流式-追加 + if v.Type == entitys.ResponseStream { + streamText += v.Content + streamIndex = v.Index + } + // 流式-阶段结束|对话结束 + if streamText != "" && v.Type != entitys.ResponseStream { + chat = append(chat, entitys.Response{ + Content: streamText, + Type: entitys.ResponseText, + Index: streamIndex, + }) + streamText = "" + streamIndex = "" + } + } + // 流式结束 + if streamText != "" { + chat = append(chat, entitys.Response{ + Content: streamText, + Type: entitys.ResponseText, + Index: streamIndex, + }) + streamText = "" + streamIndex = "" } }()