| 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 |
|
|