sritikaa/fintech-audit-ai
0
1import os2import numpy as np3from sentence_transformers import SentenceTransformer4from dotenv import load_dotenv5 6load_dotenv()7 8MODEL_NAME = os.getenv("EMBEDDING_MODEL", "all-MiniLM-L6-v2")9 10_model = None11 12def get_model():13 global _model14 if _model is None:15 print(f"Loading embedding model: {MODEL_NAME}...")16 _model = SentenceTransformer(MODEL_NAME)17 print("Model loaded.")18 return _model19 20def embed(texts: list) -> np.ndarray:21 model = get_model()22 return model.encode(texts, normalize_embeddings=True, show_progress_bar=True)23def cosine_similarity(a: np.ndarray, b: np.ndarray) -> float:24 return float(np.dot(a, b))25 26if __name__ == "__main__":27 test = [28 "JPMorgan total revenue 2025",29 "Goldman Sachs risk management",30 "Bank of America loan portfolio",31 "What is the weather today", # unrelated — should score low32 ]33 34 print("Embedding test sentences...\n")35 embeddings = embed(test)36 print(f"\nEmbedding shape: {embeddings.shape}")37 print(f"\nSimilarity to 'JPMorgan total revenue 2025':")38 for i, sentence in enumerate(test):39 sim = cosine_similarity(embeddings[0], embeddings[i])40 print(f" {sentence:<45} → {sim:.4f}")41 