From d4e4ea6405756d495806a609e24ae85ebd7345ef Mon Sep 17 00:00:00 2001 From: suerprisePlus <15810472099@163.com> Date: 星期二, 17 十二月 2024 09:30:12 +0800 Subject: [PATCH] 代码更新 --- src/main/java/com/yb/controller/agentController.java | 108 +++++++++++++++++++++++++++++++++++++++++++++++------ 1 files changed, 95 insertions(+), 13 deletions(-) diff --git a/src/main/java/com/yb/controller/agentController.java b/src/main/java/com/yb/controller/agentController.java index 2f5a653..315e30a 100644 --- a/src/main/java/com/yb/controller/agentController.java +++ b/src/main/java/com/yb/controller/agentController.java @@ -2,15 +2,17 @@ import com.alibaba.fastjson.JSON; + import com.alibaba.fastjson.JSONArray; import com.alibaba.fastjson.JSONObject; -import com.fasterxml.jackson.databind.JsonNode; -import com.fasterxml.jackson.databind.ObjectMapper; +import com.fasterxml.jackson.core.JsonParser; + import com.yb.config.R; import com.yb.config.XzConfig; import com.yb.service.AgentService; import com.yb.service.IntentionService; -import com.yb.service.XzService; + +import com.yb.util.EntityHttpUtil; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; import io.swagger.v3.oas.annotations.Operation; @@ -21,7 +23,9 @@ import org.springframework.stereotype.Component; import org.springframework.web.bind.annotation.*; +import java.util.ArrayList; import java.util.HashMap; +import java.util.List; import java.util.Map; @Tag(name = "Agent鎰忓浘") @@ -37,6 +41,8 @@ private AgentService agentService; @Autowired private IntentionService intentionService; + @Autowired + private EntityHttpUtil entityHttpUtil; @ApiOperation("鎰忓浘璇嗗埆") @PostMapping("/intention") @@ -44,9 +50,12 @@ public R getIntention(@RequestParam Map<String, String> allParams) throws Exception { System.out.println("rec getMessage:" + allParams); String msg = allParams.get("message"); + String sessionid = allParams.get("session_id"); + + String libid = allParams.get("lib_id"); // 鍒ゆ柇msg鏄惁涓虹┖ if (StringUtils.isEmpty(msg)) { - String info = agentService.getAgentIntention(xzConfig.agentUrl, xzConfig.agentIntent, "''"); + String info = agentService.getAgentIntention(xzConfig.agentUrl, xzConfig.agentIntent, "''",sessionid,libid); JSONObject obj = JSONObject.parseObject(info); String cont = obj.getString("content"); System.out.println("rec isEmpty:" + cont); @@ -58,7 +67,8 @@ HashMap<String, Object> hashMap = new HashMap<String, Object>(); if (isMap) { hashMap.put("type", "Map"); - String funcInfo = agentService.getAgentIntention(xzConfig.agentUrl, xzConfig.agentIntent, msg); + hashMap.put("session_id", allParams.get("session_id")); + String funcInfo = agentService.getAgentIntention(xzConfig.agentUrl, xzConfig.agentIntent, msg,sessionid,libid); JSONObject jsonObject = JSON.parseObject(funcInfo); String orderString = jsonObject.getString("order"); if (orderString == null) { @@ -69,23 +79,95 @@ return R.error(erroContent); } + String report =jsonObject.getString("report"); // 鎰忓浘鍑芥暟鍖归厤 - HashMap<String, Object> mapObj = intentionService.getFunctionMatch(orderString); + HashMap<String, Object> mapObj = intentionService.getFunctionMatch(orderString, allParams,report); +// hashMap.put("place",place) + String args = JSONObject.parseObject(orderString).getString("args"); + if (args != null) { + String place = JSONObject.parseObject(args).getString("place"); + mapObj.put("place", place); + } hashMap.put("content", mapObj); return R.ok(hashMap); } else { - String ragInfo = agentService.getAgentIntention(xzConfig.agentUrl, xzConfig.agentChat, msg); - JSONObject jsonObject = JSON.parseObject(ragInfo); - String answer = jsonObject.getString("content"); - System.out.println("Answer: " + answer); - hashMap.put("content", answer); - hashMap.put("type", "Rag"); - return R.ok(hashMap); + + String ragInfo1 = agentService.getAgentRag(xzConfig.agentUrl, xzConfig.agentRag, allParams.get("session_id"), allParams.get("lib_id"), msg); + System.out.println("rec rag:" + ragInfo1); + if (ragInfo1.equals("")) { + String ragInfo = agentService.getAgentIntention(xzConfig.agentUrl, xzConfig.agentChat, msg,sessionid,libid); + JSONObject jsonObject = JSON.parseObject(ragInfo); + String answer = jsonObject.getString("content"); + System.out.println("Answer: " + answer); + hashMap.put("content", answer); + hashMap.put("type", "Rag"); + return R.ok(hashMap); + } else { + JSONObject jsonObject1 = JSON.parseObject(ragInfo1); + String answer1 = jsonObject1.getString("content"); + System.out.println("Answer: " + answer1); + String jso = JSONObject.parseObject(answer1).getString("answer"); + String context = JSONObject.parseObject(answer1).getString("context"); + + if (context != "") { + hashMap.put("fileSrource", JSON.parseArray(context)); + } + hashMap.put("content", jso); + hashMap.put("type", "Rag"); + return R.ok(hashMap); + } + } } + @ApiOperation("鑾峰彇鍥惧眰鍒楄〃") + @GetMapping("/layerList") + @Operation(summary = "鑾峰彇鍥惧眰鍒楄〃") + public R getLayerList() throws Exception { + HashMap<String, String> formData = new HashMap<>(); + formData.put("token", xzConfig.token); + formData.put("dbid", xzConfig.dbid); + String obj = entityHttpUtil.getPostMessage(xzConfig.permissionLayer, formData); + System.out.println("layerList: " + JSON.parseObject(JSONObject.parseObject(obj).getString("data"))); + HashMap<String, Object> hashMap = new HashMap<String, Object>(); + String layers = JSON.parseObject(JSONObject.parseObject(obj).getString("data")).getString("layers"); + JSONArray dataArray = JSONArray.parseArray(layers); + ArrayList<HashMap> list = new ArrayList<>(); + for (int i = 0; i < dataArray.size(); i++) { + JSONObject itmObj = JSONObject.parseObject(dataArray.get(i).toString()); + String item = itmObj.getString("dataformat"); + + String id = itmObj.getString("id"); + if (item.equals("entity")) { + HashMap<String, Object> itmHash = new HashMap<>(); + String name = itmObj.getString("name"); + String url = itmObj.getString("lod_url"); + if (url != null) { + String url3d = JSONObject.parseObject(url).getString("3d"); + + if (url3d != null) { + String l1 = JSONObject.parseObject(url3d).getString("l0"); + itmHash.put("url", l1); + itmHash.put("sourceType", "Tileset"); + itmHash.put("name", name); + itmHash.put("id", id); + list.add(itmHash); + } + + + } + + } + + } + +// System.out.println("layerList: " + list); + hashMap.put("data", list); + return R.ok(hashMap); + } + } -- Gitblit v1.9.3