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