|
|
@@ -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();
|
|
|
+ }
|
|
|
}
|