Infraestructura
De qué partes está hecho OsteoLab
El repo separa entrenamiento, servicio al usuario, código compartido y
orquestación en carpetas independientes. ./run.sh levanta el stack
completo con Docker Compose; cada pieza también puede correr suelta.
Servicios (con URL de acceso)
API backend FastAPI
Inferencia + web de producto (
/classify, /hybrid/classify, /pca/reference...).
serving/backend/
UI Streamlit demo
Pipeline paso a paso: sube imagen → CLIP → medir + clasificar → PCA.
serving/frontend/
MLflow tracking
Experimentos, métricas y modelos registrados de cada entrenamiento.
mlops/docker/
PostgreSQL interno
Backend de almacenamiento de MLflow. Sin UI propia.
mlops/docker/docker-compose.yml
Código y pipeline (sin servicio propio)
training/ CLI
Entrena y evalúa los 3 modelos (geométrico, CNN, híbrido).
shared/ librería
Código compartido entre training y serving: filtros CLIP/ResNet18, extracción de features (OpenCV) e inferencia.
mlops/docker/ Docker
Dockerfiles +
docker-compose.yml: orquesta postgres, mlflow, API y UI.
mlops/airflow/ no desplegado
DAG de orquestación del pipeline de entrenamiento. Todavía no forma parte de
docker-compose.yml.
DVC CLI
Versiona datos y pipeline reproducible de entrenamiento.