|
@@ -99,7 +99,7 @@ public class ChatMessageServiceImpl implements ChatMessageService {
|
|
|
String nickname = String.valueOf(SecurityFrameworkUtils.getLoginUser().getInfo().get("nickname"));
|
|
|
|
|
|
// ====== 1. 如果未传 conversationId,则不发送(Dify 会自动生成) ======
|
|
|
- String conversationId = sendReqVO.getDifyConversationId();
|
|
|
+ String conversationId = sendReqVO.getConversationId();
|
|
|
|
|
|
// ====== 2. 构造 Dify 请求体 ======
|
|
|
JSONObject requestBody = new JSONObject();
|
|
@@ -160,8 +160,8 @@ public class ChatMessageServiceImpl implements ChatMessageService {
|
|
|
returnedConversationId = json.getString("conversation_id");
|
|
|
// 保存聊天记录
|
|
|
ChatMessageDO message = new ChatMessageDO();
|
|
|
- message.setDifyMessageId(messageId);
|
|
|
- message.setDifyConversationId(returnedConversationId);
|
|
|
+ message.setMessageId(messageId);
|
|
|
+ message.setConversationId(returnedConversationId);
|
|
|
message.setUserId(nickname);
|
|
|
message.setCreateTime(LocalDateTime.now());
|
|
|
// 若之前没有本地会话,创建并记录 UUID
|
|
@@ -170,7 +170,7 @@ public class ChatMessageServiceImpl implements ChatMessageService {
|
|
|
session.setName("新会话 - " + LocalDateTime.now().format(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss")));
|
|
|
session.setUserId(nickname);
|
|
|
session.setAppId(appDO.getId());
|
|
|
- session.setDifyConversationId(returnedConversationId); // 假设你有这个字段
|
|
|
+ session.setConversationId(returnedConversationId); // 假设你有这个字段
|
|
|
chatSessionMapper.insert(session);
|
|
|
message.setSessionId(session.getId());
|
|
|
asyncUpdateSessionName(returnedConversationId, session.getId(),appDO.getAppKey());
|
|
@@ -256,7 +256,7 @@ public class ChatMessageServiceImpl implements ChatMessageService {
|
|
|
|
|
|
@Override
|
|
|
public ChatMessageRespVO sendChatMessageBlock(ChatMessageSendReqVO sendReqVO) throws IOException {
|
|
|
- String conversationId = sendReqVO.getDifyConversationId();
|
|
|
+ String conversationId = sendReqVO.getConversationId();
|
|
|
// 1. 从登录上下文取用户昵称
|
|
|
String nickname = String.valueOf(SecurityFrameworkUtils.getLoginUser().getInfo().get("nickname"));
|
|
|
ChatMessageDO msg = new ChatMessageDO();
|
|
@@ -264,7 +264,7 @@ public class ChatMessageServiceImpl implements ChatMessageService {
|
|
|
msg.setContent(sendReqVO.getQuery());
|
|
|
msg.setRole("user");
|
|
|
if (StringUtils.isNotBlank(conversationId)) {
|
|
|
- msg.setDifyConversationId(conversationId);
|
|
|
+ msg.setConversationId(conversationId);
|
|
|
}
|
|
|
chatMessageMapper.insert(msg);
|
|
|
ChatAppDO appDO = getAppKey(sendReqVO);
|
|
@@ -280,8 +280,8 @@ public class ChatMessageServiceImpl implements ChatMessageService {
|
|
|
body.put("response_mode", "blocking");
|
|
|
body.put("auto_generate_name", true);
|
|
|
body.put("enable_retrieval", true);
|
|
|
-// ChatKnowledgeDatasetDO datasetDO = chatKnowledgeDatasetMapper.selectById(sendReqVO.getDifyDatasetId());
|
|
|
-// body.put("datasets", Collections.singletonList(datasetDO.getDifyDatasetId()));
|
|
|
+// ChatKnowledgeDatasetDO datasetDO = chatKnowledgeDatasetMapper.selectById(sendReqVO.getDatasetId());
|
|
|
+// body.put("datasets", Collections.singletonList(datasetDO.getDatasetId()));
|
|
|
log.info("Dify 请求体: {}", body.toJSONString());
|
|
|
// 3. 发起 HTTP POST
|
|
|
URL url = new URL(difyBaseUrl + "/v1/chat-messages");
|
|
@@ -322,27 +322,27 @@ public class ChatMessageServiceImpl implements ChatMessageService {
|
|
|
String did = json.getString("conversation_id");
|
|
|
|
|
|
// 6.1 本地如果尚未存 Dify 的 conversation_id,则更新
|
|
|
- ChatSessionDO session = chatSessionMapper.selectOne(new LambdaQueryWrapperX<ChatSessionDO>().eq(ChatSessionDO::getDifyConversationId, did));
|
|
|
+ ChatSessionDO session = chatSessionMapper.selectOne(new LambdaQueryWrapperX<ChatSessionDO>().eq(ChatSessionDO::getConversationId, did));
|
|
|
if (session == null) {
|
|
|
session = new ChatSessionDO();
|
|
|
session.setName(msg.getContent());
|
|
|
session.setUserId(nickname);
|
|
|
- session.setDifyConversationId(did);
|
|
|
+ session.setConversationId(did);
|
|
|
session.setAppId(appDO.getId());
|
|
|
chatSessionMapper.insert(session);
|
|
|
// ======== 补充:从 Dify 获取会话名称(同步 + 异步)=======
|
|
|
// asyncUpdateSessionName(did, session.getId());
|
|
|
|
|
|
}
|
|
|
- chatMessageMapper.updateById(msg.setDifyConversationId(did).setSessionId(session.getId()));
|
|
|
+ chatMessageMapper.updateById(msg.setConversationId(did).setSessionId(session.getId()));
|
|
|
JSONObject metadata = json.getJSONObject("metadata");
|
|
|
String metadataStr = metadata.toJSONString();
|
|
|
// 6.2 保存消息
|
|
|
ChatMessageDO m = new ChatMessageDO();
|
|
|
- m.setDifyConversationId(did);
|
|
|
+ m.setConversationId(did);
|
|
|
m.setSessionId(session.getId());
|
|
|
m.setUserId(nickname);
|
|
|
- m.setDifyMessageId(json.getString("message_id"));
|
|
|
+ m.setMessageId(json.getString("message_id"));
|
|
|
m.setContent(json.getString("answer"));
|
|
|
m.setRole("assistant");
|
|
|
m.setMetadataJson(metadataStr);
|
|
@@ -351,9 +351,9 @@ public class ChatMessageServiceImpl implements ChatMessageService {
|
|
|
// 7. 组装 VO 返回
|
|
|
ChatMessageRespVO vo = new ChatMessageRespVO();
|
|
|
vo.setSessionId(session.getId());
|
|
|
- vo.setDifyConversationId(did);
|
|
|
+ vo.setConversationId(did);
|
|
|
vo.setUserId(nickname);
|
|
|
- vo.setDifyMessageId(m.getDifyMessageId());
|
|
|
+ vo.setMessageId(m.getMessageId());
|
|
|
vo.setContent(m.getContent());
|
|
|
vo.setRole(m.getRole());
|
|
|
vo.setMessageTime(m.getCreateTime());
|
|
@@ -372,10 +372,10 @@ public class ChatMessageServiceImpl implements ChatMessageService {
|
|
|
.eqIfPresent(ChatMessageDO::getRole, reqVO.getRole())
|
|
|
.eqIfPresent(ChatMessageDO::getContent, reqVO.getContent())
|
|
|
.betweenIfPresent(ChatMessageDO::getMessageTime, reqVO.getMessageTime())
|
|
|
- .eqIfPresent(ChatMessageDO::getDifyMessageId, reqVO.getDifyMessageId())
|
|
|
+ .eqIfPresent(ChatMessageDO::getMessageId, reqVO.getMessageId())
|
|
|
.eqIfPresent(ChatMessageDO::getDifyTaskId, reqVO.getDifyTaskId())
|
|
|
.eqIfPresent(ChatMessageDO::getDifyEvent, reqVO.getDifyEvent())
|
|
|
- .eqIfPresent(ChatMessageDO::getDifyConversationId, reqVO.getDifyConversationId())
|
|
|
+ .eqIfPresent(ChatMessageDO::getConversationId, reqVO.getConversationId())
|
|
|
.eqIfPresent(ChatMessageDO::getCreatedTimestamp, reqVO.getCreatedTimestamp())
|
|
|
.eqIfPresent(ChatMessageDO::getAgentThought, reqVO.getAgentThought())
|
|
|
.eqIfPresent(ChatMessageDO::getAgentObservation, reqVO.getAgentObservation())
|