Przeglądaj źródła

java部署脚本

liuchengsen 1 miesiąc temu
rodzic
commit
191c3ada57

+ 12 - 2
backend-java/src/main/java/com/pharmacopoeia/controller/ChatController.java

@@ -46,7 +46,8 @@ public class ChatController {
         docs = rerank(docs, query, 5);
 
         List<Map<String, String>> messages = promptService.buildPrompt(query, docs, intent);
-        String answer = llmService.chat(messages);
+        String rawAnswer = llmService.chat(messages);
+        String answer = cleanAnswer(rawAnswer);
 
         List<Map<String, Object>> sources = buildSources(docs);
         persistenceService.saveMessage(cid, "user", query, intent, null);
@@ -95,7 +96,7 @@ public class ChatController {
                         } catch (Exception ignored) {}
 
                         persistenceService.saveMessage(cid, "user", query, intent, null);
-                        persistenceService.saveMessage(cid, "assistant", fullAnswer.toString(), intent, sources);
+                        persistenceService.saveMessage(cid, "assistant", cleanAnswer(fullAnswer.toString()), intent, sources);
                         sink.tryEmitComplete();
                     })
                     .doOnError(e -> sink.tryEmitError(e))
@@ -196,4 +197,13 @@ public class ChatController {
         if (o instanceof Number n) return n.doubleValue();
         return 0;
     }
+
+    private String cleanAnswer(String text) {
+        if (text == null) return "";
+        // 去除多余空白行(保留单个换行),修复 Qwen 常见格式问题
+        return text
+                .replace("\r\n", "\n")
+                .replaceAll("\\n{3,}", "\n\n")
+                .trim();
+    }
 }