| FROM python:3.12-slim |
|
|
| ENV PYTHONDONTWRITEBYTECODE=1 \ |
| PYTHONUNBUFFERED=1 \ |
| PIP_DISABLE_PIP_VERSION_CHECK=1 \ |
| HOME=/home/user \ |
| HF_HUB_DISABLE_TELEMETRY=1 \ |
| TOKENIZERS_PARALLELISM=false \ |
| OMP_NUM_THREADS=2 \ |
| MEDIRAG_DEVICE=cpu \ |
| MEDIRAG_API_RETRIEVER=candidate-v5.1 \ |
| MEDIRAG_API_GENERATOR=evidence-preview \ |
| MEDIRAG_API_ALLOW_EXTERNAL_GENERATION=false \ |
| MEDIRAG_API_ALLOW_UNREVIEWED_GENERATION=false |
|
|
| RUN apt-get update \ |
| && apt-get install --yes --no-install-recommends ca-certificates libgomp1 \ |
| && rm -rf /var/lib/apt/lists/* \ |
| && useradd --create-home --uid 1000 user |
|
|
| WORKDIR /home/user/app |
|
|
| COPY requirements.txt ./requirements.txt |
| RUN python -m pip install --no-cache-dir --requirement requirements.txt |
|
|
| COPY --chown=user:user scripts/download_deployment_models.py scripts/download_deployment_models.py |
| RUN mkdir -p knowledge_base/models/huggingface \ |
| && chown -R user:user /home/user/app |
|
|
| USER user |
| RUN python scripts/download_deployment_models.py \ |
| --cache-dir knowledge_base/models/huggingface |
|
|
| ENV HF_HUB_OFFLINE=1 \ |
| TRANSFORMERS_OFFLINE=1 |
|
|
| COPY --chown=user:user src/ src/ |
| COPY --chown=user:user knowledge_base/ knowledge_base/ |
| RUN sha256sum knowledge_base/indexes/medlineplus/multilingual-e5-small/embeddings.npy \ |
| && wc -c knowledge_base/indexes/medlineplus/multilingual-e5-small/embeddings.npy \ |
| && echo "451a017d1d53ef21f502a2effd9edf8932d39a55e584e6888b9e99529ea41c09 knowledge_base/indexes/medlineplus/multilingual-e5-small/embeddings.npy" \ |
| | sha256sum --check |
|
|
| EXPOSE 7860 |
|
|
| CMD ["python", "-m", "uvicorn", "src.medirag.api:app", "--host", "0.0.0.0", "--port", "7860", "--workers", "1", "--proxy-headers", "--forwarded-allow-ips", "*"] |
|
|