Explorar o código

修改提示对话

kobe6258 hai 11 horas
pai
achega
5e5bdcf507
Modificáronse 3 ficheiros con 9 adicións e 1 borrados
  1. 1 1
      utils/llm/eta_llm/eta_llm_client.go
  2. 1 0
      utils/ws/session.go
  3. 7 0
      utils/ws/session_manager.go

+ 1 - 1
utils/llm/eta_llm/eta_llm_client.go

@@ -111,7 +111,7 @@ func (ds *ETALLMClient) KnowledgeBaseChat(query string, KnowledgeBaseName string
 			continue
 		}
 		ChatHistory = append(ChatHistory, eta_llm_http.HistoryContent{
-			Content: fmt.Sprintf("【历史对话】 %s", historyItem.Content),
+			Content: historyItem.Content,
 			Role:    historyItem.Role,
 		})
 	}

+ 1 - 0
utils/ws/session.go

@@ -51,6 +51,7 @@ func (s *Session) readPump() {
 		// 处理消息
 		if err = manager.HandleMessage(s.UserId, s.Id, message); err != nil {
 			//写应答
+			_ = s.writeWithTimeout("<think></think>")
 			_ = s.writeWithTimeout(err.Error())
 			_ = s.writeWithTimeout("<EOF/>")
 		}

+ 7 - 0
utils/ws/session_manager.go

@@ -118,6 +118,7 @@ func (manager *ConnectionManager) HandleMessage(userID int, sessionID string, me
 	}
 	// 解析流式响应
 	contentChan, errChan, closeChan := eta_llm.ParseStreamResponse(resp)
+	emptyContent := true
 	// 处理流式数据并发送到 WebSocket
 	for {
 		select {
@@ -127,6 +128,9 @@ func (manager *ConnectionManager) HandleMessage(userID int, sessionID string, me
 				return err
 			}
 			session.UpdateActivity()
+			if emptyContent {
+				emptyContent = false
+			}
 			// 发送消息到 WebSocket
 			_ = session.Conn.WriteMessage(websocket.TextMessage, []byte(content))
 		case chanErr, ok := <-errChan:
@@ -138,6 +142,9 @@ func (manager *ConnectionManager) HandleMessage(userID int, sessionID string, me
 			// 发送错误消息到 WebSocket
 			return err
 		case <-closeChan:
+			if emptyContent {
+				_ = session.Conn.WriteMessage(websocket.TextMessage, []byte("<think></think>"))
+			}
 			_ = session.Conn.WriteMessage(websocket.TextMessage, []byte("<EOF/>"))
 			return nil
 		}