diff --git a/cmvr-iot-admin/src/main/java/com/cmvr/web/controller/test/TeFlowiseController.java b/cmvr-iot-admin/src/main/java/com/cmvr/web/controller/test/TeFlowiseController.java index bce035c..d14a5aa 100644 --- a/cmvr-iot-admin/src/main/java/com/cmvr/web/controller/test/TeFlowiseController.java +++ b/cmvr-iot-admin/src/main/java/com/cmvr/web/controller/test/TeFlowiseController.java @@ -10,6 +10,7 @@ import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; import lombok.RequiredArgsConstructor; import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.PathVariable; import org.springframework.web.bind.annotation.PostMapping; import org.springframework.web.bind.annotation.RequestBody; import org.springframework.web.bind.annotation.RequestMapping; @@ -29,6 +30,12 @@ public class TeFlowiseController extends BaseController { return AjaxResult.ok(flowiseActionService.start(request)); } + @ApiOperation("根据chatId查询执行结果") + @GetMapping("/{chatId}") + public AjaxResult query(@PathVariable String chatId) { + return AjaxResult.ok(flowiseActionService.query(chatId)); + } + @ApiOperation("终止flowise") @GetMapping("/abort") public AjaxResult abort() { diff --git a/cmvr-iot-admin/src/main/resources/application-dev.yml b/cmvr-iot-admin/src/main/resources/application-dev.yml index 65d18a4..cf598f3 100644 --- a/cmvr-iot-admin/src/main/resources/application-dev.yml +++ b/cmvr-iot-admin/src/main/resources/application-dev.yml @@ -125,4 +125,5 @@ flowise: tts: 192.168.0.222:8080/tts/ start: http://192.168.0.134:3000/api/v1/prediction/f99329e9-b33d-437d-90ed-69eaa8a05418 abort: http://192.168.0.134:3000/api/v1/chatmessage/abort/f99329e9-b33d-437d-90ed-69eaa8a05418/ + query: http://192.168.0.134:3000/api/v1/executions/ api-key: pg61JW6W_GXyqmqSoURJ4mlSRrCMRzGLBJli_w3BFkg \ No newline at end of file diff --git a/cmvr-iot-admin/src/main/resources/application-prod.yml b/cmvr-iot-admin/src/main/resources/application-prod.yml index 641ce3b..3b6783e 100644 --- a/cmvr-iot-admin/src/main/resources/application-prod.yml +++ b/cmvr-iot-admin/src/main/resources/application-prod.yml @@ -125,4 +125,5 @@ flowise: tts: 192.168.0.222:8080/tts/ start: http://192.168.0.134:3000/api/v1/prediction/f99329e9-b33d-437d-90ed-69eaa8a05418 abort: http://192.168.0.134:3000/api/v1/chatmessage/abort/f99329e9-b33d-437d-90ed-69eaa8a05418/ + query: http://192.168.0.134:3000/api/v1/executions/ api-key: pg61JW6W_GXyqmqSoURJ4mlSRrCMRzGLBJli_w3BFkg \ No newline at end of file diff --git a/cmvr-iot-test/src/main/java/com/cmvr/test/service/FlowiseActionService.java b/cmvr-iot-test/src/main/java/com/cmvr/test/service/FlowiseActionService.java index 97a3f60..7b8bd86 100644 --- a/cmvr-iot-test/src/main/java/com/cmvr/test/service/FlowiseActionService.java +++ b/cmvr-iot-test/src/main/java/com/cmvr/test/service/FlowiseActionService.java @@ -1,6 +1,8 @@ package com.cmvr.test.service; import cn.hutool.http.HttpRequest; +import com.alibaba.fastjson2.JSON; +import com.alibaba.fastjson2.JSONArray; import com.alibaba.fastjson2.JSONObject; import com.cmvr.common.exception.GlobalException; import com.cmvr.common.utils.http.CallAPIUtil; @@ -35,6 +37,9 @@ public class FlowiseActionService { @Value("${flowise.tts}") private String flowiseTts; + @Value("${flowise.query}") + private String flowiseQuery; + @Value("${flowise.start}") private String flowiseStart; @@ -52,6 +57,8 @@ public class FlowiseActionService { private String chatId = null; public String start(FlowiseStartRequestVO request) { + log.info("flowise start"); + abort(); synchronized (lock) { if (chatId != null) { throw new GlobalException("Flow is already running: " + chatId); @@ -68,6 +75,7 @@ public class FlowiseActionService { try { HttpRequest.post(flowiseStart) .header("Content-Type", "application/json") + .header("Authorization", "Bearer " + flowiseApiKey) .body(body.toJSONString()) .timeout(0) .execute() @@ -76,7 +84,6 @@ public class FlowiseActionService { throw new GlobalException("flowise 流程执行失败: ", e.getMessage()); } }); - return chatId; } } @@ -90,7 +97,7 @@ public class FlowiseActionService { synchronized (lock) { if (chatId == null) { - throw new GlobalException( "No flow running."); + return "No flow running."; } String id = chatId; @@ -107,6 +114,7 @@ public class FlowiseActionService { } public String command(FlowiseActionRequestVO request) { + log.info("command start"); String action = request.getAction(); FlowiseActionEnum actionEnum = FlowiseActionEnum.fromAction(action); String terminalId = "4ed1246c465b97975f96c9ef8371a3bd"; @@ -134,12 +142,25 @@ public class FlowiseActionService { } public String chat(FlowiseChatRequestVO requestVO) { + log.info("chat start"); Map body = new HashMap<>(); body.put("text", requestVO.getText()); body.put("voice", "x4_yezi"); CallAPIUtil.doPostJson(flowiseTts + "play", null, body); - return "ok"; } + + public JSONObject query(String chatId) { + String body = HttpRequest.get(flowiseQuery + chatId) + .header("Authorization", "Bearer " + flowiseApiKey) + .execute() + .body(); + JSONObject root = JSON.parseObject(body); + String execStr = root.getString("executionData"); + JSONArray execJson = JSON.parseArray(execStr); + root.put("executionData", execJson); + + return root; + } } \ No newline at end of file