添加4g多模型ai修改
authorluozheng <1732036298@qq.com>
Thu, 17 Jul 2025 02:59:00 +0000 (10:59 +0800)
committerluozheng <1732036298@qq.com>
Thu, 17 Jul 2025 02:59:00 +0000 (10:59 +0800)
code/sdk/application/wearable/fd230app/nativeui/aivoice/include/AiVoiceModel.h
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_ws.h

index 19f8f05..2809b07 100644 (file)
@@ -91,6 +91,7 @@ namespace OHOS
         void SetAiAnswerStrStr(std::string str);
         void SetAiAnswerStrStr(std::string str,uint8_t type);
         uint8_t GetCurUsingAiModelType(void);
+        uint8_t GetCurUsing4GAiModelType(void);
 
         // 文件检查和AI状态管理
         void CheckFileAndSendAIIsReady();
index dd924dd..a31d56b 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(AI_TYPE_JIU);
+                    uapi_UI_start_asr(GetCurUsing4GAiModelType());
                 }
                 else
                 {
@@ -199,6 +199,23 @@ namespace OHOS
         return 0;
     }
 
+    uint8_t AiVoiceModel::GetCurUsing4GAiModelType(void)
+    {
+        int value = GetSelectAiModel();
+        //写一个map
+        std::map<int, std::pair<int, int>> selectAiModelToAiModelType = {
+            {0, {STR_DEEPSEEK, AI_TYPE_DE}},
+            {1, {STR_JIUTIAN, AI_TYPE_JIU}},
+            {2, {STR_AIMODELS_DOUBAO, AI_TYPE_DOU}},
+            {3, {STR_AIMODES_WENXINYIYAN, AI_TYPE_WEN}},
+            {4, {STR_AIMODES_KIMI, AI_TYPE_KIMI}},
+            {5, {STR_AIMODES_CHATGPT, AI_TYPE_0}},
+        };
+
+        WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "GetCurUsing4GAiModelType = %d", selectAiModelToAiModelType[value].second);
+        return selectAiModelToAiModelType[value].second;
+    }
+
     /*取消当前AI对话*/
     void AiVoiceModel::CancelCurAIChat(void)
     {
@@ -1487,7 +1504,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(AI_TYPE_JIU);
+                    uapi_UI_start_asr(AiVoiceModel::GetInstance().GetCurUsing4GAiModelType());
                     AiVoiceModel::GetInstance().stop_ai4g_connect_timer();
                     p_AiVoicePresenter->ChangeViewAndLogicOperator(AIVOICE_4GSERVICECON_VIEW, AIVOICE_AIMODE_CONNECTING);
                 }
@@ -1851,11 +1868,11 @@ namespace OHOS
         int textId = 0;
         selectAiModelToTextId = {
             {0, {STR_DEEPSEEK, 4}},
-            {1, {STR_AIMODES_CHATGPT, 1}},
+            {1, {STR_JIUTIAN, 5}},
             {2, {STR_AIMODELS_DOUBAO, 3}},
             {3, {STR_AIMODES_WENXINYIYAN, 0}},
             {4, {STR_AIMODES_KIMI, 2}},
-            {5, {STR_IFLYTEK_SPARK, 5}},
+            {5, {STR_AIMODES_CHATGPT, 1}},
         };
         textId = STR_DEEPSEEK;
 
index 22a3ecf..2d30825 100644 (file)
@@ -98,7 +98,7 @@ namespace OHOS
         add_4GAI_vote(); // 4g投票
 
         uapi_ble_connect_param_update(BLE_CONNECT_INTERVAL_HIGH_AI);
-        Audio::AudioManager::GetInstance().SetVolume(AUDIO_STREAM_VOICE_ASSISTANT, 100); 
+        Audio::AudioManager::GetInstance().SetVolume(AUDIO_STREAM_VOICE_ASSISTANT, 100);
     }
 
     // 页面已经展示后的调用逻辑
@@ -411,7 +411,7 @@ namespace OHOS
                     // usleep(50000);
                     set_clear_queue_stream(1);
                     LOS_Msleep(100);
-                    uapi_UI_start_asr(AI_TYPE_JIU);
+                    uapi_UI_start_asr(AiVoiceModel::GetInstance().GetCurUsing4GAiModelType());
                     ChangeViewAndLogicOperator(AIVOICE_RETURN_RESULT_TEXT_VIEWID, AIVOICE_AIMODE_CONNECTING);
                     return true;
                 }
@@ -485,9 +485,14 @@ namespace OHOS
                 {
                     // 使用4G
                     model->SetSelect4gorbt(AI_SELECT_4G);
+                    if (model->GetAiModelTextId() == STR_AIMODES_CHATGPT) // 如果当前是在chatgpt模型*/
+                    {
+                        ChangeViewAndLogicOperator(model->GetCurView(), AIVOICE_NOTSETAPIKEYS); /*开始对话界面->API Keys notset界面*/
+                        return true;
+                    }
                     if (!model->GetInit_4gai_task())
                     {
-                        init_ai_task(AI_TYPE_JIU);
+                        init_ai_task(AiVoiceModel::GetInstance().GetCurUsing4GAiModelType());
                         model->start_ai4g_connect_timer();
                         ChangeViewAndLogicOperator(AIVOICE_STARTCHAT_VIEWID, AIVOICE_4GSERVICECON_VIEW); // LOADING
                     }
@@ -512,9 +517,14 @@ namespace OHOS
             {
                 // 通过4G调用大模型
                 model->SetSelect4gorbt(AI_SELECT_4G);
+                if (model->GetAiModelTextId() == STR_AIMODES_CHATGPT) // 如果当前是在chatgpt模型*/
+                {
+                    ChangeViewAndLogicOperator(model->GetCurView(), AIVOICE_NOTSETAPIKEYS); /*开始对话界面->API Keys notset界面*/
+                    return true;
+                }
                 if (!model->GetInit_4gai_task())
                 {
-                    init_ai_task(AI_TYPE_JIU);
+                    init_ai_task(AiVoiceModel::GetInstance().GetCurUsing4GAiModelType());
                     model->start_ai4g_connect_timer();
                     ChangeViewAndLogicOperator(AIVOICE_STARTCHAT_VIEWID, AIVOICE_4GSERVICECON_VIEW); // LOADING
                 }
@@ -546,9 +556,14 @@ namespace OHOS
         {
             // 通过4G调用大模型
             model->SetSelect4gorbt(AI_SELECT_4G);
+            if (model->GetAiModelTextId() == STR_AIMODES_CHATGPT) // 如果当前是在chatgpt模型*/
+            {
+                ChangeViewAndLogicOperator(model->GetCurView(), AIVOICE_NOTSETAPIKEYS); /*开始对话界面->API Keys notset界面*/
+                return true;
+            }
             if (!model->GetInit_4gai_task())
             {
-                init_ai_task(AI_TYPE_JIU);
+                init_ai_task(AiVoiceModel::GetInstance().GetCurUsing4GAiModelType());
                 model->start_ai4g_connect_timer();
                 ChangeViewAndLogicOperator(model->GetCurView(), AIVOICE_4GSERVICECON_VIEW); // LOADING
             }
index 0c94c68..ff5b624 100644 (file)
@@ -21,11 +21,11 @@ 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
+    AI_TYPE_JIU, //九天
+    AI_TYPE_DE, //deepseek
+    AI_TYPE_DOU,//豆包
+    AI_TYPE_WEN,//文心一言
+    AI_TYPE_KIMI,//KIMI
 }G_AI_TYPE;