Spaces:
Running
Running
MrNK2107
chore: fix all ruff lint errors (174 -> 0), clean up unused imports/vars, fix line lengths
e9fe93a | # ruff: noqa: E501 | |
| #!/usr/bin/env python3 | |
| """Test cross-encoder directly on various profile/text pairs.""" | |
| import os | |
| import sys | |
| sys.path.insert(0, '/home/nanda/India-Runs') | |
| os.environ["HF_HUB_OFFLINE"] = "1" | |
| os.environ["TRANSFORMERS_OFFLINE"] = "1" | |
| from src.core.config import DATA_DIR | |
| from src.core.profile_store import ProfileStore | |
| from src.search.reranker import CrossEncoderReranker | |
| reranker = CrossEncoderReranker(timeout_ms=0) | |
| profiles = ProfileStore() | |
| profiles.load_sample(DATA_DIR / "samples" / "sample_candidates.json") | |
| test_cases = [ | |
| ("senior software engineer python java aws", "CAND_0000088", "Riya - Software Engineer @ TCS (Java, JavaScript, AWS, Azure)"), | |
| ("senior software engineer python java aws", "CAND_0000100", "Amit - Data Scientist @ Microsoft (Python, PostgreSQL, AWS, Kotlin)"), | |
| ("senior software engineer python java aws", "CAND_0000025", "Anika - Frontend Engineer @ TechM (JS, TS, GCP)"), | |
| ("senior software engineer python java aws", "CAND_0000044", "Vihaan - Frontend Engineer @ TechM (JS, Python, Hadoop)"), | |
| ("data scientist machine learning python pytorch", "CAND_0000001", "Ira - Backend Engineer @ Mindtree (NLP, Image Class, LLMs)"), | |
| ("data scientist machine learning python pytorch", "CAND_0000100", "Amit - Data Scientist @ Microsoft (Python, PostgreSQL)"), | |
| ("full stack developer react node.js python", "CAND_0000044", "Vihaan - Frontend @ TechM (JS, Python)"), | |
| ("full stack developer react node.js python", "CAND_0000065", "Rajesh - Data Scientist @ Google (React, Django)"), | |
| ("full stack developer react node.js python", "CAND_0000014", "Atharv - Frontend @ Zomato (React, BigQuery, OpenCV)"), | |
| ("software engineer with experience", "CAND_0000051", "Deepak - Engineering Manager @ Swiggy (14.8y, CI/CD, Java) - NO career_history"), | |
| ] | |
| print("CROSS-ENCODER TEST RESULTS") | |
| print("="*80) | |
| for query, pid, description in test_cases: | |
| p = profiles.get(pid) | |
| if not p: | |
| print(f"{pid}: NOT FOUND") | |
| continue | |
| # Use score_pair directly | |
| score = reranker.score_pair(query, p.raw_text) | |
| print(f"\nQuery: {query}") | |
| print(f"PID: {pid} β {description}") | |
| print(f"Text: {p.raw_text[:150]}...") | |
| print(f"Score: {score if score is not None else 'N/A'}") | |
| print() | |
| # Also check the relative ordering | |
| print("="*80) | |
| print("RELATIVE ORDERING TEST: query='senior software engineer python java aws'") | |
| print("="*80) | |
| query = "senior software engineer python java aws" | |
| results = [] | |
| for pid in ["CAND_0000088", "CAND_0000100", "CAND_0000025", "CAND_0000044", "CAND_0000065", "CAND_0000055", "CAND_0000057"]: | |
| p = profiles.get(pid) | |
| if p: | |
| score = reranker.score_pair(query, p.raw_text) | |
| p_info = f"{p.personal.name} β {p.professional.current_title} @ {p.professional.current_company}" | |
| results.append((score, pid, p_info)) | |
| results.sort(key=lambda x: -x[0]) | |
| for i, (score, pid, info) in enumerate(results, 1): | |
| print(f" #{i} {pid}: score={score:.4f} β {info}") | |