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