Spaces:
Sleeping
Sleeping
Update generate_feedback_service.py
Browse files
src/expon/feedback/application/internal/generate_feedback_service.py
CHANGED
@@ -1,5 +1,7 @@
|
|
1 |
from datetime import datetime
|
2 |
from uuid import uuid4
|
|
|
|
|
3 |
from src.expon.feedback.domain.model.feedback import Feedback
|
4 |
from src.expon.feedback.infrastructure.services.text_generation_service import TextGenerationService
|
5 |
from src.expon.presentation.infrastructure.persistence.jpa.repositories.presentation_repository import PresentationRepository
|
@@ -12,7 +14,7 @@ class GenerateFeedbackService:
|
|
12 |
self.presentation_repo = presentation_repo
|
13 |
self.text_gen_service = TextGenerationService()
|
14 |
|
15 |
-
def generate_feedback(self, presentation_id: str) ->
|
16 |
# 1. Buscar presentaci贸n
|
17 |
presentation: PresentationORM = self.presentation_repo.get_by_id(presentation_id)
|
18 |
|
@@ -23,7 +25,7 @@ class GenerateFeedbackService:
|
|
23 |
emotion = presentation.dominant_emotion
|
24 |
transcription = presentation.transcript or ""
|
25 |
confidence = presentation.confidence or 0.0
|
26 |
-
anxiety = 0.3
|
27 |
|
28 |
# 2. Generar contenido din谩mico con IA
|
29 |
general, language, confidence_fb, anxiety_fb, suggestions = self.text_gen_service.generate_structured_feedback(
|
@@ -46,5 +48,17 @@ class GenerateFeedbackService:
|
|
46 |
)
|
47 |
|
48 |
self.feedback_repo.save(feedback)
|
49 |
-
return feedback
|
50 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
from datetime import datetime
|
2 |
from uuid import uuid4
|
3 |
+
from typing import Any
|
4 |
+
|
5 |
from src.expon.feedback.domain.model.feedback import Feedback
|
6 |
from src.expon.feedback.infrastructure.services.text_generation_service import TextGenerationService
|
7 |
from src.expon.presentation.infrastructure.persistence.jpa.repositories.presentation_repository import PresentationRepository
|
|
|
14 |
self.presentation_repo = presentation_repo
|
15 |
self.text_gen_service = TextGenerationService()
|
16 |
|
17 |
+
def generate_feedback(self, presentation_id: str) -> dict[str, Any]:
|
18 |
# 1. Buscar presentaci贸n
|
19 |
presentation: PresentationORM = self.presentation_repo.get_by_id(presentation_id)
|
20 |
|
|
|
25 |
emotion = presentation.dominant_emotion
|
26 |
transcription = presentation.transcript or ""
|
27 |
confidence = presentation.confidence or 0.0
|
28 |
+
anxiety = 0.3 # Puedes cambiarlo si luego deseas calcularlo
|
29 |
|
30 |
# 2. Generar contenido din谩mico con IA
|
31 |
general, language, confidence_fb, anxiety_fb, suggestions = self.text_gen_service.generate_structured_feedback(
|
|
|
48 |
)
|
49 |
|
50 |
self.feedback_repo.save(feedback)
|
|
|
51 |
|
52 |
+
return {
|
53 |
+
"id": feedback.id,
|
54 |
+
"user_id": feedback.user_id,
|
55 |
+
"presentation_id": feedback.presentation_id,
|
56 |
+
"general_feedback": feedback.general_feedback,
|
57 |
+
"language_feedback": feedback.language_feedback,
|
58 |
+
"confidence_feedback": feedback.confidence_feedback,
|
59 |
+
"anxiety_feedback": feedback.anxiety_feedback,
|
60 |
+
"suggestions": feedback.suggestions,
|
61 |
+
"created_at": feedback.created_at,
|
62 |
+
"dominant_emotion": emotion,
|
63 |
+
"confidence": round(confidence, 2)
|
64 |
+
}
|