From d5d68339c89b1cbbd9423521bb029b6ad718facd Mon Sep 17 00:00:00 2001 From: unknown <q> Date: 星期二, 11 三月 2025 09:38:01 +0800 Subject: [PATCH] Merge remote-tracking branch 'origin/appendix' into appendix --- JAVA/SMTAIServer/src/main/resources/requestmap/java_ai.json | 14 +++++++++++++- JAVA/SMTAIServer/src/main/java/com/smtaiserver/smtaiserver/control/SMTJavaAIControl.java | 41 ++++++++++++++++++++++++++++++++++------- 2 files changed, 47 insertions(+), 8 deletions(-) diff --git a/JAVA/SMTAIServer/src/main/java/com/smtaiserver/smtaiserver/control/SMTJavaAIControl.java b/JAVA/SMTAIServer/src/main/java/com/smtaiserver/smtaiserver/control/SMTJavaAIControl.java index 3f5b232..647a668 100644 --- a/JAVA/SMTAIServer/src/main/java/com/smtaiserver/smtaiserver/control/SMTJavaAIControl.java +++ b/JAVA/SMTAIServer/src/main/java/com/smtaiserver/smtaiserver/control/SMTJavaAIControl.java @@ -1307,20 +1307,20 @@ return tranReq.returnJson(jsonWr); } - - public ModelAndView callLLM(SMTAIServerRequest tranReq) throws Exception + + public ModelAndView callLLM(SMTAIServerRequest tranReq) throws Exception { String llmId = tranReq.convParamToString("llm_id", false); Json jsonSystems = tranReq.convParamToJson("system_json", false); String question = tranReq.convParamToString("question", true); boolean answerIsJson = tranReq.convParamToBoolean("answer_is_json", true); - - + + SMTJsonWriter jsonWr = tranReq.newReturnJsonWriter(true, null, null); SMTLLMConnect conn = SMTAIServerApp.getApp().allocLLMConnect(llmId); - + List<String> listSystem = new ArrayList<>(); - + if(jsonSystems != null) { for(Json jsonSystem : jsonSystems.asJsonList()) @@ -1328,7 +1328,7 @@ listSystem.add(jsonSystem.asString()); } } - + String answer = conn.callWithMessage(listSystem, question, tranReq); if(answerIsJson) { @@ -1368,4 +1368,31 @@ throw new Exception("Error processing file download: " + e.getMessage()); } } + + public void downloadFileByFileId(SMTAIServerRequest tranReq, HttpServletResponse response) throws Exception { + String fileId = tranReq.convParamToString("file_id", true); // 鑾峰彇璇锋眰涓殑file_id + SMTDatabase db = SMTAIServerApp.getApp().allocDatabase(); + + try { + // 鏌ヨ鎸囧畾file_id鐨勬枃浠惰褰� + DBRecords dbRecords = db.querySQL("SELECT * FROM ai_times.chat_history_attach WHERE attach_id=?", new Object[]{fileId}); + if (dbRecords.getRecords().isEmpty()) { + throw new Exception("鏂囦欢涓嶅瓨鍦�"); + } + + // 鑾峰彇鏂囦欢淇℃伅 + DBRecord fileRecord = dbRecords.getRecords().get(0); + String attachTitle = fileRecord.getString("attach_title"); // 鑾峰彇鏂囦欢鏍囬 + String attachBytes = fileRecord.getString("attach_bytes"); + byte[] bytes = attachBytes.getBytes(); + // 璁剧疆鍝嶅簲澶村拰鏂囦欢鍚� + String fileName = attachTitle != null ? attachTitle : "downloaded_file"; + response.setHeader("Content-Disposition", "attachment; filename=\"" + fileName + "\""); + response.setContentType("application/octet-stream"); + response.getOutputStream().write(bytes); + response.getOutputStream().flush(); + } catch (Exception e) { + throw new Exception("Error processing file download: " + e.getMessage()); + } + } } diff --git a/JAVA/SMTAIServer/src/main/resources/requestmap/java_ai.json b/JAVA/SMTAIServer/src/main/resources/requestmap/java_ai.json index 3338d2c..6c90e27 100644 --- a/JAVA/SMTAIServer/src/main/resources/requestmap/java_ai.json +++ b/JAVA/SMTAIServer/src/main/resources/requestmap/java_ai.json @@ -358,7 +358,7 @@ } ] }, - + "llm/call_llm":{"map":{"class":"#SMTJavaAIControl", "method":"callLLM"}, "no_shrio":true, "swaggers":[ { "tags" : ["澶фā鍨嬫搷浣�"], @@ -368,6 +368,18 @@ {"name":"system_json", "title":"鎻愮ずjson鏁扮粍 [鈥橀棶棰�1鈥�,鈥橀棶棰�2鈥�...] ", "required":false}, {"name":"question", "title":"鐢ㄦ埛闂", "required":true}, {"name":"answer_is_json", "title":"鍥炵瓟闂鏍煎紡鏄惁鏄痡son", "required":true} + {"name":"quota_keys", "title":"query_attach_metric_names杩斿洖鍓嶇鐨刯son", "required":true}, + {"name":"limit", "title":"鏌ヨ椤垫暟锛岄粯璁�100", "required":false} + ] + } + ] + }, + "file/download_file":{"map":{"class":"#SMTJavaAIControl", "method":"downloadFileByFileId"}, + "swaggers":[ + { "tags" : ["鏂囦欢涓嬭浇"], + "title" : "鏂囦欢涓嬭浇", + "parameters" : [ + {"name":"file_id", "title":"鏂囦欢id", "required":true} ] } ] -- Gitblit v1.9.3