Kaynağa Gözat

Normalize html input

atsachlaris 1 hafta önce
ebeveyn
işleme
45fc072f45

+ 7 - 0
pom.xml

@@ -71,6 +71,13 @@
             <version>1.18.32</version>
             <scope>provided</scope>
         </dependency>
+
+        <dependency>
+            <groupId>org.jsoup</groupId>
+            <artifactId>jsoup</artifactId>
+            <version>1.22.1</version>
+            <scope>compile</scope>
+        </dependency>
     </dependencies>
 
     <build>

Dosya farkı çok büyük olduğundan ihmal edildi
+ 4 - 0
requests/service.http


+ 30 - 1
src/main/java/es/uv/saic/service/EnhancementService.java

@@ -1,5 +1,12 @@
 package es.uv.saic.service;
 
+import com.fasterxml.jackson.core.JsonProcessingException;
+import com.fasterxml.jackson.databind.ObjectMapper;
+import lombok.SneakyThrows;
+import org.apache.commons.lang3.StringUtils;
+import org.jsoup.Jsoup;
+import org.jsoup.nodes.Document;
+import org.jsoup.nodes.Element;
 import org.springframework.ai.chat.client.ChatClient;
 import org.springframework.stereotype.Service;
 
@@ -7,15 +14,37 @@ import org.springframework.stereotype.Service;
 public class EnhancementService {
 
     private final ChatClient chatClient;
+    private final ObjectMapper objectMapper = new ObjectMapper();
 
     public EnhancementService(ChatClient.Builder chatClientBuilder) {
         this.chatClient = chatClientBuilder.build();
     }
 
+    @SneakyThrows
     public String ask(String message) {
         return chatClient.prompt()
-                .user(message)
+                .user(normalizeMessage(message))
                 .call()
                 .content();
     }
+
+    private String normalizeMessage(String message) throws JsonProcessingException {
+        String cleanHtml = removeHtmlAttributes(message);
+
+        return objectMapper.writeValueAsString(cleanHtml);
+    }
+
+    public String removeHtmlAttributes(String html) {
+        if (StringUtils.isEmpty(html)) {
+            return "";
+        }
+
+        Document doc = Jsoup.parse(html);
+
+        for (Element el : doc.getAllElements()) {
+            el.clearAttributes();
+        }
+
+        return doc.body().html();
+    }
 }

+ 5 - 3
src/main/java/es/uv/saic/web/EnhancementController.java

@@ -3,8 +3,9 @@ package es.uv.saic.web;
 import es.uv.saic.service.EnhancementService;
 import lombok.RequiredArgsConstructor;
 import org.springframework.web.bind.annotation.GetMapping;
+import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.RequestBody;
 import org.springframework.web.bind.annotation.RequestMapping;
-import org.springframework.web.bind.annotation.RequestParam;
 import org.springframework.web.bind.annotation.RestController;
 
 @RestController
@@ -19,8 +20,9 @@ public class EnhancementController {
         return "Hello World";
     }
 
-    @GetMapping("chat")
-    public String chat(@RequestParam String message) {
+    @PostMapping("chat")
+    public String chat(@RequestBody String message) {
         return enhancementService.ask(message);
     }
+
 }

Bu fark içinde çok fazla dosya değişikliği olduğu için bazı dosyalar gösterilmiyor