Research_Agent / phidata /phi /embedder /fastembed.py
zykrix
Re-added phidata as a normal folder (final fix)
c96b98a
Raw
History Blame Contribute Delete
1.1 kB
from typing import List, Tuple, Optional, Dict
from phi.embedder.base import Embedder
from phi.utils.log import logger
try:
from fastembed import TextEmbedding # type: ignore
except ImportError:
raise ImportError("fastembed not installed, use pip install fastembed")
class FastEmbedEmbedder(Embedder):
"""Using BAAI/bge-small-en-v1.5 model, more models available: https://qdrant.github.io/fastembed/examples/Supported_Models/"""
model: str = "BAAI/bge-small-en-v1.5"
dimensions: int = 384
def get_embedding(self, text: str) -> List[float]:
model = TextEmbedding(model_name=self.model)
embeddings = model.embed(text)
embedding_list = list(embeddings)
try:
return embedding_list
except Exception as e:
logger.warning(e)
return []
def get_embedding_and_usage(self, text: str) -> Tuple[List[float], Optional[Dict]]:
embedding = self.get_embedding(text=text)
# Currently, FastEmbed does not provide usage information
usage = None
return embedding, usage