From 002aac2eb465e9b41a6209b71c241b214ac30258 Mon Sep 17 00:00:00 2001 From: qfrjava <13402782+qfrjava@user.noreply.gitee.com> Date: 星期日, 27 四月 2025 18:40:03 +0800 Subject: [PATCH] feat(lightrag): 增加通用转发接口和文档上传功能 --- JAVA/SMTAIServer/src/main/java/com/smtaiserver/smtaiserver/control/SMTMetricsManagerControl.java | 217 ++++++++++++++++++++++++++++++++---------------------- 1 files changed, 128 insertions(+), 89 deletions(-) diff --git a/JAVA/SMTAIServer/src/main/java/com/smtaiserver/smtaiserver/control/SMTMetricsManagerControl.java b/JAVA/SMTAIServer/src/main/java/com/smtaiserver/smtaiserver/control/SMTMetricsManagerControl.java index 84e40a5..8c921fb 100644 --- a/JAVA/SMTAIServer/src/main/java/com/smtaiserver/smtaiserver/control/SMTMetricsManagerControl.java +++ b/JAVA/SMTAIServer/src/main/java/com/smtaiserver/smtaiserver/control/SMTMetricsManagerControl.java @@ -1,19 +1,5 @@ package com.smtaiserver.smtaiserver.control; -import java.util.Date; -import java.util.HashMap; -import java.util.HashSet; -import java.util.Iterator; -import java.util.Map; -import java.util.Map.Entry; -import java.util.Set; - -import org.dom4j.Document; -import org.dom4j.Element; -import org.dom4j.Node; -import org.dom4j.tree.DefaultText; -import org.springframework.web.servlet.ModelAndView; - import com.smtaiserver.smtaiserver.core.SMTAIServerApp; import com.smtaiserver.smtaiserver.core.SMTAIServerRequest; import com.smtaiserver.smtaiserver.core.SMTCheckChatStreamView; @@ -31,88 +17,141 @@ import com.smtservlet.util.Json; import com.smtservlet.util.SMTJsonWriter; import com.smtservlet.util.SMTStatic; +import java.util.Date; +import java.util.HashMap; +import java.util.HashSet; +import java.util.Iterator; +import java.util.Map; +import java.util.Map.Entry; +import java.util.Set; +import org.dom4j.Document; +import org.dom4j.Element; +import org.dom4j.Node; +import org.dom4j.tree.DefaultText; +import org.springframework.web.servlet.ModelAndView; public class SMTMetricsManagerControl { - public ModelAndView getDimensionList(SMTAIServerRequest tranReq) throws Exception - { - SMTDatabase db = SMTAIServerApp.getApp().allocDatabase(); - try - { - DBRecords recs = db.querySQL("SELECT dim_id, dim_title, dim_type, dim_alias, dim_name, dim_unit, dim_group ,dim_value_list FROM ai_dimension", null); - - SMTJsonWriter jsonWr = tranReq.newReturnJsonWriter(true, null, null); - - jsonWr.beginArray("values"); - for(DBRecord rec : recs.getRecords()) - { - jsonWr.beginMap(null); - { - jsonWr.addKeyValue("id", rec.getString("dim_id")); - jsonWr.addKeyValue("title", rec.getString("dim_name")); - jsonWr.addKeyValue("prompt", rec.getString("dim_title")); - jsonWr.addKeyValue("unit", rec.getString("dim_unit")); - jsonWr.addKeyValue("group", rec.getString("dim_group")); - jsonWr.addKeyValue("dimValueList", rec.getString("dim_value_list")); + public ModelAndView getDimensionList(SMTAIServerRequest tranReq) throws Exception { + SMTDatabase db = SMTAIServerApp.getApp().allocDatabase(); + try { + DBRecords recs = + db.querySQL( + "SELECT dim_id, dim_title, dim_type, dim_alias, dim_name, dim_unit, dim_group ,dim_value_list FROM ai_dimension", + null); - jsonWr.beginMap("alias"); - String sAlias = rec.getString("dim_alias"); - if(!SMTStatic.isNullOrEmpty(sAlias)) - { - Json jsonAliasMap =null; - try { - jsonAliasMap = Json.read(sAlias); - }catch (Exception e){ - continue; - } - for( Entry<String, Json> entry : jsonAliasMap.asJsonMap().entrySet()) - { - jsonWr.beginArray(entry.getKey()); - for(Json jsonAliasValue : entry.getValue().asJsonList()) - { - jsonWr.addKeyValue(null, jsonAliasValue.asString()); - } - jsonWr.endArray(); - } - } - jsonWr.endMap(); - - - switch(rec.getString("dim_type").charAt(0)) - { - case 'S': - jsonWr.addKeyValue("type", "瀛楃涓�"); - break; - - case 'D': - jsonWr.addKeyValue("type", "娴偣鏁�"); - break; - - case 'I': - jsonWr.addKeyValue("type", "鏁存暟"); - break; - - case 'L': - jsonWr.addKeyValue("type", "闀挎暣鏁�"); - break; - - case 'T': - jsonWr.addKeyValue("type", "鏃堕棿"); - break; - } + SMTJsonWriter jsonWr = tranReq.newReturnJsonWriter(true, null, null); + jsonWr.beginArray("values"); + for (DBRecord rec : recs.getRecords()) { + jsonWr.beginMap(null); + { + jsonWr.addKeyValue("id", rec.getString("dim_id")); + jsonWr.addKeyValue("title", rec.getString("dim_name")); + jsonWr.addKeyValue("prompt", rec.getString("dim_title")); + jsonWr.addKeyValue("unit", rec.getString("dim_unit")); + jsonWr.addKeyValue("group", rec.getString("dim_group")); + jsonWr.beginMap("value_list"); // 寮�濮嬩竴涓� "value_list" 鐨� Map + + String valueList = rec.getString("dim_value_list"); + if (!SMTStatic.isNullOrEmpty(valueList)) { + Json jsonValueList = null; + try { + // 瑙f瀽dim_value_list鏁版嵁 + jsonValueList = Json.read(valueList); + } catch (Exception e) { + continue; // 濡傛灉瑙f瀽澶辫触鍒欒烦杩囧綋鍓嶈褰� } - jsonWr.endMap(); + + // 濡傛灉鏄疢ap锛屽寘鍚玸ql鏌ヨ + if (jsonValueList.has("sql")) { + SMTJsonWriter jsonWriter02 = new SMTJsonWriter(false); + + Json sqlJson = jsonValueList.getJson("sql"); // 鑾峰彇 sql 瀛楁 + Json sqlQuery = sqlJson.getJson("sql"); // 鑾峰彇 SQL 鏌ヨ璇彞 + Json dsId = sqlJson.getJson("ds_id"); // 鑾峰彇 SQL 鏌ヨ璇彞 + if (sqlQuery.isString()) { + jsonWriter02.addKeyValue("sql", sqlQuery.asString()); // 灏哠QL璇彞娣诲姞鍒癑SON涓� + jsonWriter02.addKeyValue("ds_id", dsId.asString()); // 灏哠QL璇彞娣诲姞鍒癑SON涓� + jsonWr.addKeyValue("sql",jsonWriter02); + } + } else if (jsonValueList.has("values")) { + // 濡傛灉鍖呭惈 values 鏁扮粍 + Json valuesJson = jsonValueList.getJson("values"); + if (valuesJson.isArray()) { + jsonWr.beginArray("values"); // 寮�濮� "dimValueList" 鐨勬暟缁� + + // 閬嶅巻 values 鏁扮粍 + for (Json jsonItem : valuesJson.asJsonList()) { + jsonWr.addKeyValue(null, jsonItem.asString()); // 灏嗘瘡涓�兼坊鍔犲埌鏁扮粍 + } + + jsonWr.endArray(); // 缁撴潫 "dimValueList" 鏁扮粍 + } + } } - jsonWr.endArray(); - - return tranReq.returnJson(jsonWr); - } - finally - { - db.close(); - } - } + + jsonWr.endMap(); // 缁撴潫 "value_list" 鐨� Map + + + // 澶勭悊 alias 閮ㄥ垎 + jsonWr.beginMap("alias"); // 寮�濮� "alias" 鐨� Map + String sAlias = rec.getString("dim_alias"); + if (!SMTStatic.isNullOrEmpty(sAlias)) { + Json jsonAliasMap = null; + try { + jsonAliasMap = Json.read(sAlias); + } catch (Exception e) { + continue; // 濡傛灉瑙f瀽澶辫触鍒欒烦杩囧綋鍓嶈褰� + } + + // 閬嶅巻 alias 鏄犲皠 + for (Entry<String, Json> entry : jsonAliasMap.asJsonMap().entrySet()) { + jsonWr.beginArray(entry.getKey()); // 寮�濮嬩竴涓柊鏁扮粍 + for (Json jsonAliasValue : entry.getValue().asJsonList()) { + jsonWr.addKeyValue(null, jsonAliasValue.asString()); // 娣诲姞姣忎釜鍊煎埌鏁扮粍 + } + jsonWr.endArray(); // 缁撴潫褰撳墠鐨勬暟缁� + } + } + + jsonWr.endMap(); // 缁撴潫 "alias" 鐨� Map + + jsonWr.addKeyValue("type", rec.getString("dim_type")); + // switch(rec.getString("dim_type").charAt(0)) + // { + // case 'S': + // jsonWr.addKeyValue("type", "瀛楃涓�"); + // break; + // + // case 'D': + // jsonWr.addKeyValue("type", "娴偣鏁�"); + // break; + // + // case 'I': + // jsonWr.addKeyValue("type", "鏁存暟"); + // break; + // + // case 'L': + // jsonWr.addKeyValue("type", "闀挎暣鏁�"); + // break; + // + // case 'T': + // jsonWr.addKeyValue("type", "鏃堕棿"); + // break; + // } + + } + jsonWr.endMap(); + } + jsonWr.endArray(); + + return tranReq.returnJson(jsonWr); + } finally { + db.close(); + } + } + public ModelAndView addDimension(SMTAIServerRequest tranReq) throws Exception { String loginUserId = tranReq.getLoginUserId(); -- Gitblit v1.9.3