Prototipo para la hackathon regional Cali Colombia 5.0 enfocado en el reto:
Zonas WiFi Inteligentes: Agentes de IA para optimizar la conectividad publica
La aplicacion se construye por pasos y evita suposiciones rigidas sobre la estructura del dataset oficial. Primero inspecciona la base real, luego permite mapear columnas y finalmente activa agentes y capas de decision alineadas con el reto oficial.
El Paso 1 permite:
- Subir un archivo CSV, TXT o Excel.
- Guardar una copia del archivo original en
data/raw/. - Mostrar vista previa, columnas, tipos de datos y nulos.
El Paso 2 agrega:
- Perfil estructural avanzado del dataset.
- Deteccion heuristica de columnas candidatas.
- Guardado del perfil del dataset en
data/processed/. - Integracion opcional con Gemini para analizar solo el perfil estructural resumido.
Importante:
- El proyecto usa Gemini por medio de la libreria oficial
google-genai. - La variable requerida es
GEMINI_API_KEY. - El modelo por defecto es
gemini-2.5-flash. - Gemini no recibe la base completa, solo un resumen del perfil estructural.
El Paso 3 alinea la app con los tres agentes del reto oficial:
-
Agente Operativo
- Deteccion de anomalias basicas por reglas simples.
- Generacion preliminar de ordenes de trabajo.
-
Agente Conversacional Tecnico
- Preguntas en lenguaje natural sobre el rendimiento tecnico.
- Respuestas con Gemini usando solo contexto resumido, no toda la base.
-
Agente Estrategico Geoespacial
- Recomendaciones de mantenimiento e inversion.
- Uso de coordenadas reales si existen, o de territorio si no hay latitud/longitud.
El Paso 4 agrega:
- Clima contextual opcional con Open-Meteo.
- Contexto urbano opcional con OpenStreetMap Overpass.
- Variables de calendario locales.
- Indice de Impacto Ciudadano.
- Simulador de cuadrillas.
- Pasaporte de Decision.
- Cache local y bajo costo computacional.
El Paso 5 integra los modulos anteriores en una experiencia completa para operacion, trazabilidad y generacion de evidencia tecnica.
Es un flujo deterministico, sin LangChain, que ejecuta en orden:
- Data Readiness Score
- Variables de calendario
- Ordenes de trabajo
- Recomendaciones estrategicas base
- Contexto clima opcional
- Contexto OSM opcional
- Indice de impacto ciudadano
- Optimizacion de cuadrillas
- Pasaportes de decision
- Resumen ejecutivo base
- Event log de agentes
Todo esto se ejecuta desde Mission Control al presionar el boton:
Ejecutar ciclo autonomo
El ciclo autonomo produce:
- Data Readiness Score
- Contexto calendario
- Ordenes de trabajo enriquecidas
- Recomendaciones estrategicas
- Contexto clima y OSM cuando el usuario lo activa
- Impact scores por zona
- Plan de cuadrillas
- Pasaportes de decision
- Resumen ejecutivo base
- Log de eventos de agentes
Es un score de 0 a 100 que mide que tan util es el dataset para cumplir el reto oficial.
Evalua, entre otros:
- zona
- fecha / historico
- conexiones o uso
- trafico
- estado del punto de acceso
- latitud / longitud
- territorio
- calidad basica de datos
Ademas reporta:
- fortalezas
- brechas
- proximos pasos recomendados
- alineacion con los tres agentes oficiales
Es un conjunto de archivos descargables para seguimiento tecnico, operacion y toma de decisiones:
executive_report.mdwork_orders.csvimpact_scores.csvcrew_plan.jsondecision_passports.jsonevidence_pack.json
Se genera desde la pestana Paquete de Evidencia despues de ejecutar el ciclo autonomo.
La app incluye un modo demo con datos sinteticos opcionales para practicar antes del evento.
Importante:
- Los datos sinteticos se marcan con
tipo_dato = SINTETICO_NO_OFICIAL. - La interfaz muestra una alerta persistente:
DATOS SINTETICOS / NO OFICIALES
- No deben presentarse como datos reales del evento ni de la Alcaldia.
La aplicacion resume el estado funcional del sistema con vistas orientadas a cliente real:
- Mission Control para ejecucion integral
- Simulacion Operativa para reproducir el dataset por lotes
- Validacion Humana para revisar ordenes
- Auditoria Operativa para trazabilidad
- Paquete de Evidencia para exportar resultados legibles y descargables
-
Pertinencia Territorial 25%
- usa territorio, geografia y contexto urbano cuando el dataset lo permite
-
Innovacion 20%
- integra orquestador autonomo, pasaporte de decision y paquete de evidencia
-
Viabilidad Tecnica 20%
- usa reglas transparentes, cache, APIs opcionales y bajo costo computacional
-
Impacto 20%
- traduce datos operativos en ordenes, impacto y priorizacion de cuadrillas
-
Presentacion 15%
- deja una experiencia guiada con Mission Control, Simulacion Operativa y Paquete de Evidencia
El Paso 6 convierte el prototipo en una herramienta mas funcional para una Alcaldia, operador o cliente tecnico.
Agrega cuatro capacidades nuevas:
-
Simulacion Operativa
- reproduce el dataset cargado en lotes
- si hay fecha, ordena por fecha
- si no hay fecha, usa orden de filas y lo advierte de forma explicita
- recalcula ordenes, impacto, cuadrillas y pasaportes en cada paso
-
Validacion Humana
- crea una cola de revision de ordenes de trabajo
- permite aprobar, rechazar, marcar visita o cerrar una orden
- deja comentario del operador y marca de tiempo
-
Blindaje Tecnico
- ejecuta un quality gate operativo
- valida schema mapping, readiness operativo y outputs generados
- explica si el sistema esta listo, limitado o bloqueado
-
Auditoria Operativa
- registra trazabilidad de Mission Control, simulacion y revision humana
- permite descargar la bitacora como CSV
- deja evidencia de que el sistema no actua como una caja negra
Texto obligatorio:
Simulacion Operativa no significa monitoreo en tiempo real real. Es una reproduccion controlada del dataset cargado para demostrar como el sistema procesaria registros entrantes en un entorno operativo.
- Carga un CSV, TXT o Excel, o selecciona un archivo local desde
data/raw/. - Ve a Mapeo de columnas y selecciona zona, fecha y metricas disponibles.
- Abre Simulacion Operativa.
- Define:
- tamano de lote
- numero de cuadrillas
- Pulsa:
Preparar simulacionAvanzar un lote- o
Ejecutar simulacion completa
Si el dataset no tiene fecha:
- la app no se rompe
- muestra una advertencia clara
- la reproduccion usa orden de filas, no temporalidad real
La app ahora permite dos caminos:
- subir archivo manualmente con el uploader
- o seleccionar un archivo local ya guardado en
data/raw/o en la raiz del proyecto
Esto evita hardcodear nombres y facilita probar datasets adjuntos antes del evento.
Ademas del paquete anterior, ahora pueden generarse:
replay_timeline.csvhuman_review_log.csvquality_gate_report.jsonoperational_audit_log.csvoperational_audit_summary.json
- La simulacion operativa no es streaming real.
- No se llaman APIs externas automaticamente.
- Si no hay fecha, no se inventa temporalidad.
- Si no hay coordenadas, el sistema sigue funcionando con limitaciones explicitas.
- Gemini no calcula scores ni prioridades; solo explica resultados.
- Los datos sinteticos siguen marcados como no oficiales.
El Paso 7 limpia la interfaz para que la aplicacion se sienta mas cercana a un producto real para Alcaldia, operador o cliente tecnico.
Cambios principales:
- Se retiro la pestana Modo Jurado.
- El Paquete de Evidencia ahora muestra vistas legibles con metricas, tablas limpias, resumen ejecutivo y expanders tecnicos.
- El JSON ya no aparece como vista principal; queda como descarga o dentro de vistas avanzadas.
- Los Pasaportes de Decision se muestran como fichas operativas legibles.
- Las ordenes, scores, validaciones y auditoria se presentan en tablas limpias y metricas de seguimiento.
- Ejecuta Mission Control o Simulacion Operativa.
- Ve a Paquete de Evidencia.
- Pulsa
Generar paquete de evidencia. - La app guardara en
data/outputs/:readable_evidence_report.mdevidence_summary.csv- y el resto de archivos operativos ya existentes
Desde Paquete de Evidencia puedes descargar:
- reportes markdown legibles
- tablas CSV de ordenes, impacto, timeline y revision humana
- JSON operativos para trazabilidad tecnica
- resumen tabular
evidence_summary.csv
Estas vistas estan pensadas para tomadores de decision, equipo tecnico y seguimiento operativo, no para mostrar estructuras crudas.
El Paso 8 agrega una nueva vista principal llamada Vista Ejecutiva 360 con un diseño mas cercano a un centro de comando GovTech.
Incluye:
- KPIs principales en tarjetas premium
- resumen ejecutivo automatico
- graficos interactivos tipo Power BI
- mapa geografico sin depender de token de Mapbox
- hallazgos, alertas y proximas acciones
- visualizaciones mejoradas en Impacto Ciudadano, Simulacion Operativa y Agente Estrategico
- Carga datos desde uploader, archivo local o demo sintetica.
- Ve a Mapeo de Columnas y completa el mapeo operativo.
- Ejecuta Mission Control o Simulacion Operativa.
- Abre Vista Ejecutiva 360.
- KPIs de registros, zonas, ordenes, readiness y confidence
- donut de clasificacion
- top zonas por impacto
- dispersion de demanda vs severidad tecnica
- radar de componentes del score
- timeline de simulacion cuando existe
- distribucion de ordenes o validacion humana
- treemap de recomendaciones
- heatmap territorial cuando existe territorio
- mapa geografico de prioridad cuando hay coordenadas
- Sin coordenadas no se activa el mapa geografico.
- Sin fecha no se activa el heatmap temporal ni el timeline real.
- Sin resultados de ciclo o simulacion no se muestra el dashboard completo.
- La vista es ejecutiva, pero no altera calculos ni reemplaza la validacion tecnica.
El Paso 8.5 reorganiza la navegacion para seguir el flujo real de uso del sistema:
- Carga e Inspeccion
- Mapeo de Columnas
- Mission Control
- Simulacion Operativa
- Vista Ejecutiva 360
- Paquete de Evidencia
- detecta resultados recientes de Mission Control y Simulacion Operativa desde
st.session_state - unifica ordenes, scores, pasaportes, cuadrillas, validacion humana y auditoria
- muestra un expander compacto de diagnostico de fuentes
- usa estados vacios compactos cuando aun no hay resultados
- permite generar analisis ejecutivo con Gemini solo bajo demanda
- Ejecuta Mission Control o Simulacion Operativa.
- Abre Vista Ejecutiva 360.
- Revisa el resumen deterministico.
- Pulsa Analizar hallazgos con Gemini si quieres una lectura ejecutiva enriquecida.
Gemini no calcula scores ni inventa resultados. Solo analiza y redacta a partir de resultados reales ya generados por el sistema.
- usa coordenadas reales del dataset si fueron mapeadas
- se centra automaticamente segun las coordenadas validas
- usa cartografia base de OpenStreetMap sin token de Mapbox
- si no hay internet, la cartografia puede no cargar; aun asi la app sigue funcionando
- si no hay latitud/longitud mapeadas, la app muestra un mensaje claro y no inventa ubicaciones
- se agrego un boton flotante � Menu para volver arriba
- las pestañas ahora permiten mejor scroll horizontal en pantallas pequenas
- se redujo padding y tamano de titulos en mobile
- las tarjetas y botones se adaptan mejor a anchos angostos
- la Vista Ejecutiva 360 depende del dataset activo y del mapeo actual
- si cambias de dataset sin volver a ejecutar Mission Control o Simulacion, la vista se mantendra vacia hasta tener resultados del nuevo archivo
- el analisis con Gemini es opcional y requiere
GEMINI_API_KEY
-
Open-Meteo
- se usa para enriquecer clima contextual por coordenada y fecha
- aporta lluvia, temperatura, humedad y viento como contexto secundario
-
OpenStreetMap Overpass
- se usa para contar equipamientos cercanos como colegios, hospitales, bibliotecas, parques y transporte
- aporta una medida de criticidad territorial aproximada
Todas las APIs externas:
- son opcionales
- usan cache local en
data/external_cache/ - no se disparan automaticamente al cargar la app
- no rompen la app si no hay internet
- tienen limite de hasta 25 consultas por defecto
cali-wifi-sentinel/
|-- app.py
|-- requirements.txt
|-- README.md
|-- .gitignore
|-- .env.example
|-- data/
| |-- raw/
| |-- processed/
| |-- external_cache/
| \-- outputs/
|-- src/
| |-- agent_orchestrator.py
| |-- calendar_context.py
| |-- config.py
| |-- data_loader.py
| |-- data_quality.py
| |-- dashboard_insights.py
| |-- dashboard_visuals.py
| |-- decision_passport.py
| |-- demo_data.py
| |-- evidence_pack.py
| |-- evidence_formatters.py
| |-- external_sources.py
| |-- gemini_client.py
| |-- human_in_the_loop.py
| |-- impact_scoring.py
| |-- live_replay.py
| |-- operational_audit.py
| |-- osm_context.py
| |-- profile_storage.py
| |-- readiness_score.py
| |-- resource_optimizer.py
| |-- schema_mapper.py
| |-- strategic_recommendations.py
| |-- technical_chat.py
| |-- ui_components.py
| |-- utils.py
| |-- validation_suite.py
| |-- weather_context.py
| \-- work_orders.py
|-- prompts/
|-- notebooks/
\-- .venv/
Windows
python -m venv .venv
.venv\Scripts\activateMac/Linux
python -m venv .venv
source .venv/bin/activatepip install -r requirements.txt- Crea un archivo llamado
.enven la raiz del proyecto. - Copia esta configuracion base:
GEMINI_API_KEY=tu_clave_aqui
GEMINI_MODEL=gemini-2.5-flash
APP_ENV=development- Guarda el archivo.
- Reinicia Streamlit si ya estaba corriendo.
El archivo .env no debe subirse a Git. Ya esta protegido por .gitignore.
streamlit run app.py- Carga un archivo
.csv,.txt,.xlsxo.xls, o usa el paquete oficial Zonas WiFi Inteligentes. - Revisa Carga e inspeccion de datos.
- Ve a Mapeo de columnas y selecciona manualmente fecha, zona, conexiones, trafico, estado, latitud, longitud y territorio segun existan en la base real.
- Revisa el Data Readiness Score.
- Ve a Mission Control y configura:
- numero de cuadrillas
- usar clima si/no
- usar OSM si/no
- maximo de puntos externos
- Pulsa Ejecutar ciclo autonomo.
- Revisa Vista Ejecutiva 360 para el resumen general.
- Revisa:
- Agente Operativo
- Indice de Impacto Ciudadano
- Simulador de Cuadrillas
- Pasaporte de Decision
- Agente Estrategico Geoespacial
- Simulacion Operativa
- Validacion Humana
- Blindaje Tecnico
- Auditoria Operativa
- Si tienes
GEMINI_API_KEY, usa Agente Conversacional Tecnico. - Genera el Paquete de Evidencia.
- Revisa Auditoria Operativa, Validacion Humana y el Paquete de Evidencia como cierre del flujo.
El sistema no afirma causalidad tecnica sin evidencia. El clima, los puntos de interes y el calendario se usan como variables contextuales para mejorar priorizacion, no como prueba definitiva de falla. Las recomendaciones son apoyo a la decision, no sustituyen la validacion tecnica en campo.
Los datos sinteticos quedan reservados para pruebas internas de desarrollo y no representan informacion oficial de la Alcaldia ni del evento.
La aplicacion ya esta alineada con el reto oficial, pero sigue siendo intencionalmente prudente:
- sin LangChain
- sin base de datos
- sin modelos complejos de prediccion
- sin inventar poblacion afectada
- sin inventar coordenadas
- sin afirmar fallas reales sin evidencia suficiente
- sin presentar datos sinteticos como oficiales
La meta actual es llegar al evento con una arquitectura ligera, explicable, demostrable y lista para adaptarse al dataset real en minutos.
Este ajuste corrige y amplÃa la experiencia ejecutiva del sistema sin cambiar los cálculos centrales. La app ahora incorpora un mapa Cali Pro más legible, un agente conversacional flotante orientado al uso de la plataforma, recomendaciones estratégicas estructuradas con Gemini y validación humana masiva.
- El mapa ejecutivo usa coordenadas reales del dataset, muestra etiquetas compactas con emoji e iniciales por zona y dibuja un lÃmite de Cali de referencia obtenido con Overpass o, si falla, un fallback aproximado.
- Open-Meteo y OpenStreetMap/Overpass quedan activos de forma útil y controlada. Se usan desde Mission Control o desde el botón manual de enriquecimiento contextual, nunca automáticamente al cargar la app.
- Las recomendaciones estratégicas pueden generarse con Gemini a partir de resultados reales ya calculados por el sistema. Si Gemini no está configurado, la app usa un fallback determinÃstico.
- Se agrega un agente conversacional flotante para responder preguntas solo sobre la plataforma, la base cargada y el análisis generado.
- Validación Humana ahora permite aplicar estados y comentarios de forma masiva a todas las órdenes o a una selección.
- El botón visible de datos sintéticos se retiró de la interfaz principal. Los datos sintéticos quedan solo para pruebas internas de desarrollo.
- Carga un dataset real.
- Mapea columnas.
- Ejecuta Mission Control o Simulación Operativa.
- Abre Vista Ejecutiva 360 para revisar KPIs, mapa y hallazgos.
- Si hay coordenadas, activa Open-Meteo y OpenStreetMap desde Mission Control o Agente Estratégico.
- Genera recomendaciones estratégicas para habilitar el treemap.
- Usa Validación Humana para revisión individual o masiva.
- Exporta evidencia operativa desde Paquete de Evidencia.
- Si hay latitud y longitud mapeadas, el mapa se centra automáticamente sobre los puntos válidos del dataset.
- Si no es posible calcular un centro con los datos, usa el centro aproximado de Cali como referencia visual.
- La cartografÃa base usa OpenStreetMap sin requerir token de Mapbox.
- Si no hay internet, la cartografÃa base puede no cargar, pero la app sigue funcionando y conserva caché cuando existe.
- Si no hay coordenadas, la plataforma muestra un mensaje claro y no inventa un mapa.
- Ambas fuentes usan caché en
data/external_cache/. - El lÃmite por defecto de puntos externos es 20 y puede ampliarse hasta 50 con advertencia.
- No se hacen llamadas masivas automáticas.
- Si falla internet, la app intenta reutilizar caché; si no existe, muestra advertencias amables y sigue operando.
- Las recomendaciones estratégicas con Gemini se generan solo a partir de resultados reales: readiness, quality gate, órdenes, impact scores, contexto OSM, contexto climático, pasaportes, cuadrillas, auditorÃa y limitaciones.
- No se envÃa toda la base a Gemini.
- Si Gemini devuelve salida imperfecta, la app intenta parsear JSON y, si no puede, cae a recomendaciones determinÃsticas.
- El treemap estratégico se alimenta con esas recomendaciones estructuradas.
El agente conversacional flotante solo responde preguntas sobre la plataforma, la base cargada y el análisis generado. No está diseñado para responder preguntas generales fuera del contexto operativo.
- El sistema no inventa coordenadas ni población afectada.
- El clima y el contexto urbano se usan como variables contextuales, no como prueba definitiva de causalidad técnica.
- Sin coordenadas no hay mapa ejecutivo ni enriquecimiento geoespacial fino.
- Sin Gemini, la app sigue funcionando con fallbacks determinÃsticos.
Este ajuste pule dos detalles clave de experiencia sin tocar los cálculos centrales:
- las etiquetas dentro de las burbujas del mapa quedaron centradas, negras y más legibles
- el agente conversacional dejó de aparecer como bloque embebido y ahora funciona como widget flotante real
- los labels de zonas se renderizan dentro de la burbuja con mejor centrado visual
- se usa alto contraste para priorizar lectura sobre cartografÃa
- el estilo se unifica entre Vista Ejecutiva 360, Agente Estratégico y demás mapas geográficos de prioridad
- el botón flotante de chat ahora usa un icono claro
� - al hacer clic se abre un panel compacto tipo widget
- el historial queda dentro del panel, no abajo de la página
- si Gemini no está configurado, el widget sigue funcionando con ayuda contextual básica
��sirve para volver arriba al inicio de la app�abre el agente de plataforma- ambos botones se mantienen separados en desktop y mobile
- el chat flotante reduce ancho y altura en pantallas angostas
- las pestañas mantienen scroll horizontal
- las tarjetas y botones conservan proporciones más compactas
El agente conversacional flotante solo responde preguntas sobre la plataforma, la base cargada y el análisis generado. No está diseñado para responder preguntas generales fuera del contexto operativo.
En este ajuste se corrigió la experiencia visual del agente de plataforma:
- el chat ahora aparece como un botón circular flotante
- al abrirse, muestra un panel pequeño tipo widget
- ya no se incrusta como barra inferior dentro del layout
- convive con el botón
��para volver arriba - mantiene adaptación mobile con ancho reducido y altura controlada
El botón de chat abre un panel contextual para preguntas sobre módulos, indicadores, órdenes, scores, pasaportes, validación humana, auditorÃa y limitaciones del análisis actual.
La app ahora soporta un modo especializado para el repositorio oficial Zonas-WiFi-Inteligentes. Este modo trata la fuente como un paquete multitabla Cisco Meraki, no como un CSV genérico.
En Carga e Inspección encontrarás la sección Cargar paquete oficial Zonas WiFi Inteligentes con dos opciones:
- Cargar desde carpeta local: apunta a
data/raw/Zonas-WiFi-Inteligentes/o a cualquier carpeta que contenga los CSV oficiales. - Cargar desde GitHub oficial: usa la URL del repositorio para descargar los archivos esperados.
Archivos esperados:
network_events_curated.csvclients_curated.csvaccess_points_curated.csvap_hourly_metrics_curated.csvdata_dictionary.csv
Si falta alguno, la app no se rompe: muestra advertencias y sigue operando con la mejor evidencia disponible.
Cuando se detecta el paquete oficial:
- se aplica un mapeo automático basado en el esquema canónico Meraki
- se habilita la construcción de un mart operativo por Access Point (AP)
- Mission Control y Simulación Operativa cambian a un flujo horario especializado
- las órdenes, pasaportes, scores y evidencia se interpretan por AP / zona Meraki
- network_events: eventos operativos por AP y cliente
- clients: estado, uso y tipo de dispositivo por cliente
- access_points: estado del AP, serial, IP local y
connectivity_history - hourly_metrics: conexiones, desconexiones, autenticaciones, clientes únicos y
disconnection_ratepor hora - data_dictionary: apoyo documental del paquete
Al construir el mart operativo se generan, entre otros:
Operational Risk ScoreAP Health Scorestatus_riskdisconnection_riskdemand_impactrecurrence_riskhigh_disconnection_hourszero_connection_hoursavg_disconnection_ratemax_disconnection_raterecommended_action
- Si existe
ap_hourly_metrics_curated.csv, la Simulación Operativa usatimestamp_hourcomo eje principal. - Las anomalías Meraki comparan cada AP contra su baseline histórico.
- Se detectan patrones como AP offline o dormant, conexiones muy bajas frente a su propio baseline,
disconnection_ratealta y horas sin conexiones en APs con actividad histórica.
En Paquete de Evidencia ahora se pueden exportar artefactos adicionales del flujo Meraki:
operational_mart.csvmeraki_work_orders.csvmeraki_anomalies.csvmeraki_decision_passports.json
- El paquete no trae coordenadas exactas del AP por defecto, por lo que el mapa no debe interpretarse como ubicación precisa de infraestructura.
connectivity_historyllega como texto exportado; sus códigos requieren validación técnica adicional con Cisco Meraki.- El dataset es curado, anonimizado y no representa monitoreo en vivo.
- Si se geocodifica por nombre de zona, esa georreferenciación debe tratarse como aproximada, no como ubicación exacta del AP.
- Operational Risk Score resume criticidad operativa por AP combinando estado, desconexiones, recurrencia y demanda.
- AP Health Score resume salud general; un valor bajo sugiere degradación o evidencia operativa insuficiente.
La plataforma ahora tiene una segunda cara orientada a usuarios finales y ciudadanÃa, además del backoffice operativo. Esta capa trabaja únicamente con datos agregados por AP, zona y hora; no expone client_id, hashes, MAC ni identificadores individuales.
Incluye:
Portal Ciudadano: consulta zonas recomendadas para conectarse, alertas agregadas y mejores franjas horarias observadas.Experiencia Ciudadana: calculaCitizen Experience Scorecon base en estabilidad, disponibilidad, capacidad percibida, actividad y confianza de datos.Buzón Ciudadano: recibe reportes anónimos con calificación, problema y comentario opcional. No debe incluir datos personales.Equidad Digital: calcula unDigital Equity Proxyresponsable para señalar señales relativas de mejora sin afirmar brechas reales ni usar población inexistente.Agente Ciudadano con Gemini: explica resultados agregados en lenguaje claro. Si Gemini no está configurado, usa fallback determinÃstico.
- No se exponen
client_id, hashes, MAC ni identificadores de clientes. - No se rastrean personas.
- No se infieren atributos personales.
- No se presenta geocodificación aproximada como ubicación exacta del AP.
- El
Citizen Experience Scorees una aproximación agregada; no representa la experiencia exacta de cada usuario. - El
Digital Equity Proxyno usa población real y no debe interpretarse como brecha confirmada. - El calendario público usa caché y solo se consulta cuando el usuario activa explÃcitamente el enriquecimiento.
- Sin métricas horarias suficientes, las recomendaciones de horario quedan limitadas.
La plataforma ahora se organiza por perfil de uso para reducir saturación visual y adaptar la experiencia al tipo de usuario:
- Portal Técnico / Operativo: concentra carga e inspección, Mission Control, simulación, vista ejecutiva, agente operativo, cuadrillas, validación, auditorÃa y evidencia.
- Portal Ciudadano / Impacto Social: concentra portal ciudadano, experiencia ciudadana, recomendador de zonas WiFi, buzón anónimo, equidad digital, retorno social de conectividad, agente ciudadano y vista pública de calidad.
La selección se realiza desde la barra lateral con Selecciona el tipo de usuario.
Este módulo cruza desempeño de la red WiFi con indicadores socioeconómicos agregados para priorizar mejoras donde la conectividad puede generar mayor impacto público.
- CSV / XLSX cargado manualmente
- archivo local dentro de
data/raw/ - URL pública si el usuario la provee
- conector configurable a Socrata / datos.gov.co
- DANE: IPM, NBI u otros indicadores oficiales agregados
- SISB�N agregado o anonimización territorial: porcentajes por grupo o muestras anonimizadas, nunca fichas individuales
- otros datos abiertos oficiales siempre que estén agregados por zona, comuna, barrio, corregimiento, manzana o municipio
Se calcula con una fórmula transparente:
social_roi_score = 0.30 * socioeconomic_vulnerability_score + 0.25 * digital_need_score + 0.20 * network_risk_score + 0.15 * citizen_potential_score + 0.10 * data_confidence_score
Donde:
socioeconomic_vulnerability_score: señal agregada construida desde IPM, NBI, desempleo, grupos SISB�N u otros indicadores disponiblesdigital_need_score: combina experiencia ciudadana, proxy de equidad digital y disponibilidadnetwork_risk_score: resume riesgo operativo observadocitizen_potential_score: combina uso, actividad y criticidad territorial cuando existadata_confidence_score: mide qué tan completa y consistente es la evidencia
- No se usan datos personales.
- No se procesan identificadores individuales de SISB�N.
- No se infiere pobreza de personas.
- No se estigmatizan barrios o corregimientos.
- El resultado se presenta como retorno social estimado y no como verdad causal o diagnóstico definitivo.
- Si faltan indicadores socioeconómicos agregados, el score se degrada y la app lo declara explÃcitamente.
- Si no hay match territorial suficiente entre red y dataset socioeconómico, se marca como limitación.
- Sin Gemini, la explicación de retorno social usa fallback determinÃstico.