al-moratel-stt-gpu / Dockerfile
ksapc
تقليص الصورة: إزالة النموذج القرآنيّ غير المستعمَل وtorch/transformers — علاج الإقلاع البارد (209ث مقيسة)
a89bed7
Raw
History Blame Contribute Delete
2.35 kB
# خادم التفريغ الصوتيّ للمرتل — faster-whisper large-v3 (float16) على T4.
# general = openai/whisper-large-v3 (أمين للمنطوق — الأفضل لرصد أخطاء القارئ) — المسار الوحيد المستعمَل.
# CUDA 12.4 + cuDNN 9 (يلزمان CTranslate2 4.5+). النموذج مبنيٌّ في الصورة (لا تنزيل وقت التشغيل).
FROM nvidia/cuda:12.4.1-cudnn-runtime-ubuntu22.04
ENV DEBIAN_FRONTEND=noninteractive HF_HOME=/app/hf HF_HUB_ENABLE_HF_TRANSFER=1
WORKDIR /app
RUN apt-get update && apt-get install -y --no-install-recommends \
python3 python3-pip libsndfile1 ca-certificates && rm -rf /var/lib/apt/lists/*
RUN pip3 install --no-cache-dir fastapi "uvicorn[standard]" numpy soundfile hf_transfer \
"faster-whisper>=1.1.0" "ctranslate2>=4.5"
# النموذج العامّ فقط: نسخة CTranslate2 الجاهزة من faster-whisper، مخزَّنةٌ في الصورة.
# ★ أُزيل النموذج القرآنيّ (‎ahishamm/finetuned-whisper-quranic-large-v3‎) و‎torch‎/‎transformers‎ من
# الصورة في 2026-08-14. سببه مقيس: الإقلاع البارد كان **٢٠٩ ثوانٍ** (رُصد على المستخدمين: انتظارٌ
# من دقيقةٍ إلى أربع عند فتح التطبيق بعد نوم المساحة) — وكانت الصورة تحمل ~٦.٥ جيجابايت من أوزانٍ
# وحزمٍ **لا يستدعيها التطبيق إطلاقًا**: الكود يطلب ‎?m=general‎ حصرًا (تأكيدٌ بفحص كلّ الملفّات)،
# لأنّ النموذج المُدرَّب على القرآن يحفظ النصّ فيُصحّح خطأ القارئ صامتًا فيُخفي ما وُجد التطبيق لكشفه.
# ‎faster-whisper‎ يعمل على CTranslate2 ولا يحتاج ‎torch‎ البتّة. لإعادة مسار ‎quran‎ مستقبلًا:
# أعِد سطرَي ‎pip‎ و‎snapshot_download‎ أدناه — واعلم أنّهما يُضاعفان زمن الإقلاع البارد.
RUN python3 -c "from faster_whisper import download_model; download_model('large-v3', cache_dir='/app/hf')"
RUN chmod -R a+rX /app
COPY app.py ./
EXPOSE 7860
CMD ["python3", "-m", "uvicorn", "app:app", "--host", "0.0.0.0", "--port", "7860"]