Ver código fonte

工单临时调整

wangmiaomiao 8 meses atrás
pai
commit
e71577ab91

+ 30 - 4
slibra-admin/src/main/java/com/slibra/web/controller/business/GRPCController.java

@@ -28,7 +28,6 @@ import lombok.extern.slf4j.Slf4j;
 import org.pytorch.serve.grpc.inference.InferenceAPIsServiceGrpc;
 import org.pytorch.serve.grpc.inference.PredictionResponse;
 import org.pytorch.serve.grpc.inference.PredictionsRequest;
-import org.springframework.beans.BeanUtils;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.util.CollectionUtils;
 import org.springframework.web.bind.annotation.*;
@@ -477,6 +476,7 @@ public class GRPCController extends BaseController {
         Date reportDate = chatReq.getReportDate();//如果传过值来了 代表的是工单类型的问答
         String timeBegin = chatReq.getTimeBegin();
         String timeEnd = chatReq.getTimeEnd();
+        String prompt = "";
         if((Objects.isNull(reportDate) && StringUtils.isBlank(timeBegin) && StringUtils.isBlank(timeEnd)) && module == 1){//工单 必须要输入日期
             //智能工单需要传入一个时间的参数
             try {
@@ -544,6 +544,7 @@ public class GRPCController extends BaseController {
                 }*/
                 //2024年7月29日11:47:05 调整:图表以及大模型的数据都由大模型处理,这里拼接他需要的格式
                 chatReq.setQuestion(this.buildGDCustomQuestion(timeBegin, timeEnd, chatReq.getWhichWay()));
+                prompt = getGDPrompt(timeBegin, timeEnd, chatReq.getWhichWay());
                 //2024年6月20日16:48:08  如果是自定义工单,需要处理图表 放到remark中
 //                chatReq.setRemark(JSON.toJSONString(frontService.customWorkOrderHandleByData(workOrderReq, workOrderRes), JSONWriter.Feature.WriteNulls));
             }
@@ -590,7 +591,7 @@ public class GRPCController extends BaseController {
 //                else
 //                    tools = tools;
             }
-            String dataJson = buildBigModelReqForChat(sessionId, historyDates, ipAddr, isStrong, chatReq.getTopP(), chatReq.getTemperature(), tools, useRag);
+            String dataJson = buildBigModelReqForChat(sessionId, historyDates, ipAddr, isStrong, chatReq.getTopP(), chatReq.getTemperature(), tools, useRag, prompt);
             log.info("******请求大模型的问答参数为{}", dataJson);
             PredictionsRequest request = PredictionsRequest.newBuilder()
                     .setModelName("slibra_bot")
@@ -647,7 +648,7 @@ public class GRPCController extends BaseController {
 //        return AjaxResult.success("ok");
     }
 
-    private String buildGDCustomQuestion(String timeBegin, String timeEnd, int whichWay) {
+    private String getGDPrompt(String timeBegin, String timeEnd, int whichWay) {
         //存放的JSON
         HashMap<String, Object> map = new HashMap<>();
         map.put(TIMEBEGIN, timeBegin);
@@ -669,6 +670,29 @@ public class GRPCController extends BaseController {
         return JSON.toJSONString(map);
     }
 
+    private String buildGDCustomQuestion(String timeBegin, String timeEnd, int whichWay) {
+        /*//存放的JSON
+        HashMap<String, Object> map = new HashMap<>();
+        map.put(TIMEBEGIN, timeBegin);
+        map.put(TIMEEND, timeEnd);
+        map.put(MODULE, MODULE_CONTENT_CUSTOM);
+        map.put(TYPE, CUSTOM_WORK_ORDER);
+        //拼装的SQL
+        HashMap<String, Object> sqlMap = new HashMap<>();
+        StringBuilder sb = new StringBuilder();
+        if(whichWay == 0){//日报
+            sqlMap.put(REPORT, sb.append(TOOLS_WORK_ORDER_SQL_DAILY).append(TOOLS_WORK_ORDER_SQL_DIAN_BEGIN).append(TIMEBEGIN).append(TOOLS_WORK_ORDER_SQL_DIAN_END).append(TOOLS_WORK_ORDER_SQL_AND).append(TOOLS_WORK_ORDER_SQL_DIAN_BEGIN).append(TIMEEND).append(TOOLS_WORK_ORDER_SQL_DIAN_END).append(TOOLS_WORK_ORDER_SQL_END).toString());
+            sb = new StringBuilder();
+        }else{//工业库
+            sqlMap.put(ONLINE, sb.append(TOOLS_WORK_ORDER_SQL_INDUSTRY).append(TOOLS_WORK_ORDER_SQL_DIAN_BEGIN).append(TIMEBEGIN).append(TOOLS_WORK_ORDER_SQL_DIAN_END).append(TOOLS_WORK_ORDER_SQL_AND).append(TOOLS_WORK_ORDER_SQL_DIAN_BEGIN).append(TIMEEND).append(TOOLS_WORK_ORDER_SQL_DIAN_END).append(TOOLS_WORK_ORDER_SQL_END).toString());
+            sb = new StringBuilder();
+        }
+        sqlMap.put(ROBOT, sb.append(TOOLS_WORK_ORDER_SQL_ROBOT).append(TOOLS_WORK_ORDER_SQL_DIAN_BEGIN).append(TIMEBEGIN).append(TOOLS_WORK_ORDER_SQL_DIAN_END).append(TOOLS_WORK_ORDER_SQL_AND).append(TOOLS_WORK_ORDER_SQL_DIAN_BEGIN).append(TIMEEND).append(TOOLS_WORK_ORDER_SQL_DIAN_END).append(TOOLS_WORK_ORDER_SQL_END).toString());
+        map.put(DATA, sqlMap);
+        return JSON.toJSONString(map);*/
+        return MODULE_CONTENT_CUSTOM;
+    }
+
     private String buildGDNormalQuestion(String date) {
         //存放的JSON
         HashMap<String, Object> map = new HashMap<>();
@@ -679,7 +703,7 @@ public class GRPCController extends BaseController {
         return JSON.toJSONString(map);
     }
 
-    private String buildBigModelReqForChat(String sessionId, List<String> historyDates, String ipAddr, int isStrong, Double topP, Double temperature, String tools, boolean useRag) {
+    private String buildBigModelReqForChat(String sessionId, List<String> historyDates, String ipAddr, int isStrong, Double topP, Double temperature, String tools, boolean useRag, String prompt) {
         ChatRequest chatRequest = new ChatRequest();
         chatRequest.setSessionId(sessionId);
         chatRequest.setHistoryDia(historyDates);
@@ -694,6 +718,8 @@ public class GRPCController extends BaseController {
         chatRequest.setStrengthen(isStrong == 1);
         chatRequest.setTools(tools);
         chatRequest.setUseRag(useRag);
+        if(StringUtils.isNotBlank(prompt))
+            chatRequest.setPrompt(prompt);
         return JSON.toJSONString(chatRequest);
     }
 

+ 1 - 1
slibra-quartz/src/main/java/com/slibra/quartz/task/AsyncTask.java

@@ -1382,7 +1382,7 @@ public class AsyncTask {
                 map.put("source", "gkz");
             policyReq.setExtra(map);
             dataJson = JSON.toJSONString(policyReq, JSONWriter.Feature.WriteNulls);
-            log.info("~~~~~~请求大模型的决策的参数为{}", dataJson);
+//            log.info("~~~~~~请求大模型的决策的参数为{}", dataJson);
             PredictionsRequest request = PredictionsRequest.newBuilder()
                     .setModelName("slibra_bot")
                     .putInput("method", ByteString.copyFrom("decision_stream", "utf-8"))//推理