DocIntel / app /vector_store /embeddings.py
Rupali Ravindra Shetye
DocIntel v1.0 - Full production release
905e3b7
Raw History Blame Contribute Delete
910 Bytes
from sentence_transformers import SentenceTransformer
from app.config import settings
import numpy as np
from typing import List
class EmbeddingManager:
"""Manage local embeddings (no API cost)"""
def __init__(self):
self.model = SentenceTransformer(settings.EMBEDDING_MODEL)
self.dimension = self.model.get_sentence_embedding_dimension()
print(f"✅ Loaded embedding model: {settings.EMBEDDING_MODEL} (dim: {self.dimension})")
def embed_texts(self, texts: List[str]) -> List[List[float]]:
"""Generate embeddings for list of texts"""
embeddings = self.model.encode(texts, convert_to_numpy=True)
return embeddings.tolist()
def embed_query(self, query: str) -> List[float]:
"""Generate embedding for a single query"""
embedding = self.model.encode([query], convert_to_numpy=True)
return embedding[0].tolist()