|
|
|
FROM python:3.9 |
|
|
|
|
|
WORKDIR /app |
|
|
|
|
|
RUN apt-get update && apt-get install -y curl sudo fontconfig wget |
|
|
|
|
|
ENV OLLAMA_HOME=/.ollama |
|
ENV GRADIO_TEMP_DIR=/tmp/gradio |
|
ENV MPLCONFIGDIR=/tmp/matplotlib |
|
ENV FONTCONFIG_PATH=/tmp/fontconfig |
|
ENV XDG_CACHE_HOME=/tmp/cache |
|
|
|
|
|
RUN mkdir -p ${OLLAMA_HOME} \ |
|
&& mkdir -p ${GRADIO_TEMP_DIR} \ |
|
&& mkdir -p ${MPLCONFIGDIR} \ |
|
&& mkdir -p ${FONTCONFIG_PATH} \ |
|
&& mkdir -p ${XDG_CACHE_HOME} \ |
|
&& chmod -R 777 /tmp \ |
|
&& chmod -R 777 ${OLLAMA_HOME} |
|
|
|
|
|
RUN chmod -R 777 /app |
|
|
|
|
|
RUN curl -L https://ollama.ai/install.sh | sh |
|
|
|
|
|
RUN pip install gradio requests |
|
|
|
|
|
RUN wget --tries=3 --retry-connrefused --waitretry=5 --timeout=30 \ |
|
-O /app/model.gguf \ |
|
https://huggingface.co/shenzhi-wang/Llama3.1-8B-Chinese-Chat/resolve/main/gguf/llama3.1_8b_chinese_chat_q4_k_m.gguf?download=true |
|
|
|
|
|
COPY <<-'EOF' /app/verify_gguf.py |
|
import sys |
|
def is_gguf(file_path): |
|
with open(file_path, "rb") as f: |
|
magic = f.read(4) |
|
return magic == b"GGUF" |
|
if not is_gguf("/app/model.gguf"): |
|
print("Error: Downloaded file is not in GGUF format") |
|
sys.exit(1) |
|
EOF |
|
|
|
RUN python3 /app/verify_gguf.py |
|
|
|
|
|
COPY . /app |
|
|
|
|
|
RUN echo "FROM /app/model.gguf\n\ |
|
PARAMETER stop \"Human:\"\n\ |
|
PARAMETER stop \"Assistant:\"\n\ |
|
PARAMETER temperature 0.7\n\ |
|
PARAMETER top_k 40\n\ |
|
PARAMETER top_p 0.9" > /app/Modelfile |
|
|
|
|
|
COPY start.sh /app/start.sh |
|
RUN chmod +x /app/start.sh |
|
|
|
|
|
CMD ["/app/start.sh"] |