From 0cf13d9df73e8e9befa36236756ef02dd5f60e94 Mon Sep 17 00:00:00 2001 From: suerprisePlus <15810472099@163.com> Date: 星期六, 14 九月 2024 09:55:38 +0800 Subject: [PATCH] 接口修改 --- src/main/java/com/yb/controller/agentController.java | 95 ++++++++++++++++++++++++++++++++++++++++++----- 1 files changed, 84 insertions(+), 11 deletions(-) diff --git a/src/main/java/com/yb/controller/agentController.java b/src/main/java/com/yb/controller/agentController.java index 2f5a653..47eb4a5 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,6 +50,7 @@ public R getIntention(@RequestParam Map<String, String> allParams) throws Exception { System.out.println("rec getMessage:" + allParams); String msg = allParams.get("message"); + // 鍒ゆ柇msg鏄惁涓虹┖ if (StringUtils.isEmpty(msg)) { String info = agentService.getAgentIntention(xzConfig.agentUrl, xzConfig.agentIntent, "''"); @@ -70,22 +77,88 @@ } // 鎰忓浘鍑芥暟鍖归厤 - HashMap<String, Object> mapObj = intentionService.getFunctionMatch(orderString); + HashMap<String, Object> mapObj = intentionService.getFunctionMatch(orderString, allParams); 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); + 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"); +// JSONArray jsonArray = JSON.parseArray(context); +// String metadata = ""; +// for (int i = 0; i < jsonArray.size(); i++) { +// JSONObject jsonObject = jsonArray.getJSONObject(i); +// +// metadata = jsonObject.getString("metadata"); +// +// +// } + if (context != "") { +// String[] fileSource = metadata.split("/"); + 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("Answer: " + obj); + 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"); +// System.out.println("Answer: " + item); + 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 l1 = JSONObject.parseObject(JSONObject.parseObject(url).getString("3d")).getString("l0"); + itmHash.put("url", l1); + itmHash.put("sourceType", "Tileset"); + itmHash.put("name", name); + itmHash.put("id", id); + list.add(itmHash); + } + + } + + } + hashMap.put("data", list); + return R.ok(hashMap); + } + } -- Gitblit v1.9.3