Soumik-404 commited on
Commit
27bdca7
·
1 Parent(s): 99c519a
Files changed (2) hide show
  1. Dockerfile +13 -1
  2. app/services/embeddings_service.py +12 -0
Dockerfile CHANGED
@@ -24,7 +24,19 @@ RUN pip install --no-cache-dir "youtube-transcript-api>=1.2.4"
24
 
25
  COPY --chown=appuser:appuser . .
26
 
27
- RUN mkdir -p /app/models && python3 -c "from huggingface_hub import snapshot_download; snapshot_download(repo_id='ibm-granite/granite-embedding-small-english-r2', local_dir='/app/models/bge-384'); snapshot_download(repo_id='nomic-ai/modernbert-embed-base', local_dir='/app/models/bge-768'); snapshot_download(repo_id='lightonai/modernbert-embed-large', local_dir='/app/models/bge-1024'); snapshot_download(repo_id='nomic-ai/nomic-embed-vision-v1.5', local_dir='/app/models/vision')" && chown -R appuser:appuser /app/models
 
 
 
 
 
 
 
 
 
 
 
 
28
 
29
  RUN mkdir -p /app/logs && \
30
  chown -R appuser:appuser /app/logs
 
24
 
25
  COPY --chown=appuser:appuser . .
26
 
27
+ RUN mkdir -p /app/models && python3 -c "
28
+ import json, os
29
+ from huggingface_hub import snapshot_download
30
+ snapshot_download(repo_id='ibm-granite/granite-embedding-small-english-r2', local_dir='/app/models/bge-384')
31
+ snapshot_download(repo_id='nomic-ai/modernbert-embed-base', local_dir='/app/models/bge-768')
32
+ snapshot_download(repo_id='lightonai/modernbert-embed-large', local_dir='/app/models/bge-1024')
33
+ snapshot_download(repo_id='nomic-ai/nomic-embed-vision-v1.5', local_dir='/app/models/vision')
34
+ cfg = '/app/models/vision/config.json'
35
+ if os.path.exists(cfg):
36
+ with open(cfg) as f: d = json.load(f)
37
+ if isinstance(d.get('n_inner'), float): d['n_inner'] = int(d['n_inner'])
38
+ with open(cfg, 'w') as f: json.dump(d, f, indent=2)
39
+ " && chown -R appuser:appuser /app/models
40
 
41
  RUN mkdir -p /app/logs && \
42
  chown -R appuser:appuser /app/logs
app/services/embeddings_service.py CHANGED
@@ -64,6 +64,18 @@ class EmbeddingService:
64
  return
65
  local_path = os.path.join(self._models_dir, "vision")
66
  source = local_path if os.path.isdir(local_path) else _VISION_MODEL_NAME
 
 
 
 
 
 
 
 
 
 
 
 
67
  _logger.info("Loading vision embedding model from %s", source)
68
  self._vision_model = SentenceTransformer(
69
  source,
 
64
  return
65
  local_path = os.path.join(self._models_dir, "vision")
66
  source = local_path if os.path.isdir(local_path) else _VISION_MODEL_NAME
67
+
68
+ cfg_path = os.path.join(local_path, "config.json")
69
+ if os.path.exists(cfg_path):
70
+ import json
71
+ with open(cfg_path) as f:
72
+ d = json.load(f)
73
+ if isinstance(d.get("n_inner"), float):
74
+ d["n_inner"] = int(d["n_inner"])
75
+ with open(cfg_path, "w") as f:
76
+ json.dump(d, f, indent=2)
77
+ _logger.info("Patched vision model config: n_inner float -> int")
78
+
79
  _logger.info("Loading vision embedding model from %s", source)
80
  self._vision_model = SentenceTransformer(
81
  source,