AI 多模型添加
authorhcj <1224667075@qq.com>
Wed, 16 Jul 2025 09:48:39 +0000 (17:48 +0800)
committerhcj <1224667075@qq.com>
Wed, 16 Jul 2025 09:48:39 +0000 (17:48 +0800)
code/sdk/application/wearable/fd230app/nativeui/aivoice/src/AiVoiceModel.cpp
code/sdk/application/wearable/fd230app/nativeui/aivoice/src/AiVoicePresenter.cpp
code/sdk/drivers/peripheral/slip/cat1Service/cat1_at_cmd.cpp
code/sdk/drivers/peripheral/slip/cat1Service/cat1_tcpServer.cpp
code/sdk/drivers/peripheral/slip/cat1Service/cat1_ws.cpp
code/sdk/drivers/peripheral/slip/cat1Service/cat1_ws.h

index 1bb3790..8c06c18 100644 (file)
@@ -174,7 +174,7 @@ namespace OHOS
                 WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "GetSelect4gorbt() == AI_SELECT_4G");
                 if (GetInit_4gai_task())
                 {
-                    uapi_UI_start_asr();
+                    uapi_UI_start_asr(AI_TYPE_JIU);
                 }
                 else
                 {
@@ -1486,7 +1486,7 @@ namespace OHOS
                     WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "4gAi服务初始化成功");
                     bool state = true;
                     SendMsgToUIService(UI_4G_AI_INIT_STAUS, 0, &state, sizeof(bool));
-                    uapi_UI_start_asr();
+                    uapi_UI_start_asr(AI_TYPE_JIU);
                     AiVoiceModel::GetInstance().stop_ai4g_connect_timer();
                     p_AiVoicePresenter->ChangeViewAndLogicOperator(AIVOICE_4GSERVICECON_VIEW, AIVOICE_AIMODE_CONNECTING);
                 }
index 0f6e3a1..49ace83 100644 (file)
@@ -409,7 +409,7 @@ namespace OHOS
                     // usleep(50000);
                     set_clear_queue_stream(1);
                     LOS_Msleep(100);
-                    uapi_UI_start_asr();
+                    uapi_UI_start_asr(AI_TYPE_JIU);
                     ChangeViewAndLogicOperator(AIVOICE_RETURN_RESULT_TEXT_VIEWID, AIVOICE_AIMODE_CONNECTING);
                     return true;
                 }
@@ -485,7 +485,7 @@ namespace OHOS
                     model->SetSelect4gorbt(AI_SELECT_4G);
                     if (!model->GetInit_4gai_task())
                     {
-                        init_ai_task();
+                        init_ai_task(AI_TYPE_JIU);
                         model->start_ai4g_connect_timer();
                         ChangeViewAndLogicOperator(AIVOICE_STARTCHAT_VIEWID, AIVOICE_4GSERVICECON_VIEW); // LOADING
                     }
@@ -512,7 +512,7 @@ namespace OHOS
                 model->SetSelect4gorbt(AI_SELECT_4G);
                 if (!model->GetInit_4gai_task())
                 {
-                    init_ai_task();
+                    init_ai_task(AI_TYPE_JIU);
                     model->start_ai4g_connect_timer();
                     ChangeViewAndLogicOperator(AIVOICE_STARTCHAT_VIEWID, AIVOICE_4GSERVICECON_VIEW); // LOADING
                 }
@@ -546,7 +546,7 @@ namespace OHOS
             model->SetSelect4gorbt(AI_SELECT_4G);
             if (!model->GetInit_4gai_task())
             {
-                init_ai_task();
+                init_ai_task(AI_TYPE_JIU);
                 model->start_ai4g_connect_timer();
                 ChangeViewAndLogicOperator(model->GetCurView(), AIVOICE_4GSERVICECON_VIEW); // LOADING
             }
index 0072bf2..33ffce6 100644 (file)
@@ -438,7 +438,7 @@ static uint32_t Tcptest(uint8_t *para, uint32_t paraLen, char *strCommonCmd)
     return 0;
 }
 
-extern bool init_ai_task(void);
+extern bool init_ai_task(uint8_t type);
 
 extern errcode_t chat_server_init(void);
 
@@ -461,7 +461,7 @@ static uint32_t wstest(uint8_t *para, uint32_t paraLen, char *strCommonCmd)
         g_test_server_index = atoi((char*)argv[0]);
     }
     printf("AT^WSTEST g_test_server_index %d\n",g_test_server_index);
-    init_ai_task();
+    init_ai_task(AI_TYPE_JIU);
     return 0;
 }
 
@@ -536,7 +536,7 @@ static uint32_t sendttstxt(uint8_t *para, uint32_t paraLen, char *strCommonCmd)
     return 0;
 }
 
-extern void uapi_UI_start_asr(void);
+extern void uapi_UI_start_asr(uint8_t type);
 
 static uint32_t start_asr(uint8_t *para, uint32_t paraLen, char *strCommonCmd)
 {
@@ -549,7 +549,7 @@ static uint32_t start_asr(uint8_t *para, uint32_t paraLen, char *strCommonCmd)
         printf("CAT1TEST ATCMD Convert Command Failed\n");
         return ERRCODE_FAIL;
     }
-    uapi_UI_start_asr();
+    uapi_UI_start_asr(AI_TYPE_JIU);
 
     return 0;
 }
@@ -582,7 +582,7 @@ static uint32_t sendbindata(uint8_t *para, uint32_t paraLen, char *strCommonCmd)
         return ERRCODE_FAIL;
     }
     uapi_cat1_keep_wakeup(1);
-    uapi_UI_start_asr();
+    uapi_UI_start_asr(AI_TYPE_JIU);
     return 0;
 }
 #include "dev_authentication.h"
index 6244442..c1d7d18 100644 (file)
@@ -1262,7 +1262,7 @@ void cat1_server_file_task(void *pvParameters)
                     
                 CustomEventPublish(TOPIC_EVENT_BLE_TRANSMIT,&TRANSMIT_DATA,1);
             }
-            else if (g_py_ver>=19 )
+            else if (g_py_ver>=19 && (uapi_dev_runtime_get_cat1_networkstat()) )
             {
                 char * cat1_modemver = uapi_dev_runtime_get_cat1_modemver();
                 if(g_py_ver==19)
index cf159f1..424df63 100644 (file)
@@ -934,21 +934,35 @@ uint8_t uapi_get_tts_break(void)
 char result_str_asr[256]={0};
 
 
-void uapi_UI_start_asr(void)
+static uint8_t type_ai=0;
+
+uint8_t chat_reconnect=0;
+
+void uapi_UI_start_asr(uint8_t type)
 { 
     memset_s(result_str_asr,256,0,256); 
-
     // uapi_stop_tts();
 
+    
+    if(type_ai!=type)
+    {
+        type_ai=type;
+        if(chat_client)
+        {
+            chat_server_deinit();
+            chat_reconnect=1;
+        }
+    }
+
+
+    /////////////////////////////////////////////////////
+
     tts_break=1;
     tts_server_deinit();
     tts_reconnect=1;
 
     AIStreamFlush();
     send_msg_data_into_Ai_msg_queue((uint8_t *)"tts_recv_buf",13,201);
-    
-   
-  
 
    
     asr_need_stop=0;
@@ -998,7 +1012,7 @@ bool send_ai_txt(uint8_t type,char *msg)
         return false;
     }
     
-   
+    
     cJSON_AddStringToObject(dataJSON,"type","jiutian-lan");
 
     cJSON_AddStringToObject(dataJSON,"content",msg);
@@ -1167,6 +1181,7 @@ void bk_websocket_demo(void *data) {
     // while (1)
     {
     /* code */
+        char_reconnet:
         is_bk_websocket_chat=1;
 
         // char url_buf[124]={0};
@@ -1185,7 +1200,33 @@ void bk_websocket_demo(void *data) {
         {
             // http://118.145.158.207:22080ws://118.145.158.207:22080/chat/ws
             // ws://amp.raisound.com/chat/ws?dt=%s&platform=chinamobiledevice&bot_type=jiutian-lan
-            chat_client = init_websocket_client("ws://118.145.158.207:22080/chat/ws?&platform=chinamobiledevice&bot_type=jiutian-lan",NULL,0);
+            // type_ai=AI_TYPE_DE;
+            if(type_ai==AI_TYPE_JIU)
+            {
+                chat_client = init_websocket_client("ws://118.145.158.207:22080/chat/ws?&platform=chinamobiledevice&bot_type=jiutian-lan",NULL,0);
+            }
+            else if(type_ai==AI_TYPE_DOU)
+            {
+                chat_client = init_websocket_client("ws://118.145.158.207:22080/chat/ws?&platform=huoshan",NULL,0);
+            }
+            else if(type_ai==AI_TYPE_WEN)
+            {
+                chat_client = init_websocket_client("ws://118.145.158.207:22080/chat/ws?&platform=baidu",NULL,0);
+            }
+            else if(type_ai==AI_TYPE_KIMI)
+            {
+                chat_client = init_websocket_client("ws://118.145.158.207:22080/chat/ws?&platform=moonshot",NULL,0);
+            }
+             else if(type_ai==AI_TYPE_DE)
+            {
+                chat_client = init_websocket_client("ws://118.145.158.207:22080/chat/ws?platform=huoshan&model=ep-20250206162546-g74w6",NULL,0);
+            }
+            else 
+            {
+                chat_client = init_websocket_client("ws://118.145.158.207:22080/chat/ws?&platform=aliyun",NULL,0);
+            }
+
+           
 
             if (chat_client== NULL) {
             client_count--;
@@ -1211,6 +1252,7 @@ void bk_websocket_demo(void *data) {
 
         
         // send_ai_txt(1,"你是谁");
+
         set_ai_chat_service_init_flag(1);
         WebSocketMessageType type;
         while (disconnect_server==0)
@@ -1228,6 +1270,12 @@ void bk_websocket_demo(void *data) {
         set_ai_chat_service_init_flag(0);
         lwip_close_websocket_client(chat_client);
         chat_client=NULL;
+
+        if(chat_reconnect==1)
+        {
+            chat_reconnect=0;
+            goto char_reconnet;
+        }
         is_bk_websocket_chat=0;
         return ;
     }
@@ -1248,6 +1296,7 @@ void bk_websocket_demo(void *data) {
 
 
 
+
 errcode_t chat_server_init(void)
 {
     if(chat_client || is_bk_websocket_chat)
@@ -1450,6 +1499,10 @@ bool aer_result_analysis(char *buf)
     {
         //查询结果
         startAudioCaptureTask();
+        // {
+        //     //上传文件
+        // }
+
         bool state = true;
         SendMsgToUIService(UI_AI_JUMP_TO_LISTENING_VIEW, 0, &state, sizeof(bool));
 
@@ -2113,7 +2166,7 @@ if(asr_client)
 
 
 
-bool init_ai_task(void)
+bool init_ai_task(uint8_t type)
 {
     if(is_init_ai)
     {
@@ -2124,15 +2177,10 @@ bool init_ai_task(void)
         {
               WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP,"g_timer_time_sync create failed\n");
         }
-      
-
-    
-
-
+        type_ai=type;
         uapi_tts_paly_init();
-        
-        chat_server_init();
         tts_server_init();
+        chat_server_init();
         // is_init_ai=0;
     }
 
index 4991e32..0c94c68 100644 (file)
@@ -5,12 +5,12 @@
 extern "C" {
 #endif /* __cplusplus */
 #endif /* __cplusplus */
-////////////////////////// UI 使用接口///////////////////////////////////
-bool init_ai_task(void);
+////////////////////////// UI 使用接口/////////////////////////////////
+bool init_ai_task(uint8_t type);
 
 bool dinit_ai_task(void);
 
-void uapi_UI_start_asr(void);
+void uapi_UI_start_asr(uint8_t type);
 
 void uapi_UI_stop_asr(void);
 
@@ -18,12 +18,27 @@ void uapi_start_tts_single_txt(char *buf);
 
 void uapi_UI_stop_start_asr_timeout(void);
 
+typedef enum
+{
+    AI_TYPE_0=0,
+    AI_TYPE_JIU,
+    AI_TYPE_DE,
+    AI_TYPE_DOU,
+    AI_TYPE_WEN,
+    AI_TYPE_KIMI
+}G_AI_TYPE;
+
 
 ////////////////////////////////////////////////////////////////////////
 
 
 void tts_server_deinit(void);
 
+void asr_server_deinit(void);
+
+
+void chat_server_deinit(void);
+
 void uapi_set_tts_break(uint8_t data);
 
 uint8_t uapi_get_tts_break(void);