kkthyagharajan's picture
Upload 6 files
4b0cde0 verified
# -*- coding: utf-8 -*-
"""
Created on Tue Mar 3 15:11:38 2026
@author: THYAGHARAJAN
"""
# NOTE:
# This class is currently NOT used in kkt_FastAPI_serverV21.py
# The main app directly uses SentenceTransformer.
# Keep this file only for future modular refactoring.
from sentence_transformers import SentenceTransformer
from typing import List
import numpy as np
class EmbeddingModel:
"""
Handles embedding generation for documents and queries.
Fully offline model loading.
"""
def __init__(self, model_name: str = "sentence-transformers/all-MiniLM-L6-v2"):
self.model_name = model_name
self.model = SentenceTransformer(model_name)
def embed_documents(self, texts: List[str]) -> np.ndarray:
"""
Generate embeddings for multiple document chunks.
Returns a NumPy array of shape (n_chunks, embedding_dim)
"""
embeddings = self.model.encode(
texts,
convert_to_numpy=True,
normalize_embeddings=True
)
return embeddings
def embed_query(self, query: str) -> np.ndarray:
"""
Generate embedding for a single query.
Returns a NumPy array of shape (embedding_dim,)
"""
embedding = self.model.encode(
query,
convert_to_numpy=True,
normalize_embeddings=True
)
return embedding