# ============================================================================= # 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"]