File size: 621 Bytes
573502b
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
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