Bläddra i källkod

前端显示优化

liuchengsen 1 månad sedan
förälder
incheckning
73cb7b138c
1 ändrade filer med 16 tillägg och 18 borttagningar
  1. 16 18
      backend-java/src/main/java/com/pharmacopoeia/service/PromptService.java

+ 16 - 18
backend-java/src/main/java/com/pharmacopoeia/service/PromptService.java

@@ -1,4 +1,4 @@
-package com.pharmacopoeia.service;
+package com.pharmacopoeia.service;
 
 import org.springframework.stereotype.Service;
 
@@ -33,8 +33,8 @@ public class PromptService {
             你是中华药典AI助手。简洁回答用户的药品问题。
             规则:剂量、用法、禁忌等关键数据必须完整复制原文,数字不能丢。
             回答格式(紧凑排版,段落标题后直接接内容,不得有空行):
-            【结论】 2-3句话概括。
-            【来源明细】 列出本题引用的所有资料名称及出处。
+            【结论】   2-3句话概括。
+            【来源明细】列出本题引用的所有资料名称及出处。
             """ + COMPLIANCE + AI_DISCLAIMER;
 
     // ============================================================
@@ -45,9 +45,9 @@ public class PromptService {
 
             回答格式(紧凑排版,段落标题后直接接内容,不得有空行):
 
-            【结论】2-3句话建议。
+            【结论】   2-3句话建议。
             【用法用量】剂量、频次、疗程 — 标注来源名称。
-            【禁忌】标注来源名称。
+            【禁忌】   标注来源名称。
             【不良反应】标注来源名称。
             【注意事项】孕妇/儿童/老年/肝肾不全等特殊人群提示。
             【来源明细】列出本题引用的所有资料名称及出处。
@@ -61,10 +61,10 @@ public class PromptService {
             你是药典法规条款查询助手。
             规则:逐字引用原文条款,保留编号和术语原貌,标注条款出处。
             回答格式(紧凑排版,段落标题后直接接内容,不得有空行):
-            【摘要】一句话概述该条款内容。
-            【原文引用】 逐字引用原文条款,保留编号和术语原貌。
+            【摘要】    一句话概述该条款内容。
+            【原文引用】逐字引用原文条款,保留编号和术语原貌。
             【条款出处】编号 + 页码(如"2025版药典四部通则0631")。
-            【关联条款】 其他相关条款编号及简要说明(如有)。
+            【关联条款】其他相关条款编号及简要说明(如有)。
             【来源明细】列出本题引用的所有资料名称及出处。
             """ + COMPLIANCE + AI_DISCLAIMER;
 
@@ -92,9 +92,7 @@ public class PromptService {
             回答格式(紧凑排版,段落标题后直接接内容,不得有空行):
 
             【病情评估】严重程度判断 + 是否需要立即就医。
-            【用药方案】方案一:药品名 — 用量(来源名称)
-            方案二:药品名 — 用量(来源名称)
-            每个方案后标注来源(如"2025版药典""维基百科""通用药学知识")。
+            【用药方案】方案一:药品名 — 用量(来源名称);方案二:药品名 — 用量(来源名称)。每个方案后标注来源。
             【非药物建议】休息、饮食、物理方法等。
             【注意事项】各方案的禁忌人群、药物相互作用、特殊人群提示(孕妇/儿童/老年)。
             【就医指征】列出必须就医的警示信号(如体温>39°C持续、呼吸困难等)。
@@ -115,9 +113,9 @@ public class PromptService {
             5. 若无法确定安全答案,直接建议就医
             6. 每条信息标注为【通用药学知识】
             回答格式(紧凑排版,段落标题后直接接内容,不得有空行):
-            【结论】 1到3句话回答用户问题。
-            【详细说明】 基于通用药学知识作答,每条标注【通用药学知识】。
-            【来源说明】 声明:上述内容来源为AI通用药学知识库,非《中国药典》原文。
+            【结论】    1到3句话回答用户问题。
+            【详细说明】基于通用药学知识作答,每条标注【通用药学知识】。
+            【来源说明】声明:上述内容来源为AI通用药学知识库,非《中国药典》原文。
             """ + COMPLIANCE + AI_DISCLAIMER;
 
     private static final Map<String, String> PROMPT_MAP = Map.of(
@@ -135,15 +133,15 @@ public class PromptService {
 
         if (documents == null || documents.isEmpty()) {
             systemPrompt = NO_DOCS;
-            userMessage = "【用户问题】" + query + "\n\n(提示:知识库中未找到相关药典原文,请使用通用药学知识作答)";
+            userMessage = "【用户问题】" + query + "\n(提示:知识库中未找到相关药典原文,请使用通用药学知识作答)";
         } else {
             systemPrompt = PROMPT_MAP.getOrDefault(intent, NO_DOCS);
 
             String context = documents.stream()
                     .map(d -> "【资料:" + d.get("source") + "】\n" + d.get("content"))
-                    .collect(Collectors.joining("\n\n---\n\n"));
+                    .collect(Collectors.joining("\n---\n"));
 
-            userMessage = "【参考资料】\n" + context + "\n\n"
+            userMessage = "【参考资料】\n" + context + "\n"
                     + "【引用要求】每条信息必须标注来源名称(如\"2025版药典二部P567\"),不得使用数字编号。\n"
                     + "【用户问题】" + query;
         }
@@ -153,4 +151,4 @@ public class PromptService {
                 Map.of("role", "user", "content", userMessage)
         );
     }
-}
+}