# Hugging Face Spaces Docker SDK Image FROM python:3.11-slim ENV PYTHONUNBUFFERED=1 \ PYTHONDONTWRITEBYTECODE=1 \ PORT=7860 \ HOST=0.0.0.0 \ DATA_DIR=/app/data \ INDEX_DIR=/app/data/indexes \ PROCESSED_DIR=/app/data/corpus \ HF_HOME=/app/.cache/huggingface \ KMP_DUPLICATE_LIB_OK=TRUE \ OMP_NUM_THREADS=1 \ ONNX_NUM_THREADS=1 \ ALLOW_NETWORK_CALLS_IN_PIPELINE=false \ USE_GEMINI_GENERATION=true WORKDIR /app RUN apt-get update && apt-get install -y --no-install-recommends \ build-essential \ curl \ git \ ffmpeg \ libsndfile1 \ && rm -rf /var/lib/apt/lists/* COPY requirements.txt . RUN pip install --no-cache-dir --upgrade pip && \ pip install --no-cache-dir -r requirements.txt RUN python -c "from transformers import AutoTokenizer, AutoModel; from huggingface_hub import snapshot_download; AutoTokenizer.from_pretrained('intfloat/multilingual-e5-small'); AutoModel.from_pretrained('intfloat/multilingual-e5-small'); snapshot_download('prompt-security/Prompt-Guard-86M_onnx', allow_patterns=['model.onnx', 'tokenizer.json', 'tokenizer_config.json', 'special_tokens_map.json'])" COPY svarasetu/ ./svarasetu/ COPY app.py . COPY data/ ./data/ COPY tests/ ./tests/ COPY docs/ ./docs/ ARG SVARASETU_ASSETS_REPO=NoiwaDEX/SvaraSetu-assets ARG SVARASETU_ASSETS_REVISION=b1138003b37d96e38371817b4555de1672721955 RUN python -c "from huggingface_hub import snapshot_download; snapshot_download('${SVARASETU_ASSETS_REPO}', revision='${SVARASETU_ASSETS_REVISION}', allow_patterns=['parts/svarasetu-assets.part-*'], local_dir='/tmp/svarasetu-assets')" && \ cat /tmp/svarasetu-assets/parts/svarasetu-assets.part-* > /tmp/svarasetu-assets.tar.gz && \ echo "9e18d3108dae51bd580d12bf5e947d60bda9bcf9fe9d4f614a0671ebf67b499e /tmp/svarasetu-assets.tar.gz" | sha256sum -c - && \ tar -xzf /tmp/svarasetu-assets.tar.gz -C /app && \ rm -rf /tmp/svarasetu-assets /tmp/svarasetu-assets.tar.gz RUN useradd -m -u 1000 user && \ chown -R user:user /app USER user EXPOSE 7860 HEALTHCHECK --interval=30s --timeout=5s --start-period=90s --retries=3 \ CMD curl -fsS http://127.0.0.1:7860/ready || exit 1 CMD ["uvicorn", "svarasetu.serve:app", "--host", "0.0.0.0", "--port", "7860"]