Spaces:
Running
Running
| # Hugging Face Spaces — RICS v2 backend (OpenAI embeddings; no local torch/reranker). | |
| FROM python:3.11-slim | |
| RUN apt-get update && apt-get install -y --no-install-recommends \ | |
| build-essential \ | |
| libgomp1 \ | |
| curl \ | |
| && rm -rf /var/lib/apt/lists/* \ | |
| && useradd -m -u 1000 user \ | |
| && mkdir -p /data /data/hf_cache \ | |
| && chown -R user:user /data | |
| ENV PIP_DISABLE_PIP_VERSION_CHECK=1 \ | |
| PIP_NO_CACHE_DIR=1 \ | |
| PYTHONUNBUFFERED=1 \ | |
| PYTHONDONTWRITEBYTECODE=1 \ | |
| HOME=/home/user \ | |
| PATH="/home/user/.local/bin:$PATH" \ | |
| PORT=7860 \ | |
| DATA_DIR=/data \ | |
| HF_HOME=/data/hf_cache \ | |
| EMBEDDING_PROVIDER=openai \ | |
| USE_RERANKER=false \ | |
| PII_USE_SPACY=false \ | |
| SECTION_CONCURRENCY=2 \ | |
| MAX_CONCURRENT_LLM_CALLS=3 \ | |
| NOTE_QUALITY_CONCURRENCY=1 \ | |
| OPENAI_RATE_LIMIT_MAX_RETRIES=8 \ | |
| OPENAI_RATE_LIMIT_BACKOFF_BASE_SECONDS=2.0 \ | |
| OPENAI_RATE_LIMIT_BACKOFF_MAX_SECONDS=90.0 | |
| USER user | |
| WORKDIR /app | |
| COPY --chown=user backend/requirements-spaces.txt ./backend/requirements-spaces.txt | |
| RUN pip install --upgrade pip && \ | |
| pip install -r backend/requirements-spaces.txt | |
| COPY --chown=user backend ./backend | |
| COPY --chown=user frontend ./frontend | |
| # PDF extractors (LlamaParse / Textract) load modules from REPO_ROOT/scripts/. | |
| COPY --chown=user scripts ./scripts | |
| EXPOSE 7860 | |
| HEALTHCHECK --interval=30s --timeout=10s --start-period=180s --retries=5 \ | |
| CMD curl -fsS "http://127.0.0.1:${PORT:-7860}/health" || exit 1 | |
| CMD ["sh", "-c", "exec uvicorn backend.main:app --host 0.0.0.0 --port ${PORT:-7860} --workers 1"] | |