51 lines
1.2 KiB
Docker
51 lines
1.2 KiB
Docker
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"]
|