Spaces:
Sleeping
Sleeping
Adzacam commited on
Commit ·
f454f4d
1
Parent(s): 907ac73
Fix FK constraint on NLP audit log
Browse files
app.py
CHANGED
|
@@ -844,48 +844,48 @@ def batch_analyze_nlp(
|
|
| 844 |
if record.asistencia < 70.0 or record.incumplimiento_tareas > 30.0:
|
| 845 |
alertas.append("RIESGO_DESERCION_ALTA")
|
| 846 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 847 |
if confianza_ia < 0.60:
|
| 848 |
log = LogAuditoriaNlp(
|
| 849 |
texto_original=nombre_resuelto,
|
| 850 |
prediccion_beto=nombre_resuelto,
|
| 851 |
confianza_ia=confianza_ia,
|
| 852 |
correccion_humana="PENDIENTE",
|
| 853 |
-
usuario_auditor=
|
| 854 |
)
|
| 855 |
db.add(log)
|
| 856 |
db.flush()
|
| 857 |
requiere_revision = True
|
| 858 |
else:
|
| 859 |
# Insert into Constellation Schema
|
| 860 |
-
id_tiempo_val = getattr(record, 'id_tiempo', 1)
|
| 861 |
-
id_docente_val = getattr(record, 'id_docente', 1)
|
| 862 |
-
id_modulo_val = getattr(record, 'id_modulo', 1)
|
| 863 |
-
id_documento_val = getattr(record, 'id_documento', 1)
|
| 864 |
-
id_usuario_val = getattr(record, 'id_usuario', 1)
|
| 865 |
-
|
| 866 |
-
# Ensure dimensions exist using in-memory cache to prevent lock contention
|
| 867 |
-
if id_docente_val not in existing_docentes:
|
| 868 |
-
db.add(DimDocente(id_docente=id_docente_val, nombre_completo="Docente Generico", area_especialidad="Generico"))
|
| 869 |
-
existing_docentes.add(id_docente_val)
|
| 870 |
-
|
| 871 |
-
if id_modulo_val not in existing_modulos:
|
| 872 |
-
db.add(DimModulo(id_modulo=id_modulo_val, nombre_modulo=getattr(record, 'modulo', "Modulo Generico") or "Modulo Generico", nombre_institucion=getattr(record, 'institucion', "GiraGroup") or "GiraGroup", programa=getattr(record, 'programa', "General") or "General"))
|
| 873 |
-
existing_modulos.add(id_modulo_val)
|
| 874 |
-
|
| 875 |
-
if id_tiempo_val not in existing_tiempos:
|
| 876 |
-
db.add(DimTiempo(id_tiempo=id_tiempo_val, gestion=2026, semestre=1, mes="Mayo"))
|
| 877 |
-
existing_tiempos.add(id_tiempo_val)
|
| 878 |
-
|
| 879 |
-
if id_documento_val not in existing_docs:
|
| 880 |
-
db.add(DimOrigenDocumental(id_documento=id_documento_val, tipo_documento="SHEET", nombre_archivo="carga_automatica"))
|
| 881 |
-
existing_docs.add(id_documento_val)
|
| 882 |
-
|
| 883 |
-
if id_usuario_val not in existing_users:
|
| 884 |
-
db.add(Users(id=id_usuario_val, username=f"sistema_{id_usuario_val}", hashed_password="$placeholder$", role="admin"))
|
| 885 |
-
existing_users.add(id_usuario_val)
|
| 886 |
-
|
| 887 |
-
db.flush()
|
| 888 |
-
|
| 889 |
if record.tipo_fuente == "FINANCE":
|
| 890 |
fact = FactSituacionFinanciera(
|
| 891 |
id_estudiante=estudiante.id_estudiante,
|
|
|
|
| 844 |
if record.asistencia < 70.0 or record.incumplimiento_tareas > 30.0:
|
| 845 |
alertas.append("RIESGO_DESERCION_ALTA")
|
| 846 |
|
| 847 |
+
# Ensure dimensions exist using in-memory cache to prevent lock contention
|
| 848 |
+
id_tiempo_val = getattr(record, 'id_tiempo', 1)
|
| 849 |
+
id_docente_val = getattr(record, 'id_docente', 1)
|
| 850 |
+
id_modulo_val = getattr(record, 'id_modulo', 1)
|
| 851 |
+
id_documento_val = getattr(record, 'id_documento', 1)
|
| 852 |
+
id_usuario_val = getattr(record, 'id_usuario', 1)
|
| 853 |
+
|
| 854 |
+
if id_docente_val not in existing_docentes:
|
| 855 |
+
db.add(DimDocente(id_docente=id_docente_val, nombre_completo="Docente Generico", area_especialidad="Generico"))
|
| 856 |
+
existing_docentes.add(id_docente_val)
|
| 857 |
+
|
| 858 |
+
if id_modulo_val not in existing_modulos:
|
| 859 |
+
db.add(DimModulo(id_modulo=id_modulo_val, nombre_modulo=getattr(record, 'modulo', "Modulo Generico") or "Modulo Generico", nombre_institucion=getattr(record, 'institucion', "GiraGroup") or "GiraGroup", programa=getattr(record, 'programa', "General") or "General"))
|
| 860 |
+
existing_modulos.add(id_modulo_val)
|
| 861 |
+
|
| 862 |
+
if id_tiempo_val not in existing_tiempos:
|
| 863 |
+
db.add(DimTiempo(id_tiempo=id_tiempo_val, gestion=2026, semestre=1, mes="Mayo"))
|
| 864 |
+
existing_tiempos.add(id_tiempo_val)
|
| 865 |
+
|
| 866 |
+
if id_documento_val not in existing_docs:
|
| 867 |
+
db.add(DimOrigenDocumental(id_documento=id_documento_val, tipo_documento="SHEET", nombre_archivo="carga_automatica"))
|
| 868 |
+
existing_docs.add(id_documento_val)
|
| 869 |
+
|
| 870 |
+
if id_usuario_val not in existing_users:
|
| 871 |
+
db.add(Users(id=id_usuario_val, username=f"sistema_{id_usuario_val}", hashed_password="$placeholder$", role="admin"))
|
| 872 |
+
existing_users.add(id_usuario_val)
|
| 873 |
+
|
| 874 |
+
db.flush()
|
| 875 |
+
|
| 876 |
if confianza_ia < 0.60:
|
| 877 |
log = LogAuditoriaNlp(
|
| 878 |
texto_original=nombre_resuelto,
|
| 879 |
prediccion_beto=nombre_resuelto,
|
| 880 |
confianza_ia=confianza_ia,
|
| 881 |
correccion_humana="PENDIENTE",
|
| 882 |
+
usuario_auditor=id_usuario_val
|
| 883 |
)
|
| 884 |
db.add(log)
|
| 885 |
db.flush()
|
| 886 |
requiere_revision = True
|
| 887 |
else:
|
| 888 |
# Insert into Constellation Schema
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 889 |
if record.tipo_fuente == "FINANCE":
|
| 890 |
fact = FactSituacionFinanciera(
|
| 891 |
id_estudiante=estudiante.id_estudiante,
|