Spaces:
Sleeping
Sleeping
File size: 927 Bytes
7248d39 | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 | """MiniCPM-Embedding client — runs on Modal GPU (NF4 4-bit)."""
from typing import List
from config import settings
from models.modal_client import get_embedder
class MiniCPMEmbedder:
def __init__(self):
self._remote = get_embedder()
def embed_documents(self, texts: List[str]) -> List[List[float]]:
if not texts:
return []
batch_size = settings.EMBED_BATCH_SIZE
if len(texts) <= batch_size:
return self._remote.embed_documents.remote(texts)
vectors: List[List[float]] = []
for start in range(0, len(texts), batch_size):
batch = texts[start : start + batch_size]
vectors.extend(self._remote.embed_documents.remote(batch))
return vectors
def embed_query(self, query: str) -> List[float]:
return self._remote.embed_query.remote(query)
def get_embedding_dim(self) -> int:
return 2304
|