# =============================================================================
# Tool Router + LiteLLM Proxy
# =============================================================================
# Build:  docker build -t tool-router-litellm .
# Run:    docker run --rm -p 4000:4000 --env-file .env tool-router-litellm
# =============================================================================

FROM python:3.12-slim

ENV PYTHONDONTWRITEBYTECODE=1 \
    PYTHONUNBUFFERED=1 \
    PIP_NO_CACHE_DIR=1 \
    PYTHONPATH=/app \
    PORT=4000

WORKDIR /app

# Dependências de sistema mínimas (certs para HTTPS das APIs LLM)
RUN apt-get update && apt-get install -y --no-install-recommends \
        ca-certificates \
        curl \
    && rm -rf /var/lib/apt/lists/*

# requirements.txt instala litellm + numpy + scikit-learn
# (litellm NÃO traz numpy/sklearn por padrão)
COPY requirements.txt .
RUN pip install --upgrade pip && pip install -r requirements.txt

# Código do router + configs
COPY tool_router_logger.py .
COPY config.yaml .
COPY test_tool_router.py .

# Porta do proxy
EXPOSE 4000

# Healthcheck simples no endpoint do proxy
HEALTHCHECK --interval=30s --timeout=5s --start-period=20s --retries=3 \
  CMD curl -fsS "http://127.0.0.1:${PORT}/health" || exit 1

# Variáveis TOOL_ROUTER_* e OPENAI_API_KEY / LITELLM_MASTER_KEY vêm do runtime
CMD ["sh", "-c", "litellm --config /app/config.yaml --port ${PORT} --host 0.0.0.0"]
