Ver Fonte

Pass csv directly

atsachlaris há 21 horas atrás
pai
commit
7185e63118

+ 11 - 11
requests/files/E.OE4.2-with-critical-docling.csv

@@ -1,12 +1,12 @@
 "ENCUESTAS DE SATISFACCI�""N","TITULACI�""N",MEDIA CENTRO,MEDIA UV
 **ESTUDIANTES FINAL**,,,
-4- Los contenidos impartidos en el máster han sido realmente diferentes a los estudiados durante los estudios de grado,5,4.12,3.68
+4- Los contenidos impartidos en el máster han sido realmente diferentes a los estudiados durante los estudios de grado,2.0,4.12,3.68
 "5- La secuencia de las materias es adecuada, ya que evita vac�os y duplicidades",2.1,4.15,3.10
 6- La información que contienen los programas o gu�as docentes de las asignaturas ha sido amplia y detallada,4.20,4.21,3.67
-7- Los programas o gu�as docentes han estado disponibles antes de la matr�cula,4.80,4.60,3.96
+7- Los programas o gu�as docentes han estado disponibles antes de la matr�cula,2.1,4.60,3.96
 11- Se ha respetado la planificación y las actividades programadas,1.4,4.31,2.9
 12- La coordinación entre el profesorado ha sido adecuada,3.80,4.17,3.32
-"21- En general, las metodolog�as docentes utilizadas han favorecido la implicación de los y las estudiantes con la materia",2.9,4.00,3.42
+"21- En general, las metodolog�as docentes utilizadas han favorecido la implicación de los y las estudiantes con la materia",4,4.00,3.42
 22- Las metodolog�as de enseñanza-aprendizaje utilizadas han fomentado el análisis y la s�ntesis,4.20,3.95,3.45
 23- Las prácticas de los módulos se han adecuado a la teor�a impartida,2,4.12,3.58
 24- Los materiales recomendados se han adecuado a las exigencias de la docencia,1.2,3,3.74
@@ -16,24 +16,24 @@
 28- Los procedimientos y criterios de evaluación desarrollados se han ajustado a los objetivos propuestos,2.8,4.25,3.77
 29- El nivel de exigencias en la evaluación se ha adecuado a la docencia impartida,4,4.23,3.67
 **PROFESORADO**,,,
-"4- La estructura y la secuencia de las materias es adecuada, ya que evita vac�os y duplicidades",4.71,4.57,4.40
+"4- La estructura y la secuencia de las materias es adecuada, ya que evita vac�os y duplicidades",2.6,4.57,4.40
 6- Se considera que los contenidos que se imparten en el máster son realimente diferentes a los impartidos en el grado,2.9,4.71,4.57
 10- Se ha respetado la planificación inicial y las actividades programadas,2.5,4.86,4.71
 11- Satisfacción de los diferentes mecanismos de coordinación-comunicación entre:,11- Satisfacción de los diferentes mecanismos de coordinación-comunicación entre:,11- Satisfacción de los diferentes mecanismos de coordinación-comunicación entre:,11- Satisfacción de los diferentes mecanismos de coordinación-comunicación entre:
-a) Los diferentes profesores/as del máster,4.42,4.54,4.35
-b) La teor�a y la práctica de las materias,4.64,4.75,4.52
-c) Las diferentes materias del máster,4.42,4.50,4.30
+a) Los diferentes profesores/as del máster,1.2,4.54,4.35
+b) La teor�a y la práctica de las materias,3,4.75,4.52
+c) Las diferentes materias del máster,3.1,4.50,4.30
 d) La coordinación/comunicación interdepartamental,4.50,4.44,4.26
 15- El nivel del alumnado es suficiente para seguir los contenidos de la materia,4.21,4.30,4.15
-16- El contenido del programa previsto (nivel y extensión) de las asignaturas y el periodo real para su desarrollo es adecuado,4.57,4.63,4.46
-"17- Los procedimientos de evaluación más generalizados en el máster valoran adecuadamente el nivel de competencias (conocimientos, destrezas, actitudes, etc.) que han adquirido los y las estudiantes",4.64,4.71,4.50
-**GRADUADOS/AS**,,,
+16- El contenido del programa previsto (nivel y extensión) de las asignaturas y el periodo real para su desarrollo es adecuado,2.3,4.63,4.46
+"17- Los procedimientos de evaluación más generalizados en el máster valoran adecuadamente el nivel de competencias (conocimientos, destrezas, actitudes, etc.) que han adquirido los y las estudiantes",2.55,4.71,4.50
+**GRADUADOS/AS**,2.7,,
 11- El contenido de las gu�as docentes se ha desarrollado como se hab�a planificado,,,
 12- Las metodolog�as utilizadas en los diferentes módulos se han adecuado a las competencias de la titulación y al perfil de los y las estudiantes,,,
 "13- En general, considero que el proceso de evaluación se adecua a las competencias impartidas en la titulación",,,
 "**EVALUACI�""N DOCENTE**",,,
 1- Se han cumplido los aspectos fundamentales planteados en la gu�a docente,4.59,4.42,4.50
-"2- El material de estudio (libros, materiales multimedia…) han facilitado el aprendizaje",4.29,4.13,4.26
+"2- El material de estudio (libros, materiales multimedia…) han facilitado el aprendizaje",2.7,4.13,4.26
 3- Explica con claridad los conceptos que incluyen cada lección,4.33,4.15,4.32
 "4- La estructura de las actividades es clara, lógica y organizada, y se subrayan los aspectos más relevantes",4.39,4.20,4.30
 5- Fomenta la participación en las diferentes actividades,4.37,4.24,4.39

+ 13 - 0
requests/service.http

@@ -43,6 +43,19 @@ Content-Type: text/html
 < ./files/E.OE4.2-with-critical.html
 --WebAppBoundary--
 
+### Direct CSV pass-through
+POST http://127.0.0.1:8080/enhancements/single-step/csv-file?provider=groq
+Content-Type: multipart/form-data; boundary=WebAppBoundary
+
+--WebAppBoundary
+Content-Disposition: form-data; name="file"; filename="E.OE4.2-with-critical-docling.csv"
+Content-Type: text/csv
+
+< ./files/E.OE4.2-with-critical-docling.csv
+--WebAppBoundary--
+
+###
+
 ### HTML body
 POST http://127.0.0.1:8080/enhancements/single-step
 Content-Type: application/json

+ 7 - 0
src/main/java/es/uv/saic/service/EnhancementService.java

@@ -28,6 +28,13 @@ public class EnhancementService {
 
     public String calculateScoreAndProduceCommentsWithSingleCall(ExtractionRequest extractionRequest, String provider, String model) {
         String asCsv = extractCsv(extractionRequest);
+        return calculateScoreAndProduceCommentsFromCsv(asCsv, provider, model);
+    }
+
+    public String calculateScoreAndProduceCommentsFromCsv(String asCsv, String provider, String model) {
+        if (StringUtils.isBlank(asCsv)) {
+            throw new IllegalArgumentException("CSV content is empty");
+        }
         String selectedProvider = StringUtils.defaultIfBlank(provider, PROVIDER_LOCAL);
 
         return switch (selectedProvider.toLowerCase()) {

+ 3 - 3
src/main/java/es/uv/saic/service/SystemPrompt.java

@@ -18,7 +18,7 @@ public class SystemPrompt {
     
         LEVEL CLASSIFICATION TABLE (MANDATORY)
     
-        | Condition                         | Level     |
+        | Condition                        | Level      |
         |----------------------------------|------------|
         | Score >= 3.0                     | OK         |
         | Score >= 2.5 AND Score < 3.0     | Warning    |
@@ -33,8 +33,8 @@ public class SystemPrompt {
     
         STRICT RULES:
         - Scores of 3.0, 4.0 MUST be OK
-        - Scores of 2.5, 2.99 MUST be Warning
-        - Scores of 2.1, 2.49 MUST be Critical
+        - Scores of 2.5, 2.7, 2.8, 2.9, 2.99 MUST be Warning
+        - Scores of 2.1, 2.3, 2.49 MUST be Critical
     
         OUTPUT FORMAT:
     

+ 20 - 0
src/main/java/es/uv/saic/web/EnhancementController.java

@@ -13,6 +13,8 @@ import org.springframework.web.bind.annotation.RestController;
 import org.springframework.web.multipart.MultipartFile;
 import org.springframework.web.server.ResponseStatusException;
 
+import java.nio.charset.StandardCharsets;
+
 import static org.springframework.http.HttpStatus.BAD_REQUEST;
 
 @RestController
@@ -54,4 +56,22 @@ public class EnhancementController {
         }
     }
 
+    @PostMapping(value = "single-step/csv-file", consumes = MediaType.MULTIPART_FORM_DATA_VALUE)
+    public String singleStepAnalysisCsvFile(@RequestPart("file") MultipartFile file,
+                                            @RequestParam(value = "provider", required = false) String provider,
+                                            @RequestParam(value = "model", required = false) String model) {
+        if (file.isEmpty()) {
+            throw new ResponseStatusException(BAD_REQUEST, "Uploaded file is empty");
+        }
+
+        try {
+            String csvContent = new String(file.getBytes(), StandardCharsets.UTF_8);
+            return enhancementService.calculateScoreAndProduceCommentsFromCsv(csvContent, provider, model);
+        } catch (IllegalArgumentException e) {
+            throw new ResponseStatusException(BAD_REQUEST, e.getMessage(), e);
+        } catch (Exception e) {
+            throw new ResponseStatusException(BAD_REQUEST, "Unable to read uploaded CSV file", e);
+        }
+    }
+
 }