// init_ai_task(AiVoiceModel::GetInstance().GetCurUsing4GAiModelType());
#ifdef SUPPORT_AI_SERVICE
uapi_init_all_websocket_servers();
- uapi_start_all_websocket_servers(); // 连接服务器
+ uapi_start_all_websocket_servers(0); // 连接服务器
#endif
/* -------------------------------------------------------------------------- */
model->start_ai4g_connect_timer();
// init_ai_task(AiVoiceModel::GetInstance().GetCurUsing4GAiModelType());
#ifdef SUPPORT_AI_SERVICE
uapi_init_all_websocket_servers();
- uapi_start_all_websocket_servers(); // 连接服务器
+ uapi_start_all_websocket_servers(0); // 连接服务器
#endif
model->start_ai4g_connect_timer();
ChangeViewAndLogicOperator(model->GetCurView(), AIVOICE_4GSERVICECON_VIEW); // LOADING
// init_ai_task(AiVoiceModel::GetInstance().GetCurUsing4GAiModelType());
#ifdef SUPPORT_AI_SERVICE
uapi_init_all_websocket_servers();
- uapi_start_all_websocket_servers(); // 连接服务器
+ uapi_start_all_websocket_servers(0); // 连接服务器
#endif
/* -------------------------------------------------------------------------- */
model->start_ai4g_connect_timer();
// init_ai_task(AiVoiceModel::GetInstance().GetCurUsing4GAiModelType());
#ifdef SUPPORT_AI_SERVICE
uapi_init_all_websocket_servers();
- uapi_start_all_websocket_servers(); // 连接服务器
+ uapi_start_all_websocket_servers(0); // 连接服务器
#endif
model->start_ai4g_connect_timer();
ChangeViewAndLogicOperator(model->GetCurView(), AIVOICE_4GSERVICECON_VIEW); // LOADING
}
#ifdef SUPPORT_AI_SERVICE
init_all_websocket_servers();
- start_all_websocket_servers();
+ start_all_websocket_servers(0);
#endif
return 0;
}
static ws_server_handle_t *g_tts_server = NULL;
static ws_server_handle_t *g_chat_server = NULL;
+/* 全局AI类型变量 */
+static uint8_t g_chat_ai_type = 0; // 默认AI类型
+
+/**
+ * @brief 设置Chat AI类型
+ * @param ai_type AI类型 (0=默认, 1=九天蓝, 2=火山, 3=百度, 4=月之暗面, 5=其他)
+ */
+void set_chat_ai_type(uint8_t ai_type)
+{
+ g_chat_ai_type = ai_type;
+ printf("Chat AI type set to: %d\n", ai_type);
+}
+
static uint8_t asr_is_ready=0;
tts_ready_status_t tts_is_ready = TTS_READY_NOT_SENT;
get_dev_id(device_id);
char *product_id = "1927646275585744898";
- // 根据AI类型选择不同的URL
- uint8_t *ai_type = (uint8_t *)user_data;
- if (ai_type && *ai_type == 1) { // AI_TYPE_JIU
+ // 根据全局AI类型选择不同的URL
+ if (g_chat_ai_type == 1) { // AI_TYPE_JIU
snprintf(url_buf, url_size, "ws://118.145.158.207:22080/chat/ws?device_id=%s&product_id=%s&platform=chinamobiledevice&bot_type=jiutian-lan",
device_id, product_id);
- } else if (ai_type && *ai_type == 2) { // AI_TYPE_DOU
+ } else if (g_chat_ai_type == 2) { // AI_TYPE_DOU
snprintf(url_buf, url_size, "ws://118.145.158.207:22080/chat/ws?platform=huoshan");
- } else if (ai_type && *ai_type == 3) { // AI_TYPE_WEN
+ } else if (g_chat_ai_type == 3) { // AI_TYPE_WEN
snprintf(url_buf, url_size, "ws://118.145.158.207:22080/chat/ws?platform=baidu");
- } else if (ai_type && *ai_type == 4) { // AI_TYPE_KIMI
+ } else if (g_chat_ai_type == 4) { // AI_TYPE_KIMI
snprintf(url_buf, url_size, "ws://118.145.158.207:22080/chat/ws?platform=moonshot");
- } else if (ai_type && *ai_type == 5) { // AI_TYPE_DE
+ } else if (g_chat_ai_type == 5) { // AI_TYPE_DE
snprintf(url_buf, url_size, "ws://118.145.158.207:22080/chat/ws?platform=huoshan&model=ep-20250205103849-582m7");
} else {
snprintf(url_buf, url_size, "ws://118.145.158.207:22080/chat/ws?platform=aliyun");
ws_server_register_url_callback(WS_SERVER_TYPE_ASR, asr_url_callback, NULL);
ws_server_register_url_callback(WS_SERVER_TYPE_TTS, tts_url_callback, NULL);
- // Chat服务器需要AI类型参数
- static uint8_t chat_ai_type = 0; // 默认类型
- ws_server_register_url_callback(WS_SERVER_TYPE_CHAT, chat_url_callback, &chat_ai_type);
+ // Chat服务器使用全局AI类型变量
+ ws_server_register_url_callback(WS_SERVER_TYPE_CHAT, chat_url_callback, NULL);
// 创建ASR服务器
ws_server_config_t asr_config = ws_server_get_default_config(WS_SERVER_TYPE_ASR);
/**
* @brief 启动所有WebSocket服务器
*/
-errcode_t start_all_websocket_servers(void)
+errcode_t start_all_websocket_servers(uint8_t chat_ai_type)
{
errcode_t ret;
+ // 设置全局AI类型
+ g_chat_ai_type = chat_ai_type;
+
// 启动ASR服务器
ret = ws_server_start(g_asr_server);
if (ret != ERRCODE_SUCC) {
char *url_buf,
uint32_t url_size);
-errcode_t start_all_websocket_servers(void);
+errcode_t start_all_websocket_servers(uint8_t chat_ai_type);
errcode_t init_all_websocket_servers(void);
+void set_chat_ai_type(uint8_t ai_type);
+
void stop_all_websocket_servers(void);
case CUSTOM_CMD_MSG_START_ALL_WEBSOCKET_SERVERS:
#ifdef SUPPORT_AI_SERVICE
- start_all_websocket_servers();
- PRINT("All WebSocket servers started via custom cmd\n");
+ {
+ uint8_t ai_type = 0; // 默认AI类型
+ if (mail.data[0] != 0) {
+ ai_type = mail.data[0]; // 使用传入的AI类型
+ }
+ start_all_websocket_servers(ai_type);
+ PRINT("All WebSocket servers started via custom cmd with AI type: %d\n", ai_type);
+ }
#else
PRINT("WebSocket service not supported\n");
#endif
#ifdef SUPPORT_AI_SERVICE
/**
* @brief 启动所有WebSocket服务器
+ * @param ai_type AI类型 (0=默认, 1=九天蓝, 2=火山, 3=百度, 4=月之暗面, 5=其他)
*/
-void uapi_start_all_websocket_servers(void)
+void uapi_start_all_websocket_servers(uint8_t ai_type)
{
- do_custom_cmd_service_check_msg(CUSTOM_CMD_MSG_START_ALL_WEBSOCKET_SERVERS, NULL, 0);
+ do_custom_cmd_service_check_msg(CUSTOM_CMD_MSG_START_ALL_WEBSOCKET_SERVERS, &ai_type, 1);
}
/**
{
do_custom_cmd_service_check_msg(CUSTOM_CMD_MSG_DESTROY_ALL_WEBSOCKET_SERVERS, NULL, 0);
}
+
+/**
+ * @brief 设置Chat AI类型
+ * @param ai_type AI类型 (0=默认, 1=九天蓝, 2=火山, 3=百度, 4=月之暗面, 5=其他)
+ */
+void uapi_set_chat_ai_type(uint8_t ai_type)
+{
+ set_chat_ai_type(ai_type);
+}
#endif
#endif
\ No newline at end of file
#endif
#ifdef SUPPORT_AI_SERVICE
-void uapi_start_all_websocket_servers(void);
+void uapi_start_all_websocket_servers(uint8_t ai_type);
void uapi_init_all_websocket_servers(void);
void uapi_stop_all_websocket_servers(void);
void uapi_destroy_all_websocket_servers(void);