File size: 1,563 Bytes
eb426ec
 
 
 
 
 
 
 
 
 
 
 
 
caaea14
d8e6aef
039dd05
 
eb426ec
 
 
6efc2b7
eb426ec
 
6efc2b7
 
 
 
eb426ec
 
 
6efc2b7
 
 
 
 
 
eb426ec
 
 
6efc2b7
ed02384
 
 
 
 
eb426ec
6efc2b7
 
 
 
 
 
 
 
 
 
 
eb426ec
 
 
 
6efc2b7
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
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
FROM node:22-bookworm AS frontend

WORKDIR /app
COPY package*.json ./
RUN npm install
COPY . .
RUN npm run build

FROM python:3.11-slim

ENV PORT=7860 \
    LLM_BACKEND=llamacpp \
    TEXT_MODEL=Qwen/Qwen3-1.7B \
    GGUF_MODEL_REPO=bartowski/Qwen_Qwen3-1.7B-GGUF \
    GGUF_MODEL_FILE=Qwen_Qwen3-1.7B-Q4_K_M.gguf \
    LLAMA_CPP_N_CTX=1024 \
    LLAMA_CPP_N_THREADS=2 \
    ASR_MODEL=openai/whisper-tiny \
    KOKORO_LANG_CODE=z \
    KOKORO_VOICE=zf_xiaobei \
    MAX_NEW_TOKENS=120 \
    LLM_API_BASE_URL=https://api.deepseek.com \
    LLM_API_MODEL=deepseek-v4-flash \
    HF_HOME=/app/.cache/huggingface \
    HUGGINGFACE_HUB_CACHE=/app/.cache/huggingface/hub \
    TRANSFORMERS_CACHE=/app/.cache/huggingface/transformers

WORKDIR /app

RUN apt-get update \
    && apt-get install -y --no-install-recommends \
        ffmpeg \
        git \
        espeak-ng \
        build-essential \
        cmake \
    && rm -rf /var/lib/apt/lists/*

COPY requirements.txt .

RUN pip install --no-cache-dir --upgrade pip setuptools wheel \
    && pip install --no-cache-dir -r requirements.txt \
    && pip install --no-cache-dir --prefer-binary \
        --extra-index-url https://abetlen.github.io/llama-cpp-python/whl/cpu \
        llama-cpp-python

RUN python - <<'PY'
import os
from huggingface_hub import hf_hub_download

path = hf_hub_download(
    repo_id=os.environ["GGUF_MODEL_REPO"],
    filename=os.environ["GGUF_MODEL_FILE"],
)
print("Downloaded model to:", path)
PY

COPY app.py .
COPY --from=frontend /app/dist ./dist

EXPOSE 7860
CMD ["python", "app.py"]