feat(dify): 集成 Dify 服务并更新相关配置
- 在 application.yml 中添加 Dify 服务相关配置 - 删除 PageDto 类 - 更新 pom.xml,升级 mybatis-plus 版本并添加 dify-spring-boot-starter 依赖 - 调整 SpringSecurityConfig 中的请求匹配规则
This commit is contained in:
parent
12c53c6a62
commit
ae29fbcba6
@ -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);
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
@ -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);
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
Loading…
Reference in New Issue
Block a user