Kevin Hu commited on
Commit
d55a6be
·
1 Parent(s): 613b83b

make it lighten (#2577)

Browse files

### What problem does this PR solve?

#2295

### Type of change

- [x] Refactoring

Dockerfile.scratch CHANGED
@@ -14,7 +14,7 @@ RUN --mount=type=cache,target=/var/cache/apt,sharing=locked \
14
  RUN sed -i 's|http://archive.ubuntu.com|https://mirrors.tuna.tsinghua.edu.cn|g' /etc/apt/sources.list.d/ubuntu.sources
15
 
16
  RUN --mount=type=cache,target=/var/cache/apt,sharing=locked \
17
- apt update && apt install -y curl libpython3-dev nginx openmpi-bin openmpi-common libopenmpi-dev libglib2.0-0 libglx-mesa0 \
18
  && rm -rf /var/lib/apt/lists/* \
19
  && curl -sSL https://install.python-poetry.org | python3 -
20
 
@@ -33,7 +33,7 @@ USER root
33
  WORKDIR /ragflow
34
 
35
  RUN --mount=type=cache,target=/var/cache/apt,sharing=locked \
36
- apt update && apt install -y nodejs npm cargo && \
37
  rm -rf /var/lib/apt/lists/*
38
 
39
  COPY web web
@@ -42,7 +42,10 @@ RUN cd web && npm i --force && npm run build
42
  # install dependencies from poetry.lock file
43
  COPY pyproject.toml poetry.toml poetry.lock ./
44
  RUN --mount=type=cache,target=/root/.cache/pypoetry,sharing=locked \
45
- /root/.local/bin/poetry install --sync --no-root
 
 
 
46
 
47
  # production stage
48
  FROM base AS production
@@ -76,8 +79,6 @@ ENV PATH="${VIRTUAL_ENV}/bin:/root/.local/bin:${PATH}"
76
  # Download nltk data
77
  RUN python3 -m nltk.downloader wordnet punkt punkt_tab
78
 
79
- # Copy models downloaded via download_deps.sh
80
- COPY det.onnx layout.laws.onnx layout.manual.onnx layout.onnx layout.paper.onnx ocr.res rec.onnx tsr.onnx updown_concat_xgb.model /ragflow/rag/res/deepdoc/
81
 
82
  ENV PYTHONPATH=/ragflow/
83
 
 
14
  RUN sed -i 's|http://archive.ubuntu.com|https://mirrors.tuna.tsinghua.edu.cn|g' /etc/apt/sources.list.d/ubuntu.sources
15
 
16
  RUN --mount=type=cache,target=/var/cache/apt,sharing=locked \
17
+ apt update && apt install -y curl libpython3-dev nginx libglib2.0-0 libglx-mesa0 \
18
  && rm -rf /var/lib/apt/lists/* \
19
  && curl -sSL https://install.python-poetry.org | python3 -
20
 
 
33
  WORKDIR /ragflow
34
 
35
  RUN --mount=type=cache,target=/var/cache/apt,sharing=locked \
36
+ apt update && apt install -y nodejs npm && \
37
  rm -rf /var/lib/apt/lists/*
38
 
39
  COPY web web
 
42
  # install dependencies from poetry.lock file
43
  COPY pyproject.toml poetry.toml poetry.lock ./
44
  RUN --mount=type=cache,target=/root/.cache/pypoetry,sharing=locked \
45
+ /root/.local/bin/poetry lock
46
+
47
+ RUN --mount=type=cache,target=/root/.cache/pypoetry,sharing=locked \
48
+ /root/.local/bin/poetry install --sync --no-cache --no-root
49
 
50
  # production stage
51
  FROM base AS production
 
79
  # Download nltk data
80
  RUN python3 -m nltk.downloader wordnet punkt punkt_tab
81
 
 
 
82
 
83
  ENV PYTHONPATH=/ragflow/
84
 
pyproject.toml CHANGED
@@ -99,7 +99,7 @@ tika = "2.6.0"
99
  tiktoken = "0.6.0"
100
  torch = "2.3.0"
101
  transformers = "4.38.1"
102
- umap = "0.1.1"
103
  vertexai = "1.64.0"
104
  volcengine = "1.0.146"
105
  voyageai = "0.2.3"
 
99
  tiktoken = "0.6.0"
100
  torch = "2.3.0"
101
  transformers = "4.38.1"
102
+ umap_learn = "0.5.6"
103
  vertexai = "1.64.0"
104
  volcengine = "1.0.146"
105
  voyageai = "0.2.3"
rag/llm/embedding_model.py CHANGED
@@ -245,8 +245,8 @@ class FastEmbed(Base):
245
  threads: Optional[int] = None,
246
  **kwargs,
247
  ):
248
- from fastembed import TextEmbedding
249
- if not FastEmbed._model:
250
  self._model = TextEmbedding(model_name, cache_dir, threads, **kwargs)
251
 
252
  def encode(self, texts: list, batch_size=32):
@@ -291,8 +291,8 @@ class YoudaoEmbed(Base):
291
  _client = None
292
 
293
  def __init__(self, key=None, model_name="maidalun1020/bce-embedding-base_v1", **kwargs):
294
- from BCEmbedding import EmbeddingModel as qanthing
295
- if not YoudaoEmbed._client:
296
  try:
297
  print("LOADING BCE...")
298
  YoudaoEmbed._client = qanthing(model_name_or_path=os.path.join(
 
245
  threads: Optional[int] = None,
246
  **kwargs,
247
  ):
248
+ if not LIGHTEN and not FastEmbed._model:
249
+ from fastembed import TextEmbedding
250
  self._model = TextEmbedding(model_name, cache_dir, threads, **kwargs)
251
 
252
  def encode(self, texts: list, batch_size=32):
 
291
  _client = None
292
 
293
  def __init__(self, key=None, model_name="maidalun1020/bce-embedding-base_v1", **kwargs):
294
+ if not LIGHTEN and not YoudaoEmbed._client:
295
+ from BCEmbedding import EmbeddingModel as qanthing
296
  try:
297
  print("LOADING BCE...")
298
  YoudaoEmbed._client = qanthing(model_name_or_path=os.path.join(
rag/llm/rerank_model.py CHANGED
@@ -109,8 +109,8 @@ class YoudaoRerank(DefaultRerank):
109
  _model_lock = threading.Lock()
110
 
111
  def __init__(self, key=None, model_name="maidalun1020/bce-reranker-base_v1", **kwargs):
112
- from BCEmbedding import RerankerModel
113
- if not YoudaoRerank._model:
114
  with YoudaoRerank._model_lock:
115
  if not YoudaoRerank._model:
116
  try:
 
109
  _model_lock = threading.Lock()
110
 
111
  def __init__(self, key=None, model_name="maidalun1020/bce-reranker-base_v1", **kwargs):
112
+ if not LIGHTEN and not YoudaoRerank._model:
113
+ from BCEmbedding import RerankerModel
114
  with YoudaoRerank._model_lock:
115
  if not YoudaoRerank._model:
116
  try: