feat(dify): 集成 Dify 服务并更新相关配置

- 在 application.yml 中添加 Dify 服务相关配置
- 删除 PageDto 类
- 更新 pom.xml,升级 mybatis-plus 版本并添加 dify-spring-boot-starter 依赖
- 调整 SpringSecurityConfig 中的请求匹配规则
This commit is contained in:
vertoryao 2025-04-22 17:18:45 +08:00
parent 12c53c6a62
commit ae29fbcba6
2 changed files with 79 additions and 0 deletions

View File

@ -0,0 +1,44 @@
package com.zsc.edu.dify.modules.dify.controller;
import com.zsc.edu.dify.modules.dify.service.DifyChatService;
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.response.ChatMessageSendCompletionResponse;
import io.github.guoshiqiufeng.dify.chat.dto.response.MessageConversationsResponse;
import io.github.guoshiqiufeng.dify.core.pojo.DifyPageResult;
import jakarta.annotation.Resource;
import org.springframework.http.MediaType;
import org.springframework.web.bind.annotation.*;
import reactor.core.publisher.Flux;
/**
* @author yanghq
* @version 1.0
* @since 2025/3/25 10:48
*/
@RestController
@RequestMapping("/v1/chat")
public class V1ChatController {
@Resource
private DifyChatService difyChatService;
/**
* 发送消息流式
*
* @param sendRequest 消息参数 可以自定义参数调用 difyChat 实例时重新组装即可
* 用户 id可以改为从上下文token获取
* apikey 建议在数据库进行存储前端调用时传智能体 id从数据库查询
*/
@PostMapping(value = "/completions", produces = MediaType.TEXT_EVENT_STREAM_VALUE)
public Flux<ChatMessageSendCompletionResponse> sendChatMessageStream(@RequestBody ChatMessageSendRequest sendRequest) {
return difyChatService.sendChatMessageStream(sendRequest);
}
@GetMapping("/conversations")
public DifyPageResult<MessageConversationsResponse> conversations(@RequestBody MessageConversationsRequest request) {
return difyChatService.conversations(request);
}
}

View File

@ -0,0 +1,35 @@
package com.zsc.edu.dify.modules.dify.service;
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.response.ChatMessageSendCompletionResponse;
import io.github.guoshiqiufeng.dify.chat.dto.response.MessageConversationsResponse;
import io.github.guoshiqiufeng.dify.core.pojo.DifyPageResult;
import jakarta.annotation.Resource;
import lombok.extern.slf4j.Slf4j;
import org.springframework.stereotype.Service;
import reactor.core.publisher.Flux;
/**
* @author yanghq
* @version 1.0
* @since 2025/3/25 10:48
*/
@Slf4j
@Service
public class DifyChatService {
@Resource
private DifyChat difyChat;
public Flux<ChatMessageSendCompletionResponse> sendChatMessageStream(ChatMessageSendRequest sendRequest) {
// 可以进行自定义逻辑处理参数转换权限校验等
return difyChat.sendChatMessageStream(sendRequest);
}
public DifyPageResult<MessageConversationsResponse> conversations(MessageConversationsRequest request) {
return difyChat.conversations(request);
}
}