Browse Source

refactoring

pull/14147/head
dashevchenko 12 months ago
parent
commit
d14466459d
  1. 17
      application/src/main/java/org/thingsboard/server/service/ai/AiChatModelServiceImpl.java
  2. 7
      common/data/src/main/java/org/thingsboard/server/common/data/StringUtils.java

17
application/src/main/java/org/thingsboard/server/service/ai/AiChatModelServiceImpl.java

@ -32,6 +32,8 @@ import org.thingsboard.server.common.data.ai.model.chat.Langchain4jChatModelConf
import java.util.List; import java.util.List;
import java.util.stream.Collectors; import java.util.stream.Collectors;
import static org.thingsboard.server.common.data.StringUtils.escapeControlChars;
@Service @Service
@RequiredArgsConstructor @RequiredArgsConstructor
class AiChatModelServiceImpl implements AiChatModelService { class AiChatModelServiceImpl implements AiChatModelService {
@ -50,7 +52,7 @@ class AiChatModelServiceImpl implements AiChatModelService {
private ChatRequest prepareGithubChatRequest(ChatRequest chatRequest) { private ChatRequest prepareGithubChatRequest(ChatRequest chatRequest) {
List<ChatMessage> messages = chatRequest.messages().stream() List<ChatMessage> messages = chatRequest.messages().stream()
.map(this::escapeIfUserMessage) .map(this::prepareUserMessage)
.collect(Collectors.toList()); .collect(Collectors.toList());
return ChatRequest.builder() return ChatRequest.builder()
@ -59,10 +61,10 @@ class AiChatModelServiceImpl implements AiChatModelService {
.build(); .build();
} }
private ChatMessage escapeIfUserMessage(ChatMessage message) { private ChatMessage prepareUserMessage(ChatMessage message) {
if (message instanceof UserMessage userMessage) { if (message instanceof UserMessage userMessage) {
List<Content> newContents = userMessage.contents().stream() List<Content> newContents = userMessage.contents().stream()
.map(this::escapeContent) .map(this::prepareContent)
.collect(Collectors.toList()); .collect(Collectors.toList());
return UserMessage.from(newContents); return UserMessage.from(newContents);
@ -70,18 +72,11 @@ class AiChatModelServiceImpl implements AiChatModelService {
return message; return message;
} }
private Content escapeContent(Content content) { private Content prepareContent(Content content) {
if (content instanceof TextContent txt) { if (content instanceof TextContent txt) {
return new TextContent(escapeControlChars(txt.text())); return new TextContent(escapeControlChars(txt.text()));
} }
return content; return content;
} }
private String escapeControlChars(String text) {
return text
.replace("\n", "\\n")
.replace("\r", "\\r")
.replace("\t", "\\t");
}
} }

7
common/data/src/main/java/org/thingsboard/server/common/data/StringUtils.java

@ -275,4 +275,11 @@ public class StringUtils {
return result; return result;
} }
public static String escapeControlChars(String text) {
return text
.replace("\n", "\\n")
.replace("\r", "\\r")
.replace("\t", "\\t");
}
} }

Loading…
Cancel
Save