Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
21 changes: 21 additions & 0 deletions .dockerignore
Original file line number Diff line number Diff line change
@@ -0,0 +1,21 @@
# Entorno y cachés
.venv/
__pycache__/
*.pyc
*.pyo
*.pyd
*.pytest_cache/
.ipynb_checkpoints/

# Git y editor
.git/
.gitignore
.vscode/

# Datos locales (no necesarios para la imagen)
data/
reports/

# Otros
dist/
build/
4 changes: 4 additions & 0 deletions .gitmodules
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
[submodule "genAI"]
path = genAI
url = https://github.com/carlosalvarezh/genAI.git
branch = main
35 changes: 35 additions & 0 deletions Dockerfile
Original file line number Diff line number Diff line change
@@ -0,0 +1,35 @@
# Imagen base ligera
FROM python:3.11-slim

# Evitar bytecode y forzar log en stdout
ENV PYTHONDONTWRITEBYTECODE=1 \
PYTHONUNBUFFERED=1

# Crear usuario no-root
RUN useradd -m appuser

# Directorio de trabajo
WORKDIR /app

# Instalar dependencias del sistema (si hicieran falta en el futuro)
# RUN apt-get update && apt-get install -y --no-install-recommends \
# build-essential && \
# rm -rf /var/lib/apt/lists/*

# Copiar requirements e instalar
COPY requirements.txt /app/requirements.txt
RUN pip install --no-cache-dir -r /app/requirements.txt

# Copiar código y artefactos del modelo
COPY src /app/src
COPY main.py /app/main.py
COPY models_artifacts /app/models_artifacts

# Exponer puerto del servicio
EXPOSE 8000

# Cambiar a usuario no-root
USER appuser

# Comando por defecto: levantar la API
CMD ["uvicorn", "src.api.main:app", "--host", "0.0.0.0", "--port", "8000"]
4 changes: 2 additions & 2 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -16,8 +16,8 @@ Proyecto técnico que integra:
- `src/`: código productivo (features, modelos, API, utilidades).
- `models_artifacts/`: artefactos serializados del modelo (p. ej., `clf_alpha_beta_final.joblib`, `inference_config.json`).
- `reports/`: métricas, gráficos y salidas.
- `genai/`: POC de agente generativo (opcional).
- `docker/`: contenedorización (opcional).
- `genai/`: e decidio realizarlo en un proyecto aparte.
- `docker/`: contenedorización.
- `tests/`: pruebas unitarias.

---
Expand Down
12 changes: 12 additions & 0 deletions docker-compose.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
services:
api:
build: .
image: predictia-api:latest
ports:
- "8000:8000"
restart: unless-stopped
# Si quieres ejecutar el script por fuera, no necesitas volúmenes.
# Si quisieras usar el script dentro del contenedor contra tus datos locales:
# volumes:
# - ./data:/app/data
# - ./reports:/app/reports
1 change: 1 addition & 0 deletions genAI
Submodule genAI added at f399e0