"examples/community/pipeline_flux_with_cfg.py" did not exist on "984d340534e04674ddeae4120311248c9beabfb7"
Dockerfile 2.4 KB
Newer Older
Timothy J. Baek's avatar
Timothy J. Baek committed
1
2
# syntax=docker/dockerfile:1

3
FROM node:alpine as build
4

Timothy J. Baek's avatar
Timothy J. Baek committed
5
6
WORKDIR /app

Timothy J. Baek's avatar
Timothy J. Baek committed
7
# wget embedding model weight from alpine (does not exist from slim-buster)
Xiaodong Ye's avatar
Xiaodong Ye committed
8
9
RUN wget "https://chroma-onnx-models.s3.amazonaws.com/all-MiniLM-L6-v2/onnx.tar.gz" -O - | \
    tar -xzf - -C /app
Timothy J. Baek's avatar
Timothy J. Baek committed
10

Xiaodong Ye's avatar
Xiaodong Ye committed
11
COPY package.json package-lock.json ./
12
RUN npm ci
13

14
15
COPY . .
RUN npm run build
Timothy J. Baek's avatar
Timothy J. Baek committed
16

Timothy J. Baek's avatar
Timothy J. Baek committed
17

Timothy J. Baek's avatar
Timothy J. Baek committed
18
FROM python:3.11-slim-bookworm as base
Timothy J. Baek's avatar
Timothy J. Baek committed
19
20

ENV ENV=prod
21
ENV PORT ""
Timothy J. Baek's avatar
Timothy J. Baek committed
22
23

ENV OLLAMA_API_BASE_URL "/ollama/api"
Timothy J. Baek's avatar
Timothy J. Baek committed
24
25
26
27

ENV OPENAI_API_BASE_URL ""
ENV OPENAI_API_KEY ""

28
ENV WEBUI_SECRET_KEY ""
Timothy J. Baek's avatar
Timothy J. Baek committed
29

30
31
32
ENV SCARF_NO_ANALYTICS true
ENV DO_NOT_TRACK true

33
# whisper TTS Settings
34
ENV WHISPER_MODEL="base"
Timothy J. Baek's avatar
refac  
Timothy J. Baek committed
35
ENV WHISPER_MODEL_DIR="/app/backend/data/cache/whisper/models"
36

37
38
39
40
41
42
# any sentence transformer model; models to use can be found at https://huggingface.co/models?library=sentence-transformers
# Leaderboard: https://huggingface.co/spaces/mteb/leaderboard 
# for better persormance and multilangauge support use "intfloat/multilingual-e5-large"
# IMPORTANT: If you change the default model (all-MiniLM-L6-v2) and vice versa, you aren't able to use RAG Chat with your previous documents loaded in the WebUI! You need to re-embed them.
ENV DOCKER_SENTENCE_TRANSFORMER_EMBED_MODEL="all-MiniLM-L6-v2"

Timothy J. Baek's avatar
Timothy J. Baek committed
43
44
WORKDIR /app/backend

45
# install python dependencies
Timothy J. Baek's avatar
Timothy J. Baek committed
46
COPY ./backend/requirements.txt ./requirements.txt
Timothy J. Baek's avatar
Timothy J. Baek committed
47

Ismael's avatar
Ismael committed
48
49
RUN pip3 install torch torchvision torchaudio --index-url https://download.pytorch.org/whl/cpu --no-cache-dir
RUN pip3 install -r requirements.txt --no-cache-dir
50

TriantaTV's avatar
TriantaTV committed
51
# Install pandoc and netcat
Timothy J. Baek's avatar
Timothy J. Baek committed
52
53
# RUN python -c "import pypandoc; pypandoc.download_pandoc()"
RUN apt-get update \
TriantaTV's avatar
TriantaTV committed
54
    && apt-get install -y pandoc netcat-openbsd \
Timothy J. Baek's avatar
Timothy J. Baek committed
55
56
    && rm -rf /var/lib/apt/lists/*

57
58
59
# preload embedding model
RUN python -c "import os; from chromadb.utils import embedding_functions; sentence_transformer_ef = embedding_functions.SentenceTransformerEmbeddingFunction(model_name=os.environ['DOCKER_SENTENCE_TRANSFORMER_EMBED_MODEL'])"
# preload tts model
Timothy J. Baek's avatar
refac  
Timothy J. Baek committed
60
RUN python -c "import os; from faster_whisper import WhisperModel; WhisperModel(os.environ['WHISPER_MODEL'], device='cpu', compute_type='int8', download_root=os.environ['WHISPER_MODEL_DIR'])"
61

Timothy J. Baek's avatar
Timothy J. Baek committed
62

63
64
# copy embedding weight from build
RUN mkdir -p /root/.cache/chroma/onnx_models/all-MiniLM-L6-v2
Xiaodong Ye's avatar
Xiaodong Ye committed
65
COPY --from=build /app/onnx /root/.cache/chroma/onnx_models/all-MiniLM-L6-v2/onnx
66
67
68
69
70

# copy built frontend files
COPY --from=build /app/build /app/build

# copy backend files
Timothy J. Baek's avatar
Timothy J. Baek committed
71
72
COPY ./backend .

73
CMD [ "bash", "start.sh"]