From 8e1e721cbfe486e622c40182fb4687a5a2ddd252 Mon Sep 17 00:00:00 2001 From: qfrjava <13402782+qfrjava@user.noreply.gitee.com> Date: 星期三, 19 三月 2025 17:39:41 +0800 Subject: [PATCH] feat(system): 添加大语言模型和问题替换相关功能 --- JAVA/SMTAIServer/src/main/java/com/smtaiserver/smtaiserver/control/SMTSystemManagerControl.java | 211 ++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 files changed, 209 insertions(+), 2 deletions(-) diff --git a/JAVA/SMTAIServer/src/main/java/com/smtaiserver/smtaiserver/control/SMTSystemManagerControl.java b/JAVA/SMTAIServer/src/main/java/com/smtaiserver/smtaiserver/control/SMTSystemManagerControl.java index c229c5f..0b0f542 100644 --- a/JAVA/SMTAIServer/src/main/java/com/smtaiserver/smtaiserver/control/SMTSystemManagerControl.java +++ b/JAVA/SMTAIServer/src/main/java/com/smtaiserver/smtaiserver/control/SMTSystemManagerControl.java @@ -731,8 +731,142 @@ db.close(); } } - - + + public ModelAndView addLLMFactory(SMTAIServerRequest tranReq) throws Exception { + // 瑙f瀽璇锋眰鍙傛暟 + String factoryId = tranReq.convParamToString("factory_id", true); + String factoryTitle = tranReq.convParamToString("factory_title",true); + String factoryArgs = tranReq.convParamToString("factory_args",true); + SMTDatabase db = SMTAIServerApp.getApp().allocDatabase(); + try { + + String selectSql = "SELECT * FROM ai_llm_factory WHERE factory_id = ?"; + Object[] params1 = {factoryId}; + if (db.querySQL(selectSql, params1).getRowCount()>0) { + return tranReq.returnJsonState(false, "妯″瀷id宸插瓨鍦�", null); + } + // 鏋勫缓 SQL 璇彞 + String sql = "INSERT INTO ai_llm_factory (factory_id, factory_title, factory_args) VALUES (?, ?, ?)"; + Object[] params2 = {factoryId, factoryTitle, factoryArgs}; + // 鎵ц鎻掑叆鎿嶄綔 + db.executeSQL(sql, params2); + // 杩斿洖 JSON 缁撴灉 + SMTJsonWriter jsonWr = tranReq.newReturnJsonWriter(true, null, null); + return tranReq.returnJson(jsonWr); + } finally { + db.close(); + } + } + public ModelAndView addLLMConnect(SMTAIServerRequest tranReq) throws Exception { + // 瑙f瀽璇锋眰鍙傛暟 + String connectId = tranReq.convParamToString("connect_id", true); + String factoryId = tranReq.convParamToString("factory_id", true); + String connectTitle = tranReq.convParamToString("connect_title", true); + String className = tranReq.convParamToString("class_name", true); + String connectArgs = tranReq.convParamToString("connect_args", true); + + SMTDatabase db = SMTAIServerApp.getApp().allocDatabase(); + + try { + // 棣栧厛妫�鏌ユā鍨媔d鏄惁瀛樺湪 + String selectFactorySql = "SELECT * FROM ai_llm_factory WHERE factory_id = ?"; + Object[] factoryParams = {factoryId}; + if (db.querySQL(selectFactorySql, factoryParams).getRowCount() == 0) { + return tranReq.returnJsonState(false, "妯″瀷id涓嶅瓨鍦�", null); + } + + // 妫�鏌ヨ繛鎺d鏄惁宸插瓨鍦� + String selectConnectSql = "SELECT * FROM ai_llm_connect WHERE connect_id = ?"; + Object[] connectParams = {connectId}; + if (db.querySQL(selectConnectSql, connectParams).getRowCount() > 0) { + return tranReq.returnJsonState(false, "杩炴帴id宸插瓨鍦�", null); + } + + // 鏋勫缓 SQL 璇彞 + String insertSql = "INSERT INTO ai_llm_connect (connect_id, factory_id, connect_title, class_name, connect_args) VALUES (?, ?, ?, ?, ?)"; + Object[] insertParams = {connectId, factoryId, connectTitle, className, connectArgs}; + + // 鎵ц鎻掑叆鎿嶄綔 + db.executeSQL(insertSql, insertParams); + + // 杩斿洖 JSON 缁撴灉 + SMTJsonWriter jsonWr = tranReq.newReturnJsonWriter(true, null, null); + return tranReq.returnJson(jsonWr); + } finally { + db.close(); + } + } + public ModelAndView updateLLMFactory(SMTAIServerRequest tranReq) throws Exception { + // 瑙f瀽璇锋眰鍙傛暟 + String factoryId = tranReq.convParamToString("factory_id", true); + String factoryTitle = tranReq.convParamToString("factory_title", true); + String factoryArgs = tranReq.convParamToString("factory_args", true); + + SMTDatabase db = SMTAIServerApp.getApp().allocDatabase(); + + try { + // 妫�鏌ュ伐鍘� ID 鏄惁瀛樺湪 + String selectSql = "SELECT * FROM ai_llm_factory WHERE factory_id = ?"; + Object[] params = {factoryId}; + if (db.querySQL(selectSql, params).getRowCount() == 0) { + return tranReq.returnJsonState(false, "妯″瀷id涓嶅瓨鍦�", null); + } + + // 鏋勫缓 SQL 璇彞 + String updateSql = "UPDATE ai_llm_factory SET factory_title = ?, factory_args = ? WHERE factory_id = ?"; + Object[] updateParams = {factoryTitle, factoryArgs, factoryId}; + + // 鎵ц鏇存柊鎿嶄綔 + db.executeSQL(updateSql, updateParams); + + // 杩斿洖 JSON 缁撴灉 + SMTJsonWriter jsonWr = tranReq.newReturnJsonWriter(true, null, null); + return tranReq.returnJson(jsonWr); + } finally { + db.close(); + } + } + public ModelAndView updateLLMConnect(SMTAIServerRequest tranReq) throws Exception { + // 瑙f瀽璇锋眰鍙傛暟 + String connectId = tranReq.convParamToString("connect_id", true); + String factoryId = tranReq.convParamToString("factory_id", true); + String connectTitle = tranReq.convParamToString("connect_title", true); + String className = tranReq.convParamToString("class_name", true); + String connectArgs = tranReq.convParamToString("connect_args", true); + + SMTDatabase db = SMTAIServerApp.getApp().allocDatabase(); + + try { + // 妫�鏌ヨ繛鎺� ID 鏄惁瀛樺湪 + String selectConnectSql = "SELECT * FROM ai_llm_connect WHERE connect_id = ?"; + Object[] connectParams = {connectId}; + if (db.querySQL(selectConnectSql, connectParams).getRowCount() == 0) { + return tranReq.returnJsonState(false, "杩炴帴id涓嶅瓨鍦�", null); + } + + // 妫�鏌ユā鍨� ID 鏄惁瀛樺湪 + String selectFactorySql = "SELECT * FROM ai_llm_factory WHERE factory_id = ?"; + Object[] factoryParams = {factoryId}; + if (db.querySQL(selectFactorySql, factoryParams).getRowCount() == 0) { + return tranReq.returnJsonState(false, "妯″瀷id涓嶅瓨鍦�", null); + } + + // 鏋勫缓 SQL 璇彞 + String updateSql = "UPDATE ai_llm_connect SET factory_id = ?, connect_title = ?, class_name = ?, connect_args = ? WHERE connect_id = ?"; + Object[] updateParams = {factoryId, connectTitle, className, connectArgs, connectId}; + + // 鎵ц鏇存柊鎿嶄綔 + db.executeSQL(updateSql, updateParams); + + // 杩斿洖 JSON 缁撴灉 + SMTJsonWriter jsonWr = tranReq.newReturnJsonWriter(true, null, null); + return tranReq.returnJson(jsonWr); + } finally { + db.close(); + } + } + + public ModelAndView clearSystemCache(SMTAIServerRequest tranReq) throws Exception { SMTApp.getThis().clearEhCacheManager(); @@ -766,4 +900,77 @@ } return tranReq.returnJson(jsonWr); } + public ModelAndView addQuestionReplace(SMTAIServerRequest tranReq) throws Exception { + String loginUserId = tranReq.getLoginUserId(); + // 瑙f瀽璇锋眰鍙傛暟 + String replaceId = tranReq.convParamToString("replace_id", true); + String questionText = tranReq.convParamToString("question_text", true); + String replaceText = tranReq.convParamToString("replace_text", true); + int replaceOrder = tranReq.convParamToInteger("replace_order", true); + String replaceState = tranReq.convParamToString("replace_state", true); + String groupType = tranReq.convParamToString("group_type", true); + + SMTDatabase db = SMTAIServerApp.getApp().allocDatabase(); + + try { + // 妫�鏌ユ浛鎹D鏄惁宸插瓨鍦� + String selectSql = "SELECT * FROM ai_question_replace WHERE replace_id = ?"; + Object[] selectParams = {replaceId}; + if (db.querySQL(selectSql, selectParams).getRowCount() > 0) { + return tranReq.returnJsonState(false, "鏇挎崲ID宸插瓨鍦�", null); + } + + // 鏋勫缓 SQL 璇彞 + String insertSql = "INSERT INTO ai_question_replace (replace_id, question_text, replace_text, replace_order, replace_state, create_user, create_time, group_type) " + + "VALUES (?, ?, ?, ?, ?, ?, NOW(), ?)"; + Object[] insertParams = { + replaceId, questionText, replaceText, replaceOrder, replaceState, loginUserId, groupType + }; + + // 鎵ц鎻掑叆鎿嶄綔 + db.executeSQL(insertSql, insertParams); + + // 杩斿洖 JSON 缁撴灉 + SMTJsonWriter jsonWr = tranReq.newReturnJsonWriter(true, null, null); + return tranReq.returnJson(jsonWr); + } finally { + db.close(); + } + } + public ModelAndView updateQuestionReplace(SMTAIServerRequest tranReq) throws Exception { + // 瑙f瀽璇锋眰鍙傛暟 + String replaceId = tranReq.convParamToString("replace_id", true); + String questionText = tranReq.convParamToString("question_text", false); + String replaceText = tranReq.convParamToString("replace_text", false); + int replaceOrder = tranReq.convParamToInteger("replace_order", false); + String replaceState = tranReq.convParamToString("replace_state", false); + String groupType = tranReq.convParamToString("group_type", false); + + SMTDatabase db = SMTAIServerApp.getApp().allocDatabase(); + + try { + // 妫�鏌ユ浛鎹D鏄惁瀛樺湪 + String selectSql = "SELECT * FROM ai_question_replace WHERE replace_id = ?"; + Object[] selectParams = {replaceId}; + if (db.querySQL(selectSql, selectParams).getRowCount() == 0) { + return tranReq.returnJsonState(false, "鏇挎崲ID涓嶅瓨鍦�", null); + } + + // 鏋勫缓 SQL 璇彞 + String updateSql = "UPDATE ai_question_replace SET question_text = ?, replace_text = ?, replace_order = ?, replace_state = ?, group_type = ? " + + "WHERE replace_id = ?"; + Object[] updateParams = {questionText, replaceText, replaceOrder, replaceState, groupType, replaceId}; + + // 鎵ц鏇存柊鎿嶄綔 + db.executeSQL(updateSql, updateParams); + + // 杩斿洖 JSON 缁撴灉 + SMTJsonWriter jsonWr = tranReq.newReturnJsonWriter(true, null, null); + return tranReq.returnJson(jsonWr); + } finally { + db.close(); + } + } + + } -- Gitblit v1.9.3