FROM nvidia/cuda:11.8.0-devel-ubuntu22.04 # Install necessary packages RUN apt update && apt install git build-essential libopenblas-dev wget python3-pip -y RUN apt update && apt install -y wget RUN apt-get install -y curl RUN apt-get install -y nodejs npm # Set up a new user named "user" with user ID 1000 RUN useradd -m -u 1000 user # Switch to the "user" user USER user # Set home to the user's home directory ENV HOME=/home/user \ PATH=/home/user/.local/bin:$PATH # Set the working directory to the user's home directory WORKDIR $HOME/app # Copy the current directory contents into the container at $HOME/app setting the owner to the user COPY --chown=user . $HOME/app # Set up the working directory RUN git clone https://github.com/lolcats399/tabbyAPI/ WORKDIR $HOME/app/tabbyAPI RUN pip install -r requirements.txt -q RUN pip install huggingface-hub -q RUN echo "network:" > config.yml && \ echo " host: 0.0.0.0" >> config.yml && \ echo " port: 5000" >> config.yml && \ echo " disable_auth: False" >> config.yml && \ echo "" >> config.yml && \ echo "logging:" >> config.yml && \ echo " prompt: False" >> config.yml && \ echo " generation_params: False" >> config.yml && \ echo "" >> config.yml && \ echo "sampling:" >> config.yml && \ echo " override_preset: null" >> config.yml && \ echo "" >> config.yml && \ echo "developer:" >> config.yml && \ echo " unsafe_launch: False" >> config.yml && \ echo "" >> config.yml && \ echo "model:" >> config.yml && \ echo " model_dir: models" >> config.yml && \ echo " model_name: MiquMaid-v2-2x70B-DPO-exl2-4bpw" >> config.yml && \ echo " use_dummy_models: False" >> config.yml WORKDIR $HOME/app/tabbyAPI/models RUN mkdir -p MiquMaid-v2-2x70B-DPO-exl2-4bpw WORKDIR $HOME/app/tabbyAPI/models/MiquMaid-v2-2x70B-DPO-exl2-4bpw RUN pip install huggingface-hub hf-transfer ENV HF_HUB_ENABLE_HF_TRANSFER=1 # Ensure the model is downloaded into the current working directory (models folder) RUN huggingface-cli download alpindale/MiquMaid-v2-2x70B-DPO-exl2-4bpw --local-dir ./ --local-dir-use-symlinks False --cache-dir ~/cache WORKDIR $HOME/app/tabbyAPI/models/MiquMaid-v2-2x70B-DPO-exl2-4bpw RUN curl -L https://huggingface.co/NeverSleep/MiquMaid-v2-2x70B/resolve/main/config.json?download=true -o $HOME/app/tabbyAPI/models/MiquMaid-v2-2x70B-DPO-exl2-4bpw/config.json RUN curl -L https://huggingface.co/NeverSleep/MiquMaid-v2-2x70B/resolve/main/config.json?download=true -o /home/user/app/tabbyAPI/models/MiquMaid-v2-2x70B-DPO-exl2-4bpw/config.json RUN curl -L https://huggingface.co/NeverSleep/MiquMaid-v2-2x70B/resolve/main/model.safetensors.index.json?download=true -o /home/user/app/tabbyAPI/models/MiquMaid-v2-2x70B-DPO-exl2-4bpw/model.safetensors.index.json RUN curl -L https://huggingface.co/NeverSleep/MiquMaid-v2-2x70B/resolve/main/special_tokens_map.json?download=true -o /home/user/app/tabbyAPI/models/MiquMaid-v2-2x70B-DPO-exl2-4bpw/special_tokens_map.json RUN curl -L https://huggingface.co/NeverSleep/MiquMaid-v2-2x70B/resolve/main/tokenizer.json?download=true -o /home/user/app/tabbyAPI/models/MiquMaid-v2-2x70B-DPO-exl2-4bpw/tokenizer.json RUN curl -L https://huggingface.co/NeverSleep/MiquMaid-v2-2x70B/resolve/main/tokenizer.model?download=true -o /home/user/app/tabbyAPI/models/MiquMaid-v2-2x70B-DPO-exl2-4bpw/tokenizer.model RUN curl -L https://huggingface.co/NeverSleep/MiquMaid-v2-2x70B/resolve/main/tokenizer_config.json?download=true -o /home/user/app/tabbyAPI/models/MiquMaid-v2-2x70B-DPO-exl2-4bpw/tokenizer_config.json WORKDIR $HOME/app/tabbyAPI/ EXPOSE 5000 CMD /bin/bash -c "python3 main.py"