File size: 1,989 Bytes
be1949d
3e50743
9a57e00
 
 
be1949d
e5bf1d7
be1949d
e5bf1d7
be1949d
7131f6c
6cba908
be1949d
 
998196e
636bd97
 
be1949d
 
6db6156
be1949d
6db6156
be1949d
 
6db6156
be1949d
 
 
 
 
 
 
 
 
 
 
 
 
 
 
e5bf1d7
 
 
 
be1949d
 
 
b8d97ca
 
be1949d
 
79d7c2e
6db6156
be1949d
 
 
 
6db6156
 
 
be1949d
 
 
 
 
6db6156
be1949d
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
FROM nvidia/cuda:11.0.3-base-ubuntu20.04

ENV MODEL_NAME="llava-1.6-mistral-7b-gguf"
ENV DEFAULT_MODEL_FILE="llava-v1.6-mistral-7b.Q3_K_XS.gguf"
ENV MODEL_USER="cjpais"
ENV DEFAULT_MODEL_BRANCH="main"
ENV DEFAULT_CLIP_MODEL_FILE="mmproj-model-f16.gguf"
ENV MODEL_URL="https://huggingface.co/${MODEL_USER}/${MODEL_NAME}/resolve/${DEFAULT_MODEL_BRANCH}/${DEFAULT_MODEL_FILE}"
ENV CLIP_MODEL_URL="https://huggingface.co/${MODEL_USER}/${MODEL_NAME}/resolve/${DEFAULT_MODEL_BRANCH}/${DEFAULT_CLIP_MODEL_FILE}"
ENV PATH="/usr/local/cuda/bin:$PATH"

RUN apt update && \
    apt install --no-install-recommends -y build-essential python3 python3-pip wget curl git && \
    apt clean && rm -rf /var/lib/apt/lists/*

WORKDIR /app

RUN apt-get install -y wget && \
    wget -qO- "https://cmake.org/files/v3.18/cmake-3.18.0-Linux-x86_64.tar.gz" | tar --strip-components=1 -xz -C /usr/local

COPY requirements.txt ./

RUN pip3 install --upgrade pip && \
    pip3 install -r requirements.txt

# Cloning the llama-cpp-python repository
#RUN git clone https://github.com/abetlen/llama-cpp-python.git
#WORKDIR llama-cpp-python
# Initializing and updating the llama.cpp submodule
#RUN git submodule init && git submodule update

# Building the llama-cpp-python
# RUN FORCE_CMAKE=1 pip install .

# Moving back to /app directory
WORKDIR /app

RUN echo ${MODEL_URL} && \
    wget -O /app/${DEFAULT_MODEL_FILE} ${MODEL_URL}

RUN echo ${CLIP_MODEL_URL} && \
    wget -O /app/${DEFAULT_MODEL_FILE} ${CLIP_MODEL_URL}


RUN useradd -m -u 1000 user

RUN mkdir -p /home/user/app && \
    mv /app/${DEFAULT_MODEL_FILE} /home/user/app \
    mv /app/${DEFAULT_CLIP_MODEL_FILE} /home/user/app

RUN chown -R user:user /home/user/app

USER user
ENV HOME=/home/user \
	PATH=/home/user/.local/bin:$PATH \
    MODEL_NAME=${MODEL_NAME} \
    MODEL_FILE=/home/user/app/${DEFAULT_MODEL_FILE} 

WORKDIR $HOME/app

COPY --chown=user . .

RUN ls -al

EXPOSE 8000

CMD ["uvicorn", "main:app", "--host", "0.0.0.0", "--port", "8000"]