Spaces:
Paused
Paused
File size: 1,751 Bytes
0f9caed | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 | # 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"]
|