From 4510a9b0d7c22fbcb3a8b7cc99b948e262e6a759 Mon Sep 17 00:00:00 2001
From: TangCheng <tangchengmail@163.com>
Date: 星期一, 10 三月 2025 19:00:17 +0800
Subject: [PATCH] 添加调用大模型接口

---
 JAVA/SMTAIServer/src/main/resources/requestmap/java_ai.json                              |   14 ++++++++++++++
 JAVA/SMTAIServer/src/main/java/com/smtaiserver/smtaiserver/control/SMTJavaAIControl.java |   34 ++++++++++++++++++++++++++++++++++
 JAVA/SMTAIServer/src/main/resources/requestmap/server_api.json                           |    2 +-
 3 files changed, 49 insertions(+), 1 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 143c5ba..2458ca6 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
@@ -1296,4 +1296,38 @@
     	
     	return tranReq.returnJson(jsonWr);
     }
+    
+    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())
+	    	{
+	    		listSystem.add(jsonSystem.asString());
+	    	}
+    	}
+    	
+    	String answer = conn.callWithMessage(listSystem, question, tranReq);
+    	if(answerIsJson)
+    	{
+    		jsonWr.addKeyRaw("answer", SMTStatic.convLLMAnswerToJson(answer, false));
+    	}
+    	else
+    	{
+    		jsonWr.addKeyValue("answer", answer);
+    	}
+
+		return tranReq.returnJson(jsonWr);
+    }
 }
diff --git a/JAVA/SMTAIServer/src/main/resources/requestmap/java_ai.json b/JAVA/SMTAIServer/src/main/resources/requestmap/java_ai.json
index e089b5c..427d350 100644
--- a/JAVA/SMTAIServer/src/main/resources/requestmap/java_ai.json
+++ b/JAVA/SMTAIServer/src/main/resources/requestmap/java_ai.json
@@ -344,5 +344,19 @@
 				]
 			}
 		]
+	},
+	
+	"llm/call_llm":{"map":{"class":"#SMTJavaAIControl", "method":"callLLM"}, "no_shrio":true,
+			"swaggers":[
+			{	"tags" : ["澶фā鍨嬫搷浣�"],
+				"title" : "鐩存帴璇㈤棶澶фā鍨�",
+				"parameters" : [
+					{"name":"llm_id", "title":"鏌ヨ妯″瀷id(涓嶅~鍒欒皟鐢ㄧ己鐪佹ā鍨�)", "required":false},
+					{"name":"system_json", "title":"鎻愮ずjson鏁扮粍 [鈥橀棶棰�1鈥�,鈥橀棶棰�2鈥�...] ", "required":false},
+					{"name":"question", "title":"鐢ㄦ埛闂", "required":true},
+					{"name":"answer_is_json", "title":"鍥炵瓟闂鏍煎紡鏄惁鏄痡son", "required":true}
+				]
+			}
+		]
 	}
 }
\ No newline at end of file
diff --git a/JAVA/SMTAIServer/src/main/resources/requestmap/server_api.json b/JAVA/SMTAIServer/src/main/resources/requestmap/server_api.json
index 4f73c9d..b076eaa 100644
--- a/JAVA/SMTAIServer/src/main/resources/requestmap/server_api.json
+++ b/JAVA/SMTAIServer/src/main/resources/requestmap/server_api.json
@@ -9,7 +9,7 @@
 	"swagger-resources":{"map":{"class":"#AIServerControl", "method":"swaggerResource", "no_shrio":true}
 	},
 	
-	"v2/api-docs":{"map":{"class":"#AIServerControl", "method":"swaggerDocs", "no_shrio":true}
+	"v2/api-docs":{"map":{"class":"#AIServerControl", "method":"swaggerDocs"}, "no_shrio":true
 	},
 	
 	"swagger-json":{"map":{"class":"#AIServerControl", "method":"getSwaggerJson"},

--
Gitblit v1.9.3