灵犀ai暴露问题修改
authorhcj <1224667075@qq.com>
Tue, 18 Nov 2025 03:29:03 +0000 (11:29 +0800)
committerhcj <1224667075@qq.com>
Tue, 18 Nov 2025 03:29:03 +0000 (11:29 +0800)
code/sdk/zhihui/ai_old/chat_websocket_server.cpp
code/sdk/zhihui/ai_old/websocket_server_example.cpp

index 9e179e1..05bc427 100644 (file)
@@ -417,19 +417,20 @@ bool send_ai_system_message( WebSocketClient *chat_client)
     
     
     // 添加header字段
-    if (cJSON_AddStringToObject(json, "type", "chat") == NULL) {
-        printf("Failed to add event field\n");
-        return false;
-    }
+    // if (cJSON_AddStringToObject(json, "type", "chat") == NULL) {
+    //     printf("Failed to add event field\n");
+    //     return false;
+    // }
     
-    if (cJSON_AddStringToObject(json, "content", "你好,你是谁") == NULL) {
-        printf("Failed to add trace_id field\n");
-        cJSON_Delete(json);
-        return false;
-    }
+    // if (cJSON_AddStringToObject(json, "content", "") == NULL) {
+    //     printf("Failed to add trace_id field\n");
+    //     cJSON_Delete(json);
+    //     return false;
+    // }
     
     // 将header添加到根对象
-    if (cJSON_AddStringToObject(json, "system_message", "你是中国移动的智能助理灵犀。如果别人询问你的身份,你会回答:“您好,我是中国移动智能助理灵犀”。我能够回答各种类型的问题。如果遇到我无法解答的问题,我会告知您:“您的问题超出了我的能力范围,请尝试问其他问题。")== NULL) 
+    if (cJSON_AddStringToObject(json, "system_message", "您好,我是中国移动的智能助理灵犀。如果您询问我的身份,我会回答:“您好,我是中国移动智能助理灵犀”。我能够回答各种类型的问题。如果遇到我无法解答的问题,我会告知您:“您的问题超出了我的能力范围,请尝试问其他问题。")== NULL) 
+    // if (cJSON_AddStringToObject(json, "system_message", "你是中国移动的智能助理灵犀。如果别人询问你的身份,你会回答:“您好,我是中国移动智能助理灵犀”。我能够回答各种类型的问题。如果遇到我无法解答的问题,我会告知您:“您的问题超出了我的能力范围,请尝试问其他问题。")== NULL) 
     {
         printf("Failed to add header to root object\n");
         cJSON_Delete(json);
index dae0ae3..97f7e5f 100644 (file)
@@ -82,6 +82,9 @@ void ai_media_init(void);
 
 void uapi_stop_asr(void);
 
+static uint8_t chat_is_fist=0;
+
+
 /**
  * @brief WebSocket事件回调函数
  */
@@ -102,6 +105,7 @@ void websocket_event_callback(const ws_event_data_t *event_data)
                     if(g_chat_ai_type==1)
                     {
                         send_ai_system_message(g_chat_server->client);
+                        chat_is_fist=1;
                     }
                     break;
                 default:
@@ -324,7 +328,10 @@ void handle_chat_data(const ws_event_data_t *event_data)
 
                     tts_is_ready = TTS_READY_SENT_SUCCESS;
                     g_tts_server->interrupt_flag=0;
-                    uapi_start_tts_type_start(g_tts_server->client);
+                    if(chat_is_fist!=1)
+                    {
+                        uapi_start_tts_type_start(g_tts_server->client);
+                    }
                     
                 }
                 break;
@@ -332,15 +339,24 @@ void handle_chat_data(const ws_event_data_t *event_data)
             case CHAT_EVENT_MIDDLE:
                 // printf("Chat event: MIDDLE - Content: %s\n", buf);
                 if (g_ai_answer_cb) g_ai_answer_cb(buf, 2); else printf("[WS][CHAT] ai_answer 回调未注册,丢弃内容: %s\n", buf);
+                if(chat_is_fist!=1)
                 uapi_tts_process_text(g_tts_server->client,buf,(tts_is_ready == TTS_READY_SUCCESS_READY));
                 break;
                 
             case CHAT_EVENT_END:
                 printf("Chat event: END - Final content: %s\n", buf);
                 if (g_ai_answer_cb) g_ai_answer_cb(buf, 2); else printf("[WS][CHAT] ai_answer 回调未注册,丢弃内容: %s\n", buf);
+                 if(chat_is_fist!=1)
+                 {
+                    uapi_tts_process_text(g_tts_server->client,buf,(tts_is_ready == TTS_READY_SUCCESS_READY));
+                    uapi_cache_stop_command(g_tts_server->client,(tts_is_ready == TTS_READY_SUCCESS_READY));
+
+                 }
+                 else
+                 {
+                    chat_is_fist=0;
+                 }
 
-                uapi_tts_process_text(g_tts_server->client,buf,(tts_is_ready == TTS_READY_SUCCESS_READY));
-                uapi_cache_stop_command(g_tts_server->client,(tts_is_ready == TTS_READY_SUCCESS_READY));
                 
                 break;