Spaces:
Paused
Paused
| # CodeAgent v5 — HF Space na 4× NVIDIA A100 80GB s vLLM subprocess enginem. | |
| # | |
| # Klíčové změny oproti v4: | |
| # - Base image = oficiální vllm/vllm-openai => torch/CUDA/kernely vždy | |
| # konzistentní s vLLM, žádná kompilace při buildu. | |
| # - Modely se NEZAPÉKAJÍ do image ani nestahují při buildu. Ephemeral disk | |
| # Space má jen ~50 GB; velké modely (60–240 GB) se připojují jako | |
| # read-only VOLUMES: `python scripts/space_ctl.py mount <repo_id>` | |
| # (mount_path /repos/<repo_id>). Stahování za běhu jde do RW storage | |
| # bucketu (/data/models — auto-detekce, přežije restart), jinak do | |
| # ephemeral /app/cache/models. Adresář lze změnit za běhu (download_dir). | |
| # - Aplikace startuje ihned (UI/API dostupné), vLLM engine se načítá na | |
| # pozadí a lze ho za běhu reloadnout s jiným modelem — bez restartu Space. | |
| FROM vllm/vllm-openai:v0.25.1 | |
| ENV DEBIAN_FRONTEND=noninteractive \ | |
| PYTHONDONTWRITEBYTECODE=1 \ | |
| PYTHONUNBUFFERED=1 \ | |
| HF_HOME=/app/cache/hf \ | |
| HF_XET_HIGH_PERFORMANCE=1 \ | |
| VLLM_WORKER_MULTIPROC_METHOD=spawn \ | |
| ENGINE_LOG=/tmp/vllm-engine.log \ | |
| LOG_FILE=/tmp/codeagent.log | |
| # HF Spaces spouští kontejner pod uid 1000. | |
| RUN useradd -m -u 1000 user && \ | |
| mkdir -p /app/cache/hf /app/cache/models /app/models /app/.agent /repos && \ | |
| chown -R user:user /app | |
| WORKDIR /app | |
| COPY --chown=user requirements.txt /app/requirements.txt | |
| RUN pip install --no-cache-dir -r /app/requirements.txt | |
| COPY --chown=user . /app | |
| USER user | |
| EXPOSE 7860 | |
| # Base image má ENTRYPOINT na `vllm serve` — resetujeme; server spouští app.py | |
| # (vLLM běží jako subprocess řízený engine.py). | |
| ENTRYPOINT [] | |
| CMD ["python3", "-m", "uvicorn", "app:app", "--host", "0.0.0.0", "--port", "7860"] | |