Construido por un médico. Para equipos que construyen IA en salud.
El EU AI Act lleva meses en boca de todo el mundo en HealthTech.
Pero la mayoría de los análisis tienen el mismo problema: los escribe alguien que conoce la regulación pero nunca ha estado en un servicio de urgencias. O alguien que ha hecho guardias, pero no ha leído el reglamento.
El resultado es divulgación correcta pero inútil para quien tiene que tomar decisiones reales.
Cada semana me encuentro con equipos que están construyendo herramientas de IA que acabarán sentadas entre un paciente y una decisión médica. La mayoría no sabe si su predictor de sepsis es un sistema de alto riesgo bajo el Anexo III. No sabe si su chatbot para pacientes necesita una notificación de transparencia del Artículo 50. No sabe si su herramienta de puntuación de elegibilidad cruza la línea de prohibición del Artículo 5.
No es falta de voluntad. Es falta de herramientas accesibles con criterio clínico real.
ClinAI Classifier cierra esa brecha.
Describe tu sistema de IA sanitario en lenguaje natural. En menos de 10 segundos obtienes:
✅ Nivel de riesgo EU AI Act → PROHIBITED / HIGH_RISK / LIMITED_RISK / MINIMAL_RISK
✅ Categorías del Anexo III aplicables
✅ Flags de prácticas prohibidas (Artículo 5)
✅ Base legal con artículos específicos citados
✅ Lista de requisitos de cumplimiento por prioridad
✅ Flag SaMD (Software as a Medical Device)
✅ Informe PDF descargable listo para auditoría
| Sistema de IA | Clasificación | Base legal |
|---|---|---|
| Predictor de reingreso a UCI a 30 días usado en el alta | 🔴 HIGH_RISK + SaMD |
Art. 6, Anexo III §5; MDR |
| Resumen NLP de notas clínicas anonimizadas para investigación | 🟡 LIMITED_RISK |
Art. 50 transparencia |
| Puntuación de elegibilidad para prestaciones sanitarias por autoridad pública | ⛔ PROHIBITED |
Art. 5(1)(c) |
| Dashboard de wearable mostrando pasos y sueño al usuario | 🟢 MINIMAL_RISK |
Art. 95 código voluntario |
| Sistema de recomendación de tratamiento oncológico para oncólogos | 🔴 HIGH_RISK + SaMD |
Art. 6, Anexo III §5; MDR/IVDR |
El clasificador usa un pipeline de dos etapas diseñado para ser conservador por defecto.
Descripción del sistema
│
▼
┌───────────────────┐
│ Agente Claude │ ← System prompt de experto regulatorio + clínico
│ (clasificación │ Devuelve: riesgo, Anexo III, Art. 5, base legal,
│ estructurada) │ confianza, notas clínicas, flag SaMD
└───────────────────┘
│
▼
┌───────────────────┐
│ Motor de reglas │ ← Validación estática contra JSON regulatorios curados
│ (validación) │ Aplica invariante: NUNCA degrada la clasificación
└───────────────────┘
│
▼
Clasificación final + checklist + PDF
Invariante de no-degradación: el motor de reglas solo puede escalar una clasificación hacia mayor riesgo, nunca reducirla. Si el agente dice LIMITED_RISK y las reglas detectan un patrón de alto riesgo, el resultado final es HIGH_RISK. Al revés nunca ocurre. En regulación sanitaria, errar hacia el lado conservador no es opcional.
| Capa | Tecnología |
|---|---|
| UI | Streamlit 1.32 |
| API | FastAPI + Python 3.11 |
| IA | Claude claude-sonnet-4-5 (Anthropic) |
| Validación | Motor de reglas + JSON EU AI Act curados |
| WeasyPrint + Jinja2 | |
| Deploy | Docker · Hugging Face Spaces |
| Tests | pytest |
# Clonar
git clone https://github.com/aramzakzuk/clinai-classifier.git
cd clinai-classifier
# Instalar dependencias
pip install -r requirements.txt
# Configurar entorno
cp .env.example .env
# Añade tu ANTHROPIC_API_KEY en .env# Terminal 1 — Backend
python -m backend.main
# Terminal 2 — UI
streamlit run app/main.pyBackend en http://localhost:8000 · UI en http://localhost:8501
clinai-classifier/
├── app/ # UI Streamlit
│ ├── main.py
│ ├── components/ # Tarjetas de riesgo, checklist, PDF export
│ ├── pages/ # Clasificador, About, Guía regulatoria
│ └── utils/
├── backend/ # API FastAPI
│ ├── main.py
│ ├── data/ # JSON regulatorios EU AI Act curados
│ │ ├── eu_ai_act_article_5.json
│ │ ├── eu_ai_act_annex_iii.json
│ │ └── compliance_checklists.json
│ ├── models/ # Schemas Pydantic
│ ├── routers/ # Endpoints: /classify /report /health
│ ├── services/ # Agente Claude, motor de reglas, PDF
│ └── tests/
├── docs/
│ ├── METHODOLOGY.md
│ ├── LIMITATIONS.md
│ └── EXAMPLES.md
├── templates/ # Plantillas PDF
├── REGULATORY_REFERENCE.md
└── README.md
pytest backend/tests/La suite cubre: motor de reglas (escalado, carveout médico, invariante de no-degradación), endpoint de clasificación y generador PDF.
Todas las clasificaciones están fundamentadas en el texto publicado del Reglamento (UE) 2024/1689 — EU AI Act.
Mapeado de referencia rápida de artículos relevantes para salud en REGULATORY_REFERENCE.md.
ClinAI Classifier es una herramienta de apoyo a la decisión. No es asesoramiento jurídico.
No reemplaza a un Organismo Notificado ni a un profesional regulatorio cualificado. Las salidas del modelo pueden ser inconsistentes. El clasificador no cubre obligaciones GPAI (Art. 51+) ni evalúa conformidad MDR/IVDR en profundidad. Todos los resultados requieren revisión humana antes de cualquier acción de cumplimiento.
Declaración completa en docs/LIMITATIONS.md.
Las contribuciones son bienvenidas, especialmente de clínicos, profesionales regulatorios e ingenieros que trabajan en SaMD. Abre un issue antes de enviar cambios significativos.
Son particularmente valiosos: casos de prueba basados en despliegues reales, refinamientos a los JSON regulatorios y correcciones de clasificaciones incorrectas.
Aram Zakzuk, MD Clinical AI Specialist · Health Informatics · HealthTech Consultant
CDSS SaMD EU AI Act MDR Machine Learning aplicado a medicina
MIT — ver LICENSE