FROM python:3.11-slim WORKDIR /app ENV PYTHONDONTWRITEBYTECODE=1 ENV PYTHONUNBUFFERED=1 RUN apt-get update \ && apt-get install -y --no-install-recommends \ git \ openssh-client \ && rm -rf /var/lib/apt/lists/* # ZP Wiki je do kontajnera pripájaná ako /zpwiki RUN git config --system --add safe.directory /zpwiki # CPU-only PyTorch. RUN python -m pip install --no-cache-dir \ torch==2.11.0 \ --index-url https://download.pytorch.org/whl/cpu COPY requirements.txt . RUN python -m pip install --no-cache-dir \ -r requirements.txt COPY app ./app COPY tools ./tools COPY runtime_assets/ /opt/zp-assets/ ARG EMBEDDING_MODEL=intfloat/multilingual-e5-small ARG EMBEDDING_REVISION="" ARG CHUNK_TOKEN_ENCODING=cl100k_base ARG RAG_LLM_TOKEN_ENCODING=cl100k_base RUN python -m tools.runtime_assets prepare --output /opt/zp-assets \ --model "$EMBEDDING_MODEL" --revision "$EMBEDDING_REVISION" \ --encoding "$CHUNK_TOKEN_ENCODING" --encoding "$RAG_LLM_TOKEN_ENCODING" ENV ZP_RUNTIME_ASSETS=/opt/zp-assets ENV ZP_ASSETS_REQUIRED=1 ENV HF_HUB_OFFLINE=1 ENV TRANSFORMERS_OFFLINE=1 ENV TIKTOKEN_CACHE_DIR=/opt/zp-assets/tiktoken RUN mkdir -p data EXPOSE 8000 CMD ["uvicorn", "app.main:app", "--host", "0.0.0.0", "--port", "8000"]