Update Dockerfile
Browse files- Dockerfile +60 -49
Dockerfile
CHANGED
|
@@ -1,63 +1,74 @@
|
|
| 1 |
-
|
| 2 |
-
|
| 3 |
-
#
|
| 4 |
-
#
|
| 5 |
-
|
| 6 |
-
|
| 7 |
-
|
| 8 |
-
|
| 9 |
-
|
| 10 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 11 |
|
| 12 |
-
|
| 13 |
|
| 14 |
-
# ββ System deps
|
| 15 |
RUN apt-get update && apt-get install -y --no-install-recommends \
|
| 16 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 17 |
&& rm -rf /var/lib/apt/lists/*
|
| 18 |
|
| 19 |
-
# ββ Python deps ββ
|
| 20 |
-
#
|
| 21 |
-
|
| 22 |
-
|
|
|
|
|
|
|
|
|
|
| 23 |
|
| 24 |
-
# ββ
|
| 25 |
-
|
| 26 |
-
--extra-index-url https://abetlen.github.io/llama-cpp-python/whl/cpu
|
| 27 |
|
| 28 |
-
#
|
| 29 |
-
|
| 30 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
| 31 |
|
| 32 |
-
#
|
| 33 |
-
#
|
| 34 |
-
|
| 35 |
-
from huggingface_hub import hf_hub_download
|
| 36 |
-
import os
|
| 37 |
-
path = hf_hub_download(
|
| 38 |
-
repo_id="unsloth/Qwen3.5-0.8B-GGUF",
|
| 39 |
-
filename="Qwen3.5-0.8B-UD-Q2_K_XL.gguf",
|
| 40 |
-
cache_dir="/app/cache"
|
| 41 |
-
)
|
| 42 |
-
print(f"Model cached at: {path}")
|
| 43 |
-
EOF
|
| 44 |
|
| 45 |
-
#
|
| 46 |
-
|
| 47 |
-
from sentence_transformers import SentenceTransformer
|
| 48 |
-
SentenceTransformer("sentence-transformers/all-MiniLM-L6-v2",
|
| 49 |
-
cache_folder="/app/cache")
|
| 50 |
-
print("Embeddings model cached.")
|
| 51 |
-
EOF
|
| 52 |
|
| 53 |
-
# ββ
|
| 54 |
-
|
| 55 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 56 |
|
| 57 |
-
#
|
| 58 |
-
RUN
|
| 59 |
-
|
| 60 |
-
/app/database/chats_data
|
| 61 |
|
| 62 |
EXPOSE 7860
|
| 63 |
|
|
|
|
| 1 |
+
# βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
|
| 2 |
+
# Kitten Chat β HuggingFace Docker Space (free CPU)
|
| 3 |
+
# LLM : gemma-3-270m-it-F16.gguf via llama-cpp-python (CPU-only)
|
| 4 |
+
# TTS : Kokoro ONNX + "kiki" voice (af_kore)
|
| 5 |
+
# UI : Flask (no Gradio)
|
| 6 |
+
#
|
| 7 |
+
# Space requirements:
|
| 8 |
+
# β’ Place gemma-3-270m-it-F16.gguf in the repo root (or set MODEL_PATH env)
|
| 9 |
+
# β’ kokoro model files are downloaded automatically at build time
|
| 10 |
+
#
|
| 11 |
+
# HuggingFace Space config (add to README.md front-matter):
|
| 12 |
+
# ---
|
| 13 |
+
# title: Kitten Chat
|
| 14 |
+
# emoji: π±
|
| 15 |
+
# colorFrom: purple
|
| 16 |
+
# colorTo: pink
|
| 17 |
+
# sdk: docker
|
| 18 |
+
# app_port: 7860
|
| 19 |
+
# ---
|
| 20 |
+
# βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
|
| 21 |
|
| 22 |
+
FROM python:3.11-slim
|
| 23 |
|
| 24 |
+
# ββ System deps βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
|
| 25 |
RUN apt-get update && apt-get install -y --no-install-recommends \
|
| 26 |
+
build-essential \
|
| 27 |
+
cmake \
|
| 28 |
+
espeak-ng \
|
| 29 |
+
libsndfile1 \
|
| 30 |
+
wget \
|
| 31 |
+
ca-certificates \
|
| 32 |
&& rm -rf /var/lib/apt/lists/*
|
| 33 |
|
| 34 |
+
# ββ Python deps βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
|
| 35 |
+
# llama-cpp-python β CPU-only wheel (no CUDA, keeps image small)
|
| 36 |
+
ENV CMAKE_ARGS="-DGGML_BLAS=OFF -DGGML_CUDA=OFF"
|
| 37 |
+
ENV FORCE_CMAKE=1
|
| 38 |
+
|
| 39 |
+
COPY requirements.txt /tmp/requirements.txt
|
| 40 |
+
RUN pip install --no-cache-dir -r /tmp/requirements.txt
|
| 41 |
|
| 42 |
+
# ββ App βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
|
| 43 |
+
WORKDIR /app
|
|
|
|
| 44 |
|
| 45 |
+
# Download Kokoro ONNX model + voices at build time
|
| 46 |
+
# Using the int8 quantized model β much smaller & faster on CPU
|
| 47 |
+
RUN mkdir -p /app/models && \
|
| 48 |
+
wget -q -O /app/models/kokoro-v1.0.int8.onnx \
|
| 49 |
+
"https://github.com/thewh1teagle/kokoro-onnx/releases/download/model-files-v1.0/kokoro-v1.0.int8.onnx" && \
|
| 50 |
+
wget -q -O /app/models/voices-v1.0.bin \
|
| 51 |
+
"https://github.com/thewh1teagle/kokoro-onnx/releases/download/model-files-v1.0/voices-v1.0.bin"
|
| 52 |
|
| 53 |
+
# Copy user-supplied GGUF model (must exist in build context)
|
| 54 |
+
# If you prefer to download at runtime, remove this line and set MODEL_PATH
|
| 55 |
+
COPY gemma-3-270m-it-F16.gguf /app/models/gemma-3-270m-it-F16.gguf
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 56 |
|
| 57 |
+
# Copy application
|
| 58 |
+
COPY app.py /app/app.py
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 59 |
|
| 60 |
+
# ββ Environment βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
|
| 61 |
+
ENV MODEL_PATH=/app/models/gemma-3-270m-it-F16.gguf
|
| 62 |
+
ENV ONNX_MODEL=/app/models/kokoro-v1.0.int8.onnx
|
| 63 |
+
ENV VOICES_BIN=/app/models/voices-v1.0.bin
|
| 64 |
+
ENV TTS_VOICE=af_kore
|
| 65 |
+
ENV PORT=7860
|
| 66 |
+
# Use all available CPU cores
|
| 67 |
+
ENV OMP_NUM_THREADS=4
|
| 68 |
|
| 69 |
+
# HuggingFace Spaces runs as non-root user 1000
|
| 70 |
+
RUN useradd -m -u 1000 hfuser && chown -R hfuser:hfuser /app
|
| 71 |
+
USER 1000
|
|
|
|
| 72 |
|
| 73 |
EXPOSE 7860
|
| 74 |
|