# src/embeddings/huggingface_embedding.py
from typing import List
from sentence_transformers import SentenceTransformer

from .base_embedding import BaseEmbedding

class HuggingFaceEmbedding(BaseEmbedding):
    def __init__(self, model_name: str = 'all-MiniLM-L6-v2'):
        """
        Initialize HuggingFace embedding model
        
        Args:
            model_name (str): Name of the embedding model
        """
        self.model = SentenceTransformer(model_name)
    
    def embed_documents(self, texts: List[str]) -> List[List[float]]:
        """
        Embed a list of documents
        
        Args:
            texts (List[str]): List of texts to embed
        
        Returns:
            List[List[float]]: List of embeddings
        """
        return self.model.encode(texts).tolist()
    
    def embed_query(self, text: str) -> List[float]:
        """
        Embed a single query
        
        Args:
            text (str): Text to embed
        
        Returns:
            List[float]: Embedding vector
        """
        return self.model.encode(text).tolist()