suerprisePlus
2024-09-09 623cee8be4846e5762ff2949e519335ef8dee2bb
src/main/java/com/yb/controller/agentController.java
@@ -9,6 +9,7 @@
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 io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
@@ -33,9 +34,9 @@
    @Autowired
    private XzConfig xzConfig;
    @Autowired
    private XzService xzService;
    @Autowired
    private AgentService agentService;
    @Autowired
    private IntentionService intentionService;
    @ApiOperation("意图识别")
    @PostMapping("/intention")
@@ -43,15 +44,9 @@
    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");
        String url = xzConfig.agentUrl;
        String intent = xzConfig.agentIntent;
        String rag = xzConfig.agentRag;
        String chart = xzConfig.agentChat;
//       判断msg是否为空
        if (StringUtils.isEmpty(msg)) {
            String info = agentService.getAgentIntention(url, intent, "''");
            String info = agentService.getAgentIntention(xzConfig.agentUrl, xzConfig.agentIntent, "''");
            JSONObject obj = JSONObject.parseObject(info);
            String cont = obj.getString("content");
            System.out.println("rec isEmpty:" + cont);
@@ -63,11 +58,10 @@
        HashMap<String, Object> hashMap = new HashMap<String, Object>();
        if (isMap) {
            hashMap.put("type", "Map");
            HashMap<String, Object> mapObj = new HashMap<String, Object>();
            String funcInfo = agentService.getAgentIntention(url, intent, msg);
            String funcInfo = agentService.getAgentIntention(xzConfig.agentUrl, xzConfig.agentIntent, msg);
            JSONObject jsonObject = JSON.parseObject(funcInfo);
            String orderString = jsonObject.getString("order");
            if(orderString == null){
            if (orderString == null) {
                hashMap.put("type", "text");
                JSONObject errInfo = JSON.parseObject(funcInfo);
                String erroContent = errInfo.getString("content");
@@ -75,64 +69,13 @@
                return R.error(erroContent);
            }
            JSONObject orderObject = JSON.parseObject(orderString);
            String func = orderObject.getString("name");
            JSONObject argsObject = JSON.parseObject(orderObject.getString("args"));
            String place = argsObject.getString("place");
            String type = argsObject.getString("attris");
            String dis = argsObject.getString("redius");
            int radius = 5000;
            if (dis != null) {
                dis = dis.replace("m", "");
                radius = Integer.parseInt(dis);
            }
            String queryFiled = "enti_name";
            String typeFiled = "sjnr";
            String func1 = "poiMap";
            String func2 = "aroundPoi";
            String func3 = "queryMeta";
            if (func.equals(func1)) {
                String poiMap = agentService.getAgentPoiMap(place, queryFiled);
                System.out.println("poiMap: " + poiMap);
                JSONObject poiObj = JSONObject.parseObject(poiMap);
                System.out.println("poiMap: " + poiObj);
                mapObj.put("func", func1);
                mapObj.put("data", poiObj);
            } else if (func.equals(func2)) {
                mapObj.put("func", func2);
                String aroundPoi = agentService.getAgentAroundPoi(place, type, radius, queryFiled, typeFiled);
                JSONArray dataArray = JSONArray.parseArray(aroundPoi);
                System.out.println("aroundPoi: " + dataArray);
                mapObj.put("data", dataArray);
            } else if (func.equals(func3)) {
                mapObj.put("func", func3);
                String filedString= xzService.getQueryMeta(xzConfig.layerId, xzConfig.dbid,typeFiled,xzConfig.queryEntity);
                JSONObject metaObject = JSON.parseObject(filedString);
                JSONArray dataArray = metaObject.getJSONArray("data");
                String markDown = "| 数据类型 | 数据量 |\\n|------|------|\\n";
                for (int i = 0; i < dataArray.size(); i++) {
                    JSONObject dataObj = dataArray.getJSONObject(i);
                    System.out.println("rec queryMeta:" + dataObj);
                    String[] filedValue = new String[2];
                    for (String key : dataObj.keySet()) {
                        if (key == typeFiled) {
                            filedValue[0] = dataObj.getString(key);
                        } else {
                            filedValue[1] = dataObj.getString(key);
                        }
                    }
                    markDown += "| " + filedValue[0] + " | " + filedValue[1] + " |\n";
                }
                mapObj.put("data", markDown);
            }
//          意图函数匹配
            HashMap<String, Object> mapObj = intentionService.getFunctionMatch(orderString);
            hashMap.put("content", mapObj);
            return R.ok(hashMap);
        } else {
            String ragInfo = agentService.getAgentIntention(url, chart, msg);
            String ragInfo = agentService.getAgentIntention(xzConfig.agentUrl, xzConfig.agentChat, msg);
            JSONObject jsonObject = JSON.parseObject(ragInfo);
            String answer = jsonObject.getString("content");
            System.out.println("Answer: " + answer);
@@ -141,7 +84,6 @@
            return R.ok(hashMap);
        }
//        return R.error("未查询到相关信息");
    }