Spaces:
Running
Running
Commit ·
27bdca7
1
Parent(s): 99c519a
bug fix
Browse files- Dockerfile +13 -1
- 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 "
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 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,
|