FROM python:3.11-slim-bookworm

RUN mkdir /workspace && mkdir /workspace/transformers_cache
WORKDIR /workspace

ENV HF_HOME /workspace/transformers_cache

RUN apt update && apt install -y git bash curl wget libxml2 g++

RUN apt install -y openssh-server && \
    rm -f /etc/ssh/ssh_host_* && \
    sed -i 's/#PasswordAuthentication yes/PasswordAuthentication no/g' /etc/ssh/sshd_config

RUN wget -q --show-progress --progress=bar:force:noscroll -O cuda_installer https://developer.download.nvidia.com/compute/cuda/12.1.1/local_installers/cuda_12.1.1_530.30.02_linux.run && \
    chmod +x cuda_installer && \
    ./cuda_installer --silent --toolkit --override && \
    rm -f cuda_installer

RUN pip3 install ninja packaging torch
RUN pip3 install ochat
RUN pip3 install inflect sqlparse
RUN pip3 install mlcroissant==1.0.8

COPY src /app/src
COPY data /app/data

WORKDIR /app

CMD ["python", "-m", "ochat.serving.openai_api_server", "--model", "openchat/openchat_3.5"]