From a47758213cccdc8517826081977279093546019e Mon Sep 17 00:00:00 2001 From: fuzhongyun <15339891972@163.com> Date: Mon, 5 Jan 2026 10:51:54 +0800 Subject: [PATCH] =?UTF-8?q?feat=EF=BC=9A1.=E5=8E=86=E5=8F=B2=E8=AE=B0?= =?UTF-8?q?=E5=BD=95=E5=AD=98=E5=82=A8=E4=BB=BB=E5=8A=A1=E7=B4=A2=E5=BC=95?= =?UTF-8?q?=202.=E5=8E=86=E5=8F=B2=E8=AE=B0=E5=BD=95=E5=88=97=E8=A1=A8?= =?UTF-8?q?=E5=A2=9E=E5=8A=A0=E4=BB=BB=E5=8A=A1=E7=B4=A2=E5=BC=95=E8=BE=93?= =?UTF-8?q?=E5=87=BA?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- internal/biz/do/ctx.go | 18 +++++++++++++++--- internal/data/model/ai_chat_his.gen.go | 5 +++-- internal/entitys/chat_history.go | 1 + 3 files changed, 19 insertions(+), 5 deletions(-) diff --git a/internal/biz/do/ctx.go b/internal/biz/do/ctx.go index 48813b1..28e4454 100644 --- a/internal/biz/do/ctx.go +++ b/internal/biz/do/ctx.go @@ -253,7 +253,11 @@ func (d *Do) startMessageHandler( requireData *entitys.RequireData, ) <-chan struct{} { done := make(chan struct{}) - var chat []string + type chatType struct { + Ans string `json:"ans"` + TaskIndex string `json:"task_index"` + } + var chat []chatType go func() { defer func() { @@ -263,10 +267,15 @@ func (d *Do) startMessageHandler( hisLog = &entitys.ChatHisLog{} ) if len(chat) > 0 { + var ans strings.Builder + for _, v := range chat { + ans.WriteString(v.Ans) + } AiRes := &model.AiChatHi{ SessionID: requireData.Session, Ques: requireData.Req.Text, - Ans: strings.Join(chat, ""), + Ans: ans.String(), // 合并所有回答 + TaskIndex: chat[len(chat)-1].TaskIndex, // 取最后一个任务索引 Files: requireData.Req.Img, TaskID: requireData.Task.TaskID, } @@ -287,7 +296,10 @@ func (d *Do) startMessageHandler( return } if v.Type == entitys.ResponseText || v.Type == entitys.ResponseStream || v.Type == entitys.ResponseJson { - chat = append(chat, v.Content) + chat = append(chat, chatType{ + Ans: v.Content, + TaskIndex: v.Index, + }) } } }() diff --git a/internal/data/model/ai_chat_his.gen.go b/internal/data/model/ai_chat_his.gen.go index 595b4c4..d429eba 100644 --- a/internal/data/model/ai_chat_his.gen.go +++ b/internal/data/model/ai_chat_his.gen.go @@ -20,8 +20,9 @@ type AiChatHi struct { Useful int32 `gorm:"column:useful;not null;comment:0不评价,1有用,其他为无用" json:"useful"` // 0不评价,1有用,其他为无用 CreateAt time.Time `gorm:"column:create_at;default:CURRENT_TIMESTAMP" json:"create_at"` UpdatedAt time.Time `gorm:"column:updated_at;default:CURRENT_TIMESTAMP" json:"updated_at"` - TaskID int32 `gorm:"column:task_id;not null" json:"task_id"` // 任务ID - Content string `gorm:"column:content" json:"content"` // 前端回传数据 + TaskID int32 `gorm:"column:task_id;comment:任务id" json:"task_id"` // 任务id + TaskIndex string `gorm:"column:task_index;comment:任务索引" json:"task_index"` // 任务索引 + Content string `gorm:"column:content;comment:前端回传数据" json:"content"` // 前端回传数据 } // TableName AiChatHi's table name diff --git a/internal/entitys/chat_history.go b/internal/entitys/chat_history.go index b50148e..b47638d 100644 --- a/internal/entitys/chat_history.go +++ b/internal/entitys/chat_history.go @@ -36,6 +36,7 @@ type ChatHisQueryResponse struct { TaskID int32 `gorm:"column:task_id;not null" json:"task_id"` // 任务ID TaskName string `gorm:"column:task_name;not null" json:"task_name"` // 任务名称 Contents []string `gorm:"column:contents" json:"contents"` // 前端回传数据 + TaskIndex string `gorm:"column:task_index" json:"task_index"` // 任务索引 } func (c *ChatHisQueryResponse) FromModel(chat model.AiChatHi, task model.AiTask) {