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