Spaces:
Sleeping
Sleeping
| 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 | |