Vlytz commited on
Commit
ba5dc71
verified
1 Parent(s): 6249031

Upload main.py

Browse files
Files changed (1) hide show
  1. api/main.py +69 -0
api/main.py ADDED
@@ -0,0 +1,69 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ # En: api/main.py
2
+ from fastapi import FastAPI
3
+ from pydantic import BaseModel
4
+ import time
5
+
6
+ # --- Modelos de datos (Pydantic) para validar la entrada ---
7
+ # Esto es una buena pr谩ctica que los jueces notar谩n
8
+ class PredictPayload(BaseModel):
9
+ edad: int
10
+ sexo: str
11
+ asistencia: float
12
+ notas: float
13
+
14
+ class CoachPayload(BaseModel):
15
+ consulta: str
16
+ riesgo: float
17
+
18
+ # Inicializa tu app de FastAPI
19
+ app = FastAPI(title="API del Tutor Virtual - MOCK")
20
+
21
+ @app.get("/")
22
+ def read_root():
23
+ return {"status": "API de MOCK funcionando"}
24
+
25
+ # --- Endpoint /predict (FALSO) ---
26
+ @app.post("/predict")
27
+ async def mock_predict(payload: PredictPayload):
28
+ """
29
+ Simula el endpoint /predict.
30
+ Devuelve un score y drivers falsos basados en las notas.
31
+ """
32
+ # Simula un peque帽o delay, como si un modelo estuviera corriendo
33
+ time.sleep(0.5)
34
+
35
+ score_falso = 0.0
36
+ if payload.notas < 4.0:
37
+ score_falso = 0.85
38
+ elif payload.notas < 5.5:
39
+ score_falso = 0.45
40
+ else:
41
+ score_falso = 0.15
42
+
43
+ return {
44
+ "score": score_falso,
45
+ "drivers": ["Promedio de Notas", "Asistencia (falso)"]
46
+ }
47
+
48
+ # --- Endpoint /coach (FALSO) ---
49
+ @app.post("/coach")
50
+ async def mock_coach(payload: CoachPayload):
51
+ """
52
+ Simula el endpoint /coach (RAG).
53
+ Devuelve un plan de acci贸n falso.
54
+ """
55
+ time.sleep(1) # Simula el delay de un LLM
56
+
57
+ respuesta_falsa = f"""
58
+ Basado en tu riesgo de **{payload.riesgo*100:.0f}%** y tu consulta ('{payload.consulta}'), este es un plan de acci贸n de prueba:
59
+
60
+ 1. **Enfocarse en las notas**: Te sugiero revisar las gu铆as de estudio.
61
+ 2. **Organizaci贸n**: Es clave mantener un calendario.
62
+
63
+ Recuerda que esto es solo una simulaci贸n del sistema RAG.
64
+ """
65
+
66
+ return {
67
+ "plan": respuesta_falsa,
68
+ "citas": ["kb/guia_estudio_mock.md", "kb/gestion_tiempo_mock.md"]
69
+ }