Spaces:
Sleeping
Sleeping
| # ============================================================ | |
| # Qwen3-14B β OpenAI-compatible API β CPU-only Docker image | |
| # ============================================================ | |
| FROM python:3.11-slim | |
| # Build-time deps for llama-cpp-python (needs a C++ compiler) | |
| RUN apt-get update && apt-get install -y --no-install-recommends \ | |
| build-essential \ | |
| cmake \ | |
| git \ | |
| wget \ | |
| ca-certificates \ | |
| && rm -rf /var/lib/apt/lists/* | |
| WORKDIR /app | |
| # ββ Python deps ββββββββββββββββββββββββββββββββββββββββββββββ | |
| # Install everything EXCEPT llama-cpp-python first (lighter layer) | |
| COPY requirements.txt . | |
| RUN pip install --no-cache-dir fastapi==0.111.0 uvicorn[standard]==0.29.0 pydantic==2.7.1 | |
| # Install llama-cpp-python with CPU-only build (no CUDA/Metal/OpenCL) | |
| # CMAKE_ARGS forces a plain CPU build; FORCE_CMAKE=1 ensures the wheel | |
| # is compiled from source so the flags are respected. | |
| RUN CMAKE_ARGS="-DLLAMA_CUBLAS=OFF -DLLAMA_METAL=OFF -DLLAMA_OPENCL=OFF" \ | |
| FORCE_CMAKE=1 \ | |
| pip install --no-cache-dir llama-cpp-python==0.2.77 | |
| # ββ App code βββββββββββββββββββββββββββββββββββββββββββββββββ | |
| COPY app.py . | |
| # ββ Model volume βββββββββββββββββββββββββββββββββββββββββββββ | |
| # Mount your GGUF file here at runtime: | |
| # docker run -v /path/to/models:/models ... | |
| # OR bake it into the image by uncommenting the COPY line below | |
| # (image will be ~9 GB for Q4_K_M): | |
| # COPY models/qwen3-14b-q4_k_m.gguf /models/qwen3-14b-q4_k_m.gguf | |
| RUN mkdir -p /models | |
| # ββ Runtime env defaults (override with -e flags) ββββββββββββ | |
| ENV MODEL_PATH=/models/qwen3-14b-q4_k_m.gguf \ | |
| MODEL_ID=qwen3-14b \ | |
| N_CTX=4096 \ | |
| N_THREADS=8 \ | |
| N_BATCH=512 \ | |
| VERBOSE=false | |
| EXPOSE 8000 | |
| HEALTHCHECK --interval=30s --timeout=10s --start-period=120s --retries=3 \ | |
| CMD wget -qO- http://localhost:8000/health || exit 1 | |
| CMD ["uvicorn", "app:app", "--host", "0.0.0.0", "--port", "7860"] | |