MedRAG / embeddings /embedder.py
sandy45's picture
Deploy Medical RAG Assistant
20f1ed0
Raw
History Blame Contribute Delete
1.01 kB
from langchain_huggingface import HuggingFaceEmbeddings
def get_embeddings(model_name: str = "BAAI/bge-base-en-v1.5", device: str = "cpu") -> HuggingFaceEmbeddings:
"""
Initializes and returns the BGE embeddings model.
Explanation:
- Embeddings: Dense vector representations of text where mathematically similar vectors represent semantically similar text.
- Vector representations: Text mapped to high-dimensional floating-point arrays.
- Semantic similarity: The ability to find answers not by exact keyword match, but by meaning.
(e.g., "elevated glucose" vs "high blood sugar").
We use BAAI/bge-base-en-v1.5 as it provides highly competitive retrieval performance for RAG.
"""
model_kwargs = {"device": device}
encode_kwargs = {"normalize_embeddings": True} # Normalizing helps with cosine similarity
return HuggingFaceEmbeddings(
model_name=model_name,
model_kwargs=model_kwargs,
encode_kwargs=encode_kwargs
)