refactor(dify): 重构实体类和接口名称
- 将 AppsResponse 重命名为 AppEntity- 将 AppsResponseMapper 重命名为 AppEntityMapper - 将 AppsResponseRepository 重命名为 AppEntityRepository - 更新了相关服务和控制器中的类和方法名称 - 调整了部分代码结构以适应新的命名
This commit is contained in:
parent
b482197819
commit
b4d5584f9b
@ -1,14 +1,12 @@
|
||||
package com.zsc.edu.dify.modules.dify.controller;
|
||||
|
||||
import com.zsc.edu.dify.modules.dify.service.DifyServerService;
|
||||
import com.zsc.edu.dify.modules.dify.repo.AppEntityRepository;
|
||||
import io.github.guoshiqiufeng.dify.chat.DifyChat;
|
||||
import io.github.guoshiqiufeng.dify.chat.dto.request.ChatMessageSendRequest;
|
||||
import io.github.guoshiqiufeng.dify.chat.dto.request.MessageConversationsRequest;
|
||||
import io.github.guoshiqiufeng.dify.chat.dto.request.MessagesRequest;
|
||||
import io.github.guoshiqiufeng.dify.chat.dto.response.ChatMessageSendCompletionResponse;
|
||||
import io.github.guoshiqiufeng.dify.chat.dto.response.MessageConversationsResponse;
|
||||
import io.github.guoshiqiufeng.dify.core.pojo.DifyPageResult;
|
||||
import io.github.guoshiqiufeng.dify.core.pojo.response.MessagesResponseVO;
|
||||
import jakarta.annotation.Resource;
|
||||
import org.springframework.http.MediaType;
|
||||
import org.springframework.web.bind.annotation.*;
|
||||
@ -25,6 +23,8 @@ public class V1ChatController {
|
||||
|
||||
@Resource
|
||||
private DifyChat difyChat;
|
||||
@Resource
|
||||
private AppEntityRepository appEntityRepository;
|
||||
|
||||
/**
|
||||
* 发送消息(流式)
|
||||
@ -33,8 +33,9 @@ public class V1ChatController {
|
||||
* 用户 id可以改为从上下文(token)获取,
|
||||
* apikey 建议在数据库进行存储,前端调用时传智能体 id,从数据库查询
|
||||
*/
|
||||
@PostMapping(value = "/completions", produces = MediaType.TEXT_EVENT_STREAM_VALUE)
|
||||
public Flux<ChatMessageSendCompletionResponse> sendChatMessageStream(@RequestBody ChatMessageSendRequest sendRequest) {
|
||||
@PostMapping(value = "/completions/{appId}", produces = MediaType.TEXT_EVENT_STREAM_VALUE)
|
||||
public Flux<ChatMessageSendCompletionResponse> sendChatMessageStream(@RequestBody ChatMessageSendRequest sendRequest,@PathVariable String appId) {
|
||||
sendRequest.setApiKey(appEntityRepository.selectApiKey(appId));
|
||||
return difyChat.sendChatMessageStream(sendRequest);
|
||||
}
|
||||
|
||||
@ -44,7 +45,7 @@ public class V1ChatController {
|
||||
* @param request 请求参数
|
||||
* @return 会话列表
|
||||
*/
|
||||
@GetMapping("/conversations")
|
||||
@PostMapping("/conversations")
|
||||
public DifyPageResult<MessageConversationsResponse> conversations(@RequestBody MessageConversationsRequest request) {
|
||||
request.setApiKey("app-mM2UGTE5QVPLCwGvwifnV0g7");
|
||||
return difyChat.conversations(request);
|
||||
@ -56,23 +57,11 @@ public class V1ChatController {
|
||||
* @param taskId 任务id
|
||||
* @param userId 用户id
|
||||
*/
|
||||
@GetMapping("/stopMessagesStream")
|
||||
@PatchMapping("/stopMessagesStream")
|
||||
public void stopMessagesStream( String taskId, String userId) {
|
||||
difyChat.stopMessagesStream("app-mM2UGTE5QVPLCwGvwifnV0g7", taskId, userId);
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取消息列表
|
||||
*
|
||||
* @param request 请求参数
|
||||
* @return 消息列表
|
||||
*/
|
||||
@GetMapping("/messages")
|
||||
public DifyPageResult<MessagesResponseVO> messages(@RequestBody MessagesRequest request) {
|
||||
request.setApiKey("app-mM2UGTE5QVPLCwGvwifnV0g7");
|
||||
return difyChat.messages(request);
|
||||
}
|
||||
|
||||
/**
|
||||
* 删除会话
|
||||
*
|
||||
|
@ -19,8 +19,9 @@ public class V1DatasetController {
|
||||
* @param request
|
||||
* @return
|
||||
*/
|
||||
@GetMapping("/page")
|
||||
@PostMapping("/page")
|
||||
public DifyPageResult<DatasetResponse> page(@RequestBody DatasetPageRequest request){
|
||||
request.setApiKey("dataset-kN5WTJ8jR877YfN1A34JceVg");
|
||||
return difyDataset.page(request);
|
||||
}
|
||||
|
||||
@ -30,8 +31,8 @@ public class V1DatasetController {
|
||||
* @param request
|
||||
* @return
|
||||
*/
|
||||
@GetMapping("/createDocumentByFile")
|
||||
public DocumentCreateResponse createDocumentByFile(@RequestBody DocumentCreateByFileRequest request){
|
||||
@PostMapping("/createDocumentByFile")
|
||||
public DocumentCreateResponse createDocumentByFile(DocumentCreateByFileRequest request){
|
||||
return difyDataset.createDocumentByFile(request);
|
||||
}
|
||||
|
||||
@ -43,6 +44,7 @@ public class V1DatasetController {
|
||||
*/
|
||||
@GetMapping("/pageDocument")
|
||||
public DifyPageResult<DocumentInfo> pageDocument(@RequestBody DatasetPageDocumentRequest request){
|
||||
request.setApiKey("dataset-kN5WTJ8jR877YfN1A34JceVg");
|
||||
return difyDataset.pageDocument(request);
|
||||
}
|
||||
|
||||
@ -55,7 +57,7 @@ public class V1DatasetController {
|
||||
*/
|
||||
@PostMapping("/uploadFileInfo")
|
||||
public UploadFileInfoResponse uploadFileInfo(String datasetId, String documentId){
|
||||
return difyDataset.uploadFileInfo(datasetId, documentId,"app-mM2UGTE5QVPLCwGvwifnV0g7");
|
||||
return difyDataset.uploadFileInfo(datasetId, documentId,"dataset-kN5WTJ8jR877YfN1A34JceVg");
|
||||
}
|
||||
|
||||
/**
|
||||
|
@ -1,5 +1,7 @@
|
||||
package com.zsc.edu.dify.modules.dify.controller;
|
||||
|
||||
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
||||
import com.zsc.edu.dify.modules.dify.entity.AppEntity;
|
||||
import com.zsc.edu.dify.modules.dify.service.DifyServerService;
|
||||
import io.github.guoshiqiufeng.dify.server.DifyServer;
|
||||
import io.github.guoshiqiufeng.dify.server.dto.response.ApiKeyResponseVO;
|
||||
@ -78,4 +80,13 @@ public class V1ServerController {
|
||||
public List<DatasetApiKeyResponseVO> initDatasetApiKey() {
|
||||
return difyServer.initDatasetApiKey();
|
||||
}
|
||||
|
||||
/**
|
||||
*
|
||||
*/
|
||||
@PostMapping("/app/{id}")
|
||||
public boolean enabledApp(@PathVariable("id") String id) {
|
||||
return true;
|
||||
}
|
||||
|
||||
}
|
||||
|
@ -24,6 +24,7 @@ public class V1WorkflowController {
|
||||
*/
|
||||
@PostMapping("/run")
|
||||
public WorkflowRunResponse runWorkflow(@RequestBody WorkflowRunRequest request) {
|
||||
request.setApiKey("app-ZpkQM6yy767oUTfNSBYq65nB");
|
||||
return difyWorkflow.runWorkflow(request);
|
||||
}
|
||||
|
||||
@ -35,6 +36,7 @@ public class V1WorkflowController {
|
||||
*/
|
||||
@PostMapping("/run/stream")
|
||||
public Flux<WorkflowRunStreamResponse> runWorkflowStream(@RequestBody WorkflowRunRequest request) {
|
||||
request.setApiKey("app-ZpkQM6yy767oUTfNSBYq65nB");
|
||||
return difyWorkflow.runWorkflowStream(request);
|
||||
}
|
||||
|
||||
@ -58,7 +60,7 @@ public class V1WorkflowController {
|
||||
*/
|
||||
@GetMapping("/info")
|
||||
public WorkflowInfoResponse info(String workflowRunId) {
|
||||
return difyWorkflow.info(workflowRunId, "app-mM2UGTE5QVPLCwGvwifnV0g7");
|
||||
return difyWorkflow.info(workflowRunId, "app-ZpkQM6yy767oUTfNSBYq65nB");
|
||||
}
|
||||
|
||||
/**
|
||||
@ -67,8 +69,9 @@ public class V1WorkflowController {
|
||||
* @param request
|
||||
* @return
|
||||
*/
|
||||
@GetMapping("/logs")
|
||||
@PostMapping("/logs")
|
||||
public DifyPageResult<WorkflowLogs> logs(@RequestBody WorkflowLogsRequest request) {
|
||||
request.setApiKey("app-ZpkQM6yy767oUTfNSBYq65nB");
|
||||
return difyWorkflow.logs(request);
|
||||
}
|
||||
}
|
||||
|
@ -3,6 +3,7 @@ package com.zsc.edu.dify.modules.dify.entity;
|
||||
import com.baomidou.mybatisplus.annotation.TableField;
|
||||
import com.baomidou.mybatisplus.annotation.TableName;
|
||||
import com.zsc.edu.dify.framework.json.JsonbTypeHandler;
|
||||
import com.zsc.edu.dify.modules.system.vo.MenuVo;
|
||||
import io.github.guoshiqiufeng.dify.server.dto.response.AppsResponseVO;
|
||||
import lombok.*;
|
||||
|
||||
@ -11,11 +12,15 @@ import java.util.Map;
|
||||
|
||||
/**
|
||||
* @author zhuang
|
||||
*
|
||||
*
|
||||
*/
|
||||
@EqualsAndHashCode(callSuper = true)
|
||||
@Getter
|
||||
@Setter
|
||||
@TableName("apps_response")
|
||||
public class AppsResponse extends AppsResponseVO {
|
||||
@Data
|
||||
@TableName("apps_entity")
|
||||
public class AppEntity extends AppsResponseVO {
|
||||
|
||||
@TableField(typeHandler = JsonbTypeHandler.class)
|
||||
private Map<String, Object> modelConfig;
|
||||
@ -26,4 +31,19 @@ public class AppsResponse extends AppsResponseVO {
|
||||
@TableField(typeHandler = JsonbTypeHandler.class)
|
||||
private List<String> tags;
|
||||
|
||||
@TableField(typeHandler = JsonbTypeHandler.class)
|
||||
private Map<String, Object> site;
|
||||
|
||||
@TableField(typeHandler = JsonbTypeHandler.class)
|
||||
private List<String> deletedTools;
|
||||
|
||||
private boolean enabled;
|
||||
|
||||
private String apiKey;
|
||||
/**
|
||||
* 子菜单
|
||||
*/
|
||||
@TableField(exist = false)
|
||||
private List<AppEntity> children = null;
|
||||
|
||||
}
|
@ -1,11 +1,11 @@
|
||||
package com.zsc.edu.dify.modules.dify.mapper;
|
||||
|
||||
import com.zsc.edu.dify.common.mapstruct.BaseMapper;
|
||||
import com.zsc.edu.dify.modules.dify.entity.AppsResponse;
|
||||
import com.zsc.edu.dify.modules.dify.entity.AppEntity;
|
||||
import io.github.guoshiqiufeng.dify.server.dto.response.AppsResponseVO;
|
||||
import org.mapstruct.Mapper;
|
||||
import org.mapstruct.ReportingPolicy;
|
||||
|
||||
@Mapper(componentModel = "spring", unmappedTargetPolicy = ReportingPolicy.IGNORE)
|
||||
public interface AppsResponseMapper extends BaseMapper<AppsResponseVO, AppsResponse> {
|
||||
public interface AppEntityMapper extends BaseMapper<AppsResponseVO, AppEntity> {
|
||||
}
|
@ -0,0 +1,11 @@
|
||||
package com.zsc.edu.dify.modules.dify.repo;
|
||||
|
||||
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
|
||||
import com.zsc.edu.dify.modules.dify.entity.AppEntity;
|
||||
import org.apache.ibatis.annotations.Select;
|
||||
|
||||
public interface AppEntityRepository extends BaseMapper<AppEntity> {
|
||||
|
||||
@Select("select api_key from apps_entity where id = #{appId}")
|
||||
String selectApiKey(String appId);
|
||||
}
|
@ -1,7 +0,0 @@
|
||||
package com.zsc.edu.dify.modules.dify.repo;
|
||||
|
||||
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
|
||||
import com.zsc.edu.dify.modules.dify.entity.AppsResponse;
|
||||
|
||||
public interface AppsResponseRepository extends BaseMapper<AppsResponse> {
|
||||
}
|
@ -1,11 +1,12 @@
|
||||
package com.zsc.edu.dify.modules.dify.service;
|
||||
|
||||
import com.baomidou.mybatisplus.extension.service.IService;
|
||||
import com.zsc.edu.dify.modules.dify.entity.AppsResponse;
|
||||
import com.zsc.edu.dify.modules.dify.entity.AppEntity;
|
||||
import io.github.guoshiqiufeng.dify.server.dto.response.AppsResponseVO;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
public interface DifyServerService extends IService<AppsResponse> {
|
||||
public interface DifyServerService extends IService<AppEntity> {
|
||||
List<AppsResponseVO> getApps(String mode, String name);
|
||||
|
||||
}
|
||||
|
@ -3,26 +3,29 @@ package com.zsc.edu.dify.modules.dify.service.Impl;
|
||||
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
||||
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
||||
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
||||
import com.zsc.edu.dify.modules.dify.entity.AppsResponse;
|
||||
import com.zsc.edu.dify.modules.dify.mapper.AppsResponseMapper;
|
||||
import com.zsc.edu.dify.modules.dify.repo.AppsResponseRepository;
|
||||
import com.zsc.edu.dify.common.util.TreeUtil;
|
||||
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 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.stereotype.Service;
|
||||
|
||||
import java.util.List;
|
||||
import java.util.*;
|
||||
|
||||
/**
|
||||
* @author zhuang
|
||||
*/
|
||||
@AllArgsConstructor
|
||||
@Service
|
||||
public class DifyServerServiceImpl extends ServiceImpl<AppsResponseRepository, AppsResponse> implements DifyServerService {
|
||||
public class DifyServerServiceImpl extends ServiceImpl<AppEntityRepository, AppEntity> implements DifyServerService {
|
||||
@Resource
|
||||
private AppsResponseMapper appsResponseMapper;
|
||||
private AppEntityMapper appEntityMapper;
|
||||
@Resource
|
||||
private DifyServer difyServer;
|
||||
|
||||
@ -33,14 +36,25 @@ public class DifyServerServiceImpl extends ServiceImpl<AppsResponseRepository, A
|
||||
|
||||
public List<AppsResponseVO> addApps(List<AppsResponseVO> appsResponseList) {
|
||||
for(AppsResponseVO appsResponse : appsResponseList){
|
||||
boolean isHave = baseMapper.exists(new QueryWrapper<AppsResponse>().eq("id", appsResponse.getId()));
|
||||
boolean isHave = baseMapper.exists(new QueryWrapper<AppEntity>().eq("id", appsResponse.getId()));
|
||||
if(!isHave){
|
||||
baseMapper.insert(appsResponseMapper.toEntity(appsResponse));
|
||||
AppEntity appEntity = appEntityMapper.toEntity(appsResponse);
|
||||
baseMapper.insert(appEntity);
|
||||
List<ApiKeyResponseVO> apiKeyList =difyServer.getAppApiKey(appsResponse.getId());
|
||||
if (apiKeyList != null) {
|
||||
difyServer.initAppApiKey(appsResponse.getId());
|
||||
Optional<ApiKeyResponseVO> apiKeyResponseVO = apiKeyList.stream()
|
||||
.filter(apiKey -> apiKey.getToken() != null)
|
||||
.findFirst();
|
||||
apiKeyResponseVO.ifPresent(apiKey -> appEntity.setApiKey(apiKey.getToken()));
|
||||
}
|
||||
baseMapper.updateById(appEntity);
|
||||
}else{
|
||||
baseMapper.updateById(appsResponseMapper.toEntity(appsResponse));
|
||||
baseMapper.updateById(appEntityMapper.toEntity(appsResponse));
|
||||
}
|
||||
|
||||
}
|
||||
return appsResponseList;
|
||||
}
|
||||
|
||||
}
|
||||
|
@ -63,5 +63,5 @@ dify:
|
||||
server:
|
||||
email: 2913129173@qq.com # 请替换为实际的 Dify 服务邮箱,若不需要调用 server相关接口可不填
|
||||
password: tian14384, # 请替换为实际的 Dify 服务密码,若不需要调用 server相关接口可不填
|
||||
# dataset:
|
||||
# api-key: dataset-kN5WTJ8jR877YfN1A34JceVg # 请替换为实际的知识库api-key, 若不需要调用知识库可不填
|
||||
dataset:
|
||||
api-key: dataset-kN5WTJ8jR877YfN1A34JceVg # 请替换为实际的知识库api-key, 若不需要调用知识库可不填
|
Loading…
Reference in New Issue
Block a user