Skip to content

Commit 24d023c

Browse files
juandmg020407echeguategiulianpeter
committed
docs(repo): añade docs/HRIA.md y enlaza HRIA/SECURITY/CHANGELOG desde el README
El reglamento del hackathon (apartado 9.2 entregable 4) obliga a adjuntar una autoevaluación de impacto en derechos humanos usando la herramienta del PNUD (https://hria.eu/#use-cases) antes del 29-may 23:59. Aunque la versión final con el resultado de la herramienta sale con la entrega 2, dejar el esqueleto firmado en el repo desde ya: - Demuestra que la IA responsable está pensada desde el diseño, no apilada al final. - Da al jurado un lugar concreto donde leer el análisis de riesgos cuando puntúe Innovación (30%) y Alineamiento open source (25%). docs/HRIA.md cubre las dimensiones que la herramienta del PNUD evalúa: - Privacidad (LLM local, sin envío a terceros). - No discriminación (riesgo de penalizar barrios periféricos + mitigaciones: prioridades, DISJUNCTIONS, baseline por urgencia). - Transparencia (XAI, used_fallback explícito, auditoría de ChatMessage con toolCalls). - Trabajo digno (horas/capacidad como restricciones duras). - Seguridad personal y acceso a recurso efectivo. Además, el bloque "Hackathon" del README ahora enlaza HRIA, SECURITY y CHANGELOG, y el TRL objetivo pasa a TRL5 (sin "-6") para alinearse con la aspiración real del equipo y evitar inflar lo entregable. Co-authored-by: Samuel Parra <parrasamuel453@gmail.com> Co-authored-by: Giulian Peterlecean <giulian.peterlecean@gmail.com>
1 parent e8df8e5 commit 24d023c

2 files changed

Lines changed: 116 additions & 2 deletions

File tree

README.md

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -191,8 +191,9 @@ Abre [http://localhost:3000](http://localhost:3000). Inicia sesión con `admin /
191191
Este proyecto se desarrolla para el **Hackathon "IA Responsable y Abierta en Industria" Mayo'26** organizado por la Secretaría de Estado de Digitalización e Inteligencia Artificial ([SEDIA](https://digital.gob.es)) y la Agencia Española de Supervisión de la Inteligencia Artificial (AESIA), en el marco de la [Comunidad IA de Código Abierto](https://digital.gob.es), con la colaboración del EDIH de Aragón ([ITA](https://www.ita.es/) + Universidad de Zaragoza).
192192

193193
- **Reto**: soluciones de IA responsable y abierta aplicables en entornos industriales.
194-
- **TRL objetivo**: TRL5-6 (validación / demostración de prototipo en entorno relevante).
195-
- **Compromiso**: el código se publica bajo licencia [Apache 2.0](LICENSE) y está pensado para ser auditable, reproducible y reutilizable por terceros.
194+
- **TRL objetivo**: TRL5 (validación de componente en entorno relevante).
195+
- **IA responsable**: la autoevaluación de impacto en derechos humanos (HRIA) realizada con la herramienta del PNUD (<https://hria.eu/#use-cases>) se documenta en [`docs/HRIA.md`](docs/HRIA.md).
196+
- **Compromiso**: el código se publica bajo licencia [Apache 2.0](LICENSE) y está pensado para ser auditable, reproducible y reutilizable por terceros. La política de divulgación responsable de vulnerabilidades vive en [`SECURITY.md`](SECURITY.md); el historial de cambios en [`CHANGELOG.md`](CHANGELOG.md).
196197

197198
---
198199

docs/HRIA.md

Lines changed: 113 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,113 @@
1+
# Human Rights Impact Assessment (HRIA) — OpenRoute
2+
3+
> **Estado**: borrador en revisión por el equipo. La autoevaluación completa, generada con la herramienta del Programa de las Naciones Unidas para el Desarrollo (PNUD) disponible en <https://hria.eu/#use-cases>, se incorpora a este documento como anexo antes del **29 de mayo de 2026 a las 23:59** (entregable 4 del reglamento del hackathon).
4+
>
5+
> Este documento responde al apartado **12. Uso de inteligencia artificial** y al **entregable 4 del apartado 9.2** de los [términos y condiciones del hackathon](../README.md#hackathon).
6+
7+
---
8+
9+
## 1. Resumen ejecutivo
10+
11+
OpenRoute es un sistema de optimización de rutas logísticas para PYMEs que combina:
12+
13+
- Un **microservicio Python** (FastAPI + Google OR-Tools) que resuelve un VRP con time windows y capacidades reales.
14+
- Un **frontend conversacional Next.js** con un **LLM local (Ollama + `llama3.1:8b`)** como copiloto del despachador.
15+
16+
La herramienta del PNUD se aplica al sistema completo, no a cada componente por separado. La evaluación se centra en:
17+
18+
- El uso de IA generativa (LLM) como interfaz operativa.
19+
- El uso de IA de decisión (OR-Tools) para asignar pedidos a conductores.
20+
- El tratamiento de datos personales y operativos de PYMEs, clientes finales y trabajadores (conductores).
21+
22+
## 2. Caso de uso evaluado
23+
24+
| Aspecto | Descripción |
25+
|---|---|
26+
| **Sector** | Logística de última milla (PYME). |
27+
| **Dominio del sistema** | Asistente al despachador para planificar rutas, asignar conductores, gestionar averías y comunicar cambios al cliente. |
28+
| **Decisiones automatizadas** | Orden óptimo de paradas, asignación pedido↔vehículo, diferimiento de pedidos infactibles, reasignación tras una avería. |
29+
| **Decisión final** | Humana. Todo plan generado por OR-Tools o sugerido por el LLM **requiere aprobación explícita del despachador** antes de ejecutarse en el frontend. |
30+
| **Datos tratados** | Direcciones de clientes, ventanas horarias, peso de los pedidos, prioridad, identidad del conductor, matrícula del vehículo. **Sin datos especialmente protegidos** (ni salud, ni biometría, ni orientación, ni convicciones). |
31+
| **Audiencia afectada** | Empleados del despacho (despachador, conductores) y clientes finales que reciben la entrega. |
32+
| **Tipo de riesgo predominante** | Operacional y de transparencia, no fundamental. |
33+
34+
## 3. Dimensiones evaluadas con la herramienta HRIA del PNUD
35+
36+
La herramienta del PNUD evalúa el impacto del sistema sobre los siguientes derechos humanos. A continuación, anticipamos cómo OpenRoute se posiciona en cada uno (la puntuación numérica final saldrá de la herramienta y se anexará a este documento):
37+
38+
### 3.1 Privacidad y protección de datos (Art. 12 DUDH, RGPD)
39+
40+
- **Riesgo**: bajo. El LLM corre **100% local con Ollama**; los datos de pedidos no se envían a servidores de terceros.
41+
- **Mitigaciones aplicadas**:
42+
- Almacenamiento en SQLite local (Prisma), migrable a Postgres del cliente.
43+
- Caché OSRM/Nominatim local; las direcciones se geocodifican una vez y se cachean.
44+
- JWT en cookie `httpOnly` con `sameSite=lax`.
45+
- **Pendiente para producción**: rotación de `JWT_SECRET`, multi-tenant con aislamiento de datos por organización, política de retención.
46+
47+
### 3.2 No discriminación e igualdad (Art. 7 DUDH, AI Act art. 5 y 6)
48+
49+
- **Riesgo**: medio. El motor OR-Tools optimiza por coste/distancia/CO₂; podría sistemáticamente perjudicar barrios periféricos si la matriz de distancias los penaliza.
50+
- **Mitigaciones aplicadas**:
51+
- Prioridad del pedido (1–3) influye en el score y permite al despachador imponer "atender primero esta zona".
52+
- DISJUNCTIONS de OR-Tools reportan los pedidos diferidos, evitando que se descarten en silencio.
53+
- La heurística baseline ordena por urgencia de ventana, no por valor económico.
54+
- **Pendiente**: añadir un test específico de equidad geográfica sobre el dataset de demo (¿se reparten las paradas de manera proporcional al volumen de pedidos por zona?).
55+
56+
### 3.3 Transparencia y derecho a una explicación (AI Act art. 13, Art. 19 DUDH)
57+
58+
- **Riesgo**: medio. Los LLMs pueden alucinar y los solvers VRP son opacos por naturaleza.
59+
- **Mitigaciones aplicadas**:
60+
- El motor devuelve siempre métricas comparables contra un **baseline manual realista** (km, €, CO₂, retrasos evitados). El usuario ve el "por qué" cuantitativo.
61+
- Cuando OR-Tools no encuentra solución factible, el sistema **avisa explícitamente** (`used_fallback=true`) y el system prompt obliga al chatbot a comunicarlo.
62+
- El módulo `src/ai_assistant.py` genera informes XAI en lenguaje natural sobre las decisiones del solver.
63+
- **Auditoría completa**: cada turno del chatbot queda persistido (`ChatSession` + `ChatMessage` con `toolCalls`). Reproducibilidad asegurada.
64+
- **Pendiente**: exponer el informe XAI también en la UI del frontend, no solo en la consola del backend.
65+
66+
### 3.4 Trabajo digno (Art. 23 DUDH)
67+
68+
- **Riesgo**: medio. La asignación automática de rutas puede degradar las condiciones del conductor (jornadas más largas, presión por ETAs ajustadas).
69+
- **Mitigaciones aplicadas**:
70+
- Las **horas de inicio/fin de jornada** son un parámetro duro del vehículo (`hora_inicio`, `hora_fin`); OR-Tools no asigna trabajo fuera de esas horas.
71+
- La capacidad en kg también es un límite duro; no se carga al conductor por encima de lo legal.
72+
- El conductor puede **reportar incidencias y averías** desde el chat; el sistema reoptimiza sin penalizarle por la incidencia.
73+
- **Pendiente**: incluir tiempo de descanso obligatorio (>4h conducción → 30 min) como restricción del solver.
74+
75+
### 3.5 Seguridad personal (Art. 3 DUDH)
76+
77+
- **Riesgo**: bajo. El sistema **no genera rutas en tiempo real ni dicta cómo conducir**, sólo el orden de paradas.
78+
- **Mitigaciones aplicadas**:
79+
- Distancias y tiempos por OSRM real, no por línea recta — la ETA es realista y no presiona al conductor a saltarse normas.
80+
81+
### 3.6 Acceso a un recurso efectivo (Art. 8 DUDH)
82+
83+
- **Riesgo**: bajo (sistema de soporte, decisión final humana).
84+
- **Mitigaciones aplicadas**:
85+
- Toda acción modificable por el chatbot (asignar ruta, marcar entregada, reprogramar) queda registrada en la base de datos con `userId` y timestamp.
86+
- El cliente final puede reclamar al despachador, que tiene auditoría completa de la asignación.
87+
88+
## 4. Cumplimiento normativo de referencia
89+
90+
- **Reglamento (UE) 2024/1689 (AI Act)** — OpenRoute encaja en *riesgo limitado / mínimo*: es un sistema de soporte a la decisión humana en logística, no listado entre los usos de alto riesgo del Anexo III.
91+
- **Reglamento (UE) 2016/679 (RGPD)** — base de tratamiento: interés legítimo de la PYME para gestionar entregas; pendiente añadir política de privacidad y registro de actividades de tratamiento al desplegar.
92+
- **Directiva (UE) 2019/1937 (whistleblowing)** — fuera del alcance del MVP.
93+
94+
## 5. Roadmap de mejoras priorizadas tras la HRIA
95+
96+
Las mejoras que la herramienta del PNUD recomiende se incorporarán a [`docs/ROADMAP.md`](ROADMAP.md) en la sección "Corto plazo". Las que ya tenemos en mente:
97+
98+
1. **Test de equidad geográfica** sobre el dataset de demo: ningún barrio del bbox queda sistemáticamente postergado.
99+
2. **Descansos obligatorios** del conductor como restricción dura del solver.
100+
3. **Informe XAI visible en la UI** del frontend, no solo en logs del backend.
101+
4. **Política de privacidad** explícita al instalar OpenRoute en una PYME.
102+
5. **Multi-tenant** con aislamiento de datos por organización.
103+
6. **Retención**: los `ChatMessage` con datos personales se anonimizan tras N días configurables.
104+
105+
## 6. Anexos
106+
107+
- **A. Resultado completo de la herramienta HRIA del PNUD** (https://hria.eu/#use-cases) — pendiente de adjuntar antes del 29-may-2026 23:59.
108+
- **B. Referencias normativas** — DUDH 1948, RGPD, AI Act, Ley 15/2022.
109+
- **C. Contacto del equipo** — ver [README.md](../README.md#contacto).
110+
111+
---
112+
113+
*Última actualización del borrador: 2026-05-27. Versión final con el resultado de la herramienta del PNUD se incorporará antes del 29-may-2026 23:59 (entregable 4 del reglamento).*

0 commit comments

Comments
 (0)