from fastapi import FastAPI from pydantic import BaseModel from typing import List from sentence_transformers import SentenceTransformer from sklearn.metrics.pairwise import cosine_similarity app = FastAPI() model = SentenceTransformer("paraphrase-MiniLM-L3-v2") class SimilarityRequest(BaseModel): ideal_profile: str text_blocks: List[str] @app.post("/similarity") def compute_similarity(req: SimilarityRequest): profile_vec = model.encode(req.ideal_profile) text_vecs = model.encode(req.text_blocks) similarities = cosine_similarity([profile_vec], text_vecs)[0].tolist() return similarities