Leon4gr45 commited on
Commit
8e28486
·
verified ·
1 Parent(s): 441f472

Upload folder using huggingface_hub (part 2)

Browse files
src/lib/embeddings/client_fastembed.py ADDED
@@ -0,0 +1,24 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ from typing import List
2
+ from src.adapters.interfaces.embeddings import EmbeddingsClient
3
+
4
+ class FastEmbedEmbeddingsClient(EmbeddingsClient):
5
+ def __init__(self, model_name: str = "BAAI/bge-small-en-v1.5"):
6
+ self.model_name = model_name
7
+ self._model = None
8
+
9
+ @property
10
+ def model(self):
11
+ if self._model is None:
12
+ from fastembed import TextEmbedding
13
+ self._model = TextEmbedding(model_name=self.model_name)
14
+ return self._model
15
+
16
+ def embed_text(self, text: str) -> List[float]:
17
+ embeddings = list(self.model.embed([text]))
18
+ return embeddings[0].tolist()
19
+
20
+ def embed_texts(self, texts: List[str]) -> List[List[float]]:
21
+ embeddings = list(self.model.embed(texts))
22
+ return [e.tolist() for e in embeddings]
23
+
24
+ _fastembed_client = FastEmbedEmbeddingsClient()