livemedcard-ocr-cpu / Dockerfile
DocUA
CPU fallback engine: NuExtract3 Q4_K_M on llama.cpp (OpenAI-compatible)
801e849
Raw
History Blame Contribute Delete
1.64 kB
# LiveMedCard OCR — CPU-запасний рушій (NuExtract3 Q4_K_M через llama.cpp).
#
# Той самий рушій, що й локальний деплой на ноутбуці: доводить, що модель реально
# працює без GPU. Слугує фолбеком, коли ZeroGPU-Lab недоступний (вичерпана квота,
# черга, збій) — контракт OpenAI-сумісний, тож клієнт лишається той самий.
FROM ghcr.io/ggml-org/llama.cpp:server
USER root
RUN apt-get update \
&& apt-get install -y --no-install-recommends curl ca-certificates \
&& rm -rf /var/lib/apt/lists/*
# Ваги печемо в образ: холодний старт Space не має чекати на завантаження 3 ГБ.
RUN mkdir -p /models \
&& curl -fsSL -o /models/nuextract3-q4_k_m.gguf \
https://huggingface.co/numind/NuExtract3-GGUF/resolve/main/NuExtract3-Q4_K_M.gguf \
&& curl -fsSL -o /models/mmproj.gguf \
https://huggingface.co/numind/NuExtract3-GGUF/resolve/main/mmproj-NuExtract3-BF16.gguf
EXPOSE 7860
# ENTRYPOINT базового образу не фіксуємо наосліп — шукаємо бінар у PATH із відкатом
# на /app. `--jinja` потрібен, щоб проходили chat_template_kwargs (template/mode).
ENTRYPOINT []
CMD ["/bin/sh", "-c", "exec $(command -v llama-server || echo /app/llama-server) \
-m /models/nuextract3-q4_k_m.gguf \
--mmproj /models/mmproj.gguf \
--host 0.0.0.0 --port 7860 \
--jinja -c 4096 -ngl 0 --threads 2 --parallel 1"]