From a4ebc7875ca6020201ce3c8c3c0252dd71a31717 Mon Sep 17 00:00:00 2001 From: zhuangtianxiang <2913129173@qq.com> Date: Thu, 8 May 2025 17:00:06 +0800 Subject: [PATCH] =?UTF-8?q?refactor(dify):=20=E9=87=8D=E6=9E=84=20Dify=20?= =?UTF-8?q?=E7=9B=B8=E5=85=B3=E6=9C=8D=E5=8A=A1=E5=92=8C=E6=8E=A7=E5=88=B6?= =?UTF-8?q?=E5=99=A8-=20=E9=87=8D=E5=91=BD=E5=90=8D=20DifyServerService=20?= =?UTF-8?q?=E4=B8=BA=20AppEntityService=20-=20=E6=9B=B4=E6=96=B0=E7=9B=B8?= =?UTF-8?q?=E5=85=B3=E5=AE=9E=E7=8E=B0=E7=B1=BB=E5=92=8C=E6=8E=A7=E5=88=B6?= =?UTF-8?q?=E5=99=A8=E4=B8=AD=E7=9A=84=E5=BC=95=E7=94=A8-=20=E6=96=B0?= =?UTF-8?q?=E5=A2=9E=20AppEntityService=20=E4=B8=AD=E7=9A=84=20getApikeyBy?= =?UTF-8?q?Redis=20=E6=96=B9=E6=B3=95=20-=20=E4=BF=AE=E6=94=B9=20V1ChatCon?= =?UTF-8?q?troller=E3=80=81V1DatasetController=E3=80=81V1ServerController?= =?UTF-8?q?=20=E5=92=8C=20V1WorkflowController=20=E4=B8=AD=E7=9A=84?= =?UTF-8?q?=E7=9B=B8=E5=85=B3=E8=B0=83=E7=94=A8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../dify/controller/V1ChatController.java | 31 +++++++++---------- .../dify/controller/V1DatasetController.java | 2 -- .../dify/controller/V1ServerController.java | 12 +++---- .../dify/controller/V1WorkflowController.java | 9 +++--- ...rverService.java => AppEntityService.java} | 4 ++- ...iceImpl.java => AppEntityServiceImpl.java} | 13 ++++++-- 6 files changed, 39 insertions(+), 32 deletions(-) rename src/main/java/com/zsc/edu/dify/modules/dify/service/{DifyServerService.java => AppEntityService.java} (77%) rename src/main/java/com/zsc/edu/dify/modules/dify/service/Impl/{DifyServerServiceImpl.java => AppEntityServiceImpl.java} (84%) diff --git a/src/main/java/com/zsc/edu/dify/modules/dify/controller/V1ChatController.java b/src/main/java/com/zsc/edu/dify/modules/dify/controller/V1ChatController.java index 375f312..d571350 100644 --- a/src/main/java/com/zsc/edu/dify/modules/dify/controller/V1ChatController.java +++ b/src/main/java/com/zsc/edu/dify/modules/dify/controller/V1ChatController.java @@ -1,6 +1,6 @@ package com.zsc.edu.dify.modules.dify.controller; -import com.zsc.edu.dify.modules.dify.repo.AppEntityRepository; +import com.zsc.edu.dify.modules.dify.service.AppEntityService; import com.zsc.edu.dify.modules.operationLog.entity.OperationLogAnnotation; import io.github.guoshiqiufeng.dify.chat.DifyChat; import io.github.guoshiqiufeng.dify.chat.dto.request.ChatMessageSendRequest; @@ -27,7 +27,7 @@ public class V1ChatController { @Resource private DifyChat difyChat; @Resource - private AppEntityRepository appEntityRepository; + private AppEntityService appEntityService; /** * 发送消息 @@ -36,15 +36,14 @@ public class V1ChatController { * 用户 id可以改为从上下文(token)获取, * apikey 建议在数据库进行存储,前端调用时传智能体 id,从数据库查询 */ - @PostMapping("/completions/{appid}") + @PostMapping("/completions/{appId}") @PreAuthorize("hasAuthority('dify:chat:query')") @OperationLogAnnotation(content = "'dify对话'", operationType = "发送") public ChatMessageSendResponse sendChatMessage( @RequestBody ChatMessageSendRequest sendRequest, - @PathVariable String appid + @PathVariable String appId ) { - String apiKey = appEntityRepository.selectApiKey(appid); - sendRequest.setApiKey(apiKey); + sendRequest.setApiKey(appEntityService.getApikeyByRedis(appId)); return difyChat.send(sendRequest); } @@ -62,8 +61,7 @@ public class V1ChatController { @RequestBody ChatMessageSendRequest sendRequest, @PathVariable String appid ) { - String apiKey = appEntityRepository.selectApiKey(appid); - sendRequest.setApiKey(apiKey); + sendRequest.setApiKey(appEntityService.getApikeyByRedis(appid)); return difyChat.sendChatMessageStream(sendRequest); } @@ -73,14 +71,13 @@ public class V1ChatController { * @param request 请求参数 * @return 会话列表 */ - @PostMapping("/conversations/{appid}") + @PostMapping("/conversations/{appId}") @PreAuthorize("hasAuthority('dify:chat:query')") public DifyPageResult conversations( @RequestBody MessageConversationsRequest request, - @PathVariable String appid + @PathVariable String appId ) { - String apiKey = appEntityRepository.selectApiKey(appid); - request.setApiKey(apiKey); + request.setApiKey(appEntityService.getApikeyByRedis(appId)); return difyChat.conversations(request); } @@ -91,8 +88,8 @@ public class V1ChatController { * @param userId 用户id */ @PatchMapping("/stream/stop") - public void stopMessagesStream(@RequestParam String taskId, @RequestParam String userId, @RequestParam String appid) { - String apiKey = appEntityRepository.selectApiKey(appid); + public void stopMessagesStream(@RequestParam String taskId, @RequestParam String userId, @RequestParam String appId) { + String apiKey = appEntityService.getApikeyByRedis(appId); difyChat.stopMessagesStream(apiKey, taskId, userId); } @@ -105,8 +102,10 @@ public class V1ChatController { @DeleteMapping("/conversation") @PreAuthorize("hasAuthority('dify:chat:delete')") @OperationLogAnnotation(content = "'dify对话", operationType = "删除") - public void deleteConversation(@RequestParam String conversationId, @RequestParam String userId, @RequestParam String appid) { - String apiKey = appEntityRepository.selectApiKey(appid); + public void deleteConversation(@RequestParam String conversationId, @RequestParam String userId, @RequestParam String appId) { + String apiKey = appEntityService.getApikeyByRedis(appId); difyChat.deleteConversation(conversationId, apiKey, userId); } + + } \ No newline at end of file diff --git a/src/main/java/com/zsc/edu/dify/modules/dify/controller/V1DatasetController.java b/src/main/java/com/zsc/edu/dify/modules/dify/controller/V1DatasetController.java index a2d9a23..992d156 100644 --- a/src/main/java/com/zsc/edu/dify/modules/dify/controller/V1DatasetController.java +++ b/src/main/java/com/zsc/edu/dify/modules/dify/controller/V1DatasetController.java @@ -12,7 +12,6 @@ import jakarta.annotation.Resource; import org.springframework.beans.factory.annotation.Value; import org.springframework.security.access.prepost.PreAuthorize; import org.springframework.web.bind.annotation.*; -//TODO 操作日志 @RestController @RequestMapping("/api/v1/dataset") public class V1DatasetController { @@ -35,7 +34,6 @@ public class V1DatasetController { return difyDataset.page(request); } - //TODO 接口报错 /** * 通过文件创建文档 * diff --git a/src/main/java/com/zsc/edu/dify/modules/dify/controller/V1ServerController.java b/src/main/java/com/zsc/edu/dify/modules/dify/controller/V1ServerController.java index cd3183f..520b4bb 100644 --- a/src/main/java/com/zsc/edu/dify/modules/dify/controller/V1ServerController.java +++ b/src/main/java/com/zsc/edu/dify/modules/dify/controller/V1ServerController.java @@ -1,16 +1,14 @@ package com.zsc.edu.dify.modules.dify.controller; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; -import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper; import com.zsc.edu.dify.modules.dify.entity.AppEntity; -import com.zsc.edu.dify.modules.dify.service.DifyServerService; +import com.zsc.edu.dify.modules.dify.service.AppEntityService; import com.zsc.edu.dify.modules.operationLog.entity.OperationLogAnnotation; import io.github.guoshiqiufeng.dify.server.DifyServer; import io.github.guoshiqiufeng.dify.server.dto.response.ApiKeyResponseVO; import io.github.guoshiqiufeng.dify.server.dto.response.AppsResponseVO; import io.github.guoshiqiufeng.dify.server.dto.response.DatasetApiKeyResponseVO; import jakarta.annotation.Resource; -import org.apache.ibatis.annotations.Param; import org.springframework.security.access.prepost.PreAuthorize; import org.springframework.web.bind.annotation.*; @@ -23,7 +21,7 @@ public class V1ServerController { @Resource private DifyServer difyServer; @Resource - private DifyServerService difyServerService; + private AppEntityService appEntityService; /** * 获取应用列表 @@ -34,7 +32,7 @@ public class V1ServerController { @GetMapping("/apps") @PreAuthorize("hasAuthority('dify:server:query')") public List getApps(String mode, String name) { - return difyServerService.getApps(mode, name); + return appEntityService.getApps(mode, name); } /** @@ -100,7 +98,7 @@ public class V1ServerController { @PreAuthorize("hasAuthority('dify:server:update')") @OperationLogAnnotation(content = "'dify服务启用状态'", operationType = "更新") public boolean enabledApp(@PathVariable String id) { - return difyServerService.enabledApp(id); + return appEntityService.enabledApp(id); } /** @@ -112,7 +110,7 @@ public class V1ServerController { public List getEnableApps() { LambdaQueryWrapper queryWrapper = new LambdaQueryWrapper<>(); queryWrapper.eq(AppEntity::isEnabled, true); - return difyServerService.list(queryWrapper); + return appEntityService.list(queryWrapper); } } diff --git a/src/main/java/com/zsc/edu/dify/modules/dify/controller/V1WorkflowController.java b/src/main/java/com/zsc/edu/dify/modules/dify/controller/V1WorkflowController.java index 8e13bad..9f14a27 100644 --- a/src/main/java/com/zsc/edu/dify/modules/dify/controller/V1WorkflowController.java +++ b/src/main/java/com/zsc/edu/dify/modules/dify/controller/V1WorkflowController.java @@ -3,6 +3,7 @@ package com.zsc.edu.dify.modules.dify.controller; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.zsc.edu.dify.modules.dify.entity.WorkflowData; import com.zsc.edu.dify.modules.dify.repo.AppEntityRepository; +import com.zsc.edu.dify.modules.dify.service.AppEntityService; import com.zsc.edu.dify.modules.dify.service.DifyWorkflowService; import com.zsc.edu.dify.modules.operationLog.entity.OperationLogAnnotation; import io.github.guoshiqiufeng.dify.core.pojo.DifyPageResult; @@ -25,7 +26,7 @@ public class V1WorkflowController { private DifyWorkflow difyWorkflow; @Resource - private AppEntityRepository appEntityRepository; + private AppEntityService appEntityService; @Resource private DifyWorkflowService difyWorkflowService; @@ -63,7 +64,7 @@ public class V1WorkflowController { */ @PatchMapping("/stop/{appId}") public WorkflowStopResponse stopWorkflowStream(String taskId, String userId, @PathVariable String appId) { - String apiKey = appEntityRepository.selectApiKey(appId); + String apiKey =appEntityService.getApikeyByRedis(appId); return difyWorkflow.stopWorkflowStream(apiKey, taskId, userId); } @@ -76,7 +77,7 @@ public class V1WorkflowController { @GetMapping("/info/{appId}") @PreAuthorize("hasAuthority('dify:workflow:info')") public WorkflowInfoResponse info(String workflowRunId, @PathVariable String appId) { - String apiKey = appEntityRepository.selectApiKey(appId); + String apiKey =appEntityService.getApikeyByRedis(appId); return difyWorkflow.info(workflowRunId, apiKey); } @@ -89,7 +90,7 @@ public class V1WorkflowController { @PostMapping("/logs/{appId}") @PreAuthorize("hasAuthority('dify:workflow:log')") public DifyPageResult logs(@RequestBody WorkflowLogsRequest request, @PathVariable String appId) { - String apiKey = appEntityRepository.selectApiKey(appId); + String apiKey = appEntityService.getApikeyByRedis(appId); request.setApiKey(apiKey); final DifyPageResult logs = difyWorkflow.logs(request); return logs; diff --git a/src/main/java/com/zsc/edu/dify/modules/dify/service/DifyServerService.java b/src/main/java/com/zsc/edu/dify/modules/dify/service/AppEntityService.java similarity index 77% rename from src/main/java/com/zsc/edu/dify/modules/dify/service/DifyServerService.java rename to src/main/java/com/zsc/edu/dify/modules/dify/service/AppEntityService.java index 2aca2a6..5a8a97c 100644 --- a/src/main/java/com/zsc/edu/dify/modules/dify/service/DifyServerService.java +++ b/src/main/java/com/zsc/edu/dify/modules/dify/service/AppEntityService.java @@ -6,8 +6,10 @@ import io.github.guoshiqiufeng.dify.server.dto.response.AppsResponseVO; import java.util.List; -public interface DifyServerService extends IService { +public interface AppEntityService extends IService { List getApps(String mode, String name); boolean enabledApp(String id); + + String getApikeyByRedis(String appId); } diff --git a/src/main/java/com/zsc/edu/dify/modules/dify/service/Impl/DifyServerServiceImpl.java b/src/main/java/com/zsc/edu/dify/modules/dify/service/Impl/AppEntityServiceImpl.java similarity index 84% rename from src/main/java/com/zsc/edu/dify/modules/dify/service/Impl/DifyServerServiceImpl.java rename to src/main/java/com/zsc/edu/dify/modules/dify/service/Impl/AppEntityServiceImpl.java index 13b9f54..d4da030 100644 --- a/src/main/java/com/zsc/edu/dify/modules/dify/service/Impl/DifyServerServiceImpl.java +++ b/src/main/java/com/zsc/edu/dify/modules/dify/service/Impl/AppEntityServiceImpl.java @@ -6,12 +6,13 @@ import com.zsc.edu.dify.exception.ConstraintException; import com.zsc.edu.dify.modules.dify.entity.AppEntity; import com.zsc.edu.dify.modules.dify.mapper.AppEntityMapper; import com.zsc.edu.dify.modules.dify.repo.AppEntityRepository; -import com.zsc.edu.dify.modules.dify.service.DifyServerService; +import com.zsc.edu.dify.modules.dify.service.AppEntityService; import io.github.guoshiqiufeng.dify.server.DifyServer; import io.github.guoshiqiufeng.dify.server.dto.response.ApiKeyResponseVO; import io.github.guoshiqiufeng.dify.server.dto.response.AppsResponseVO; import jakarta.annotation.Resource; import lombok.AllArgsConstructor; +import org.springframework.cache.annotation.Cacheable; import org.springframework.stereotype.Service; import java.util.*; @@ -21,11 +22,13 @@ import java.util.*; */ @AllArgsConstructor @Service -public class DifyServerServiceImpl extends ServiceImpl implements DifyServerService { +public class AppEntityServiceImpl extends ServiceImpl implements AppEntityService { @Resource private AppEntityMapper appEntityMapper; @Resource private DifyServer difyServer; + @Resource + private AppEntityRepository appEntityRepository; @Override public List getApps(String mode, String name) { @@ -65,4 +68,10 @@ public class DifyServerServiceImpl extends ServiceImpl