API REST profesional para entrenamiento y predicción de modelos de Machine Learning. Diseñada bajo una arquitectura DevSecOps que separa el desarrollo privado de la exhibición pública.
Este repositorio implementa un flujo de trabajo profesional para portafolio:
- GitLab (Source of Truth): Laboratorio privado completo. Contiene código fuente, tests unitarios, configuraciones de infraestructura y tuberías de CI/CD.
- Sanitización Automática: Uso del script
scripts/publish_public.ps1para filtrar componentes sensibles. - GitHub (Public Portfolio): Versión sanitizada para exhibición pública. No contiene tests internos, CI/CD, ni configuraciones privadas.
graph LR
A[GitLab private-lab] --> B{Sanitization}
B --> C[GitHub public-portfolio]
subgraph "Private Environment"
A
B
end
subgraph "Public Environment"
C
end
- ✅ Problemas ML: Regresión, Clasificación, Clustering.
- ✅ Algoritmos: Linear Regression, Logistic Regression, Random Forest, K-Means.
- ✅ Métricas: Accuracy, Precision, Recall, F1-Score, RMSE, R².
- ✅ Validación: Pydantic para esquemas de datos.
- ✅ Documentación: Swagger UI y ReDoc integrados.
- ✅ Persistencia: Manejo de modelos en formato serializado.
- Python 3.12+
- pip
- Git
# Sincronización (Solo desde GitLab)
git clone https://gitlab.com/group-data-ia-lab/ModelForge-API.git
cd ModelForge-API
# Crear entorno virtual
python -m venv venv# Activar entorno virtual
source venv/bin/activate
# Instalar dependencias de producción
pip install -r requirements.txt
# Instalar dependencias de desarrollo (Testing, Auditoría, Linting)
pip install -r requirements-dev.txt# Activar entorno virtual
.\venv\Scripts\Activate.ps1
# Instalar dependencias de producción
pip install -r requirements.txt
# Instalar dependencias de desarrollo (Testing, Auditoría, Linting)
pip install -r requirements-dev.txt# Modo Desarrollo
uvicorn src.main:app --reload --host 0.0.0.0 --port 8000
# Modo Producción
uvicorn src.main:app --host 0.0.0.0 --port 8000 --workers 4src/: Código fuente de la aplicación (FastAPI).tests/: Suite de pruebas (Exclusivo en GitLab).docs/: Documentación técnica relevante.diagrams/: Diagramas de arquitectura.configs/: Plantillas de configuración (.env.example).scripts/: Automatización y sanitización.data/: Almacenamiento local de modelos (ignorado por Git).
- Validación Estricta: Esquemas Pydantic para prevenir inyecciones.
- CI/CD Security: Análisis estático con
bandity auditoría de dependencias consafety. - Sanitización: Eliminación de artefactos sensibles antes de la publicación pública.
Este proyecto es parte de un ecosistema de desarrollo ético y profesional.