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"]
    }