| 12345678910111213141516171819202122232425262728293031323334353637383940 |
- package es.uv.saic.service;
- import es.uv.saic.extractor.ExtractionRequest;
- import es.uv.saic.extractor.docling.DoclingTableExtractor;
- import es.uv.saic.extractor.HtmlToCsvExtractor;
- import es.uv.saic.llm.LocalLlmProxy;
- import lombok.RequiredArgsConstructor;
- import org.apache.commons.lang3.StringUtils;
- import org.springframework.stereotype.Service;
- import java.nio.charset.StandardCharsets;
- @Service
- @RequiredArgsConstructor
- public class EnhancementService {
- private final HtmlToCsvExtractor htmlToCsvExtractor;
- private final DoclingTableExtractor doclingTableExtractor;
- private final LocalLlmProxy localLlmProxy;
- public String calculateScoreAndProduceCommentsWithSingleCall(ExtractionRequest extractionRequest) {
- String asCsv = extractCsv(extractionRequest);
- return localLlmProxy.calculateScoreAndProduceComments(asCsv);
- }
- private String extractCsv(ExtractionRequest request) {
- String html = request.hasFile() ? new String(request.fileBytes(), StandardCharsets.UTF_8) : request.rawHtml();
- if (StringUtils.isEmpty(html)) {
- throw new RuntimeException("No HTML found!");
- }
- ExtractionRequest htmlRequest = ExtractionRequest.fromHtml(html);
- if (doclingTableExtractor.supports(request)) {
- return doclingTableExtractor.extractTablesToCsv(htmlRequest);
- }
- return htmlToCsvExtractor.extractTablesToCsv(htmlRequest);
- }
- }
|