EnhancementService.java 1.4 KB

12345678910111213141516171819202122232425262728293031323334353637383940
  1. package es.uv.saic.service;
  2. import es.uv.saic.extractor.ExtractionRequest;
  3. import es.uv.saic.extractor.docling.DoclingTableExtractor;
  4. import es.uv.saic.extractor.HtmlToCsvExtractor;
  5. import es.uv.saic.llm.LocalLlmProxy;
  6. import lombok.RequiredArgsConstructor;
  7. import org.apache.commons.lang3.StringUtils;
  8. import org.springframework.stereotype.Service;
  9. import java.nio.charset.StandardCharsets;
  10. @Service
  11. @RequiredArgsConstructor
  12. public class EnhancementService {
  13. private final HtmlToCsvExtractor htmlToCsvExtractor;
  14. private final DoclingTableExtractor doclingTableExtractor;
  15. private final LocalLlmProxy localLlmProxy;
  16. public String calculateScoreAndProduceCommentsWithSingleCall(ExtractionRequest extractionRequest) {
  17. String asCsv = extractCsv(extractionRequest);
  18. return localLlmProxy.calculateScoreAndProduceComments(asCsv);
  19. }
  20. private String extractCsv(ExtractionRequest request) {
  21. String html = request.hasFile() ? new String(request.fileBytes(), StandardCharsets.UTF_8) : request.rawHtml();
  22. if (StringUtils.isEmpty(html)) {
  23. throw new RuntimeException("No HTML found!");
  24. }
  25. ExtractionRequest htmlRequest = ExtractionRequest.fromHtml(html);
  26. if (doclingTableExtractor.supports(request)) {
  27. return doclingTableExtractor.extractTablesToCsv(htmlRequest);
  28. }
  29. return htmlToCsvExtractor.extractTablesToCsv(htmlRequest);
  30. }
  31. }