|
@@ -118,12 +118,12 @@ public class AiChatMessageServiceImpl implements AiChatMessageService {
|
|
|
// 3. 插入 user 发送消息
|
|
|
AiChatMessageDO userMessage = createChatMessage(conversation.getId(), null, model,
|
|
|
userId, conversation.getRoleId(), MessageType.USER, sendReqVO.getContent(), sendReqVO.getUseContext(),
|
|
|
- null, sendReqVO.getContentType());
|
|
|
+ null, sendReqVO.getContentType(), sendReqVO.getStateId());
|
|
|
|
|
|
// 3.1 插入 assistant 接收消息
|
|
|
AiChatMessageDO assistantMessage = createChatMessage(conversation.getId(), userMessage.getId(), model,
|
|
|
userId, conversation.getRoleId(), MessageType.ASSISTANT, "", sendReqVO.getUseContext(),
|
|
|
- knowledgeSegments, sendReqVO.getContentType());
|
|
|
+ knowledgeSegments, sendReqVO.getContentType(), sendReqVO.getStateId());
|
|
|
|
|
|
// 3.2 创建 chat 需要的 Prompt
|
|
|
Prompt prompt = buildPrompt(conversation, historyMessages, knowledgeSegments, model, sendReqVO);
|
|
@@ -167,12 +167,12 @@ public class AiChatMessageServiceImpl implements AiChatMessageService {
|
|
|
// 3. 插入 user 发送消息
|
|
|
AiChatMessageDO userMessage = createChatMessage(conversation.getId(), null, model,
|
|
|
userId, conversation.getRoleId(), MessageType.USER, sendReqVO.getContent(), sendReqVO.getUseContext(),
|
|
|
- null, sendReqVO.getContentType());
|
|
|
+ null, sendReqVO.getContentType(), sendReqVO.getStateId());
|
|
|
|
|
|
// 4.1 插入 assistant 接收消息
|
|
|
AiChatMessageDO assistantMessage = createChatMessage(conversation.getId(), userMessage.getId(), model,
|
|
|
userId, conversation.getRoleId(), MessageType.ASSISTANT, "", sendReqVO.getUseContext(),
|
|
|
- knowledgeSegments, sendReqVO.getContentType());
|
|
|
+ knowledgeSegments, sendReqVO.getContentType(), sendReqVO.getStateId());
|
|
|
|
|
|
// 4.2 构建 Prompt,并进行调用
|
|
|
Prompt prompt = buildPrompt(conversation, historyMessages, knowledgeSegments, model, sendReqVO);
|
|
@@ -229,7 +229,7 @@ public class AiChatMessageServiceImpl implements AiChatMessageService {
|
|
|
// 3. 插入 user 发送消息
|
|
|
AiChatMessageDO userMessage = createChatMessage(conversation.getId(), null, model,
|
|
|
userId, conversation.getRoleId(), MessageType.USER, sendReqVO.getContent(), sendReqVO.getUseContext(),
|
|
|
- null, sendReqVO.getContentType());
|
|
|
+ null, sendReqVO.getContentType(), sendReqVO.getStateId());
|
|
|
String apiKey = DictFrameworkUtils.parseDictDataValue("ai_key", "多轮对话");
|
|
|
JSONObject requestBody = new JSONObject();
|
|
|
if (StrUtil.isNotBlank(conversation.getDifyConversationId())) {
|
|
@@ -291,7 +291,7 @@ public class AiChatMessageServiceImpl implements AiChatMessageService {
|
|
|
StringBuffer difyId = new StringBuffer();
|
|
|
AiChatMessageDO assistantMessage = createChatMessage(conversation.getId(), userMessage.getId(), model,
|
|
|
userId, conversation.getRoleId(), MessageType.ASSISTANT, "", sendReqVO.getUseContext(),
|
|
|
- knowledgeSegments, sendReqVO.getContentType());
|
|
|
+ knowledgeSegments, sendReqVO.getContentType(), sendReqVO.getStateId());
|
|
|
return flux.map(chunk -> {
|
|
|
String newContent = chunk.getContent();
|
|
|
contentBuffer.append(newContent);
|
|
@@ -495,13 +495,14 @@ public class AiChatMessageServiceImpl implements AiChatMessageService {
|
|
|
AiModelDO model, Long userId, Long roleId,
|
|
|
MessageType messageType, String content, Boolean useContext,
|
|
|
List<AiKnowledgeSegmentSearchRespBO> knowledgeSegments,
|
|
|
- Integer contentType) {
|
|
|
+ Integer contentType, Long stateId) {
|
|
|
AiChatMessageDO message = new AiChatMessageDO().setConversationId(conversationId).setReplyId(replyId)
|
|
|
.setModel(model.getModel()).setModelId(model.getId()).setUserId(userId).setRoleId(roleId)
|
|
|
.setType(messageType.getValue()).setContent(content).setUseContext(useContext)
|
|
|
.setSegmentIds(convertList(knowledgeSegments, AiKnowledgeSegmentSearchRespBO::getId));
|
|
|
message.setCreateTime(LocalDateTime.now());
|
|
|
message.setContentType(contentType);
|
|
|
+ message.setStateId(stateId);
|
|
|
chatMessageMapper.insert(message);
|
|
|
return message;
|
|
|
}
|