Logistics System Developer hace 4 meses
padre
commit
12c33fb151

+ 34 - 1
shudao-chat-go/controllers/chat.go

@@ -2667,8 +2667,41 @@ func (c *ChatController) GuessYouWant() {
 
 	userMessage := requestData.Message
 
+	// 构建带有专业问题判断规则的提示词
+	promptWithRules := fmt.Sprintf(`你是蜀道安全管理AI智能助手,请根据用户的问题生成3个相关的后续问题建议(猜你想问)。
+
+## 专业问题判断规则(最高优先级)
+
+**判断为专业问题的条件**:
+问题只要可能涉及以下任一场景或领域,即判断为专业问题(判定可宽松,不需要完全一致):
+
+**五大场景**:高速公路、桥梁工程、隧道工程、加油站、特种设备
+**十大领域**:公路工程建设领域、公路工程营运领域、防汛减灾板块、森林草原防灭火板块、动火作业、有限空间作业、高处作业、临时用电、消防安全、起重吊装
+
+只要问题与上述场景或领域有潜在关联,都应判断为专业问题。
+
+**判断为非专业问题的情况(不生成猜你想问)**:
+- ❌ 问候类:你好、您好、早上好
+- ❌ 身份询问:你是谁、你叫什么
+- ❌ 能力询问:你能做什么、你会什么
+- ❌ 闲聊类:天气、娱乐、饮食、生活
+- ❌ 其他领域:医疗、法律、教育等(与五大场景、十大领域无关的其他领域)
+- ❌ 政治敏感、色情敏感信息
+
+**核心原则**:采用宽松判断标准,只要可能涉及五大场景或十大领域之一,即判断为专业问题并生成猜你想问。
+
+## 生成规则
+
+1. **如果是专业问题**:生成3个相关的后续问题,每个问题一行,不要编号,不要任何前缀符号
+2. **如果是非专业问题**:直接返回空字符串(不生成任何内容)
+
+## 用户问题
+%s
+
+## 你的回答(仅输出3个问题,每行一个,或返回空)`, userMessage)
+
 	// 使用阿里大模型替代DeepSeek
-	reply, err := c.sendQwen3Message(userMessage, false) // 使用流式响应
+	reply, err := c.sendQwen3Message(promptWithRules, false)
 	if err != nil {
 		c.Data["json"] = map[string]interface{}{
 			"statusCode": 500,

+ 2 - 1
src/views/AIWriting.vue

@@ -5381,7 +5381,7 @@ const generateSmartPromptForDetail = (userMessage) => {
             display: block; /* 改为block布局,避免flex对齐问题 */
             // margin-bottom: 10px;
             height: 120px; /* 固定高度,不再使用min-height */
-  
+
             border-radius: 8px; /* 大输入框的圆角 */
             background-color: #fff; /* 大输入框的背景色 */
             transition: border-color 0.3s ease;
@@ -5392,6 +5392,7 @@ const generateSmartPromptForDetail = (userMessage) => {
             line-height: 1.6;
             color: #000;
             overflow-y: auto; /* 添加垂直滚动条 */
+            white-space: pre-line; /* 保留换行符,确保每个关键信息独占一行 */
             resize: none; /* 禁止手动调整大小 */
 
             &:focus-within {

+ 2 - 1
src/views/mobile/m-AIWriting.vue

@@ -1188,7 +1188,8 @@ onMounted(() => {
   outline: none;
   transition: all 0.3s ease;
   box-sizing: border-box;
-  
+  white-space: pre-line; /* 保留换行符,确保每个关键信息独占一行 */
+
   &:focus {
     border-color: #3e7bfa;
     box-shadow: 0 0 0 3px rgba(62, 123, 250, 0.1);