Sachin-kumar/STS
0
1import torch2from fastapi import FastAPI3from pydantic import BaseModel4from sentence_transformers import SentenceTransformer, util5import os6 7os.environ["OMP_NUM_THREADS"] = "1"8os.environ["TOKENIZERS_PARALLELISM"] = "false"9 10app = FastAPI()11 12model = SentenceTransformer("LaBSE")13model = model.half() if torch.cuda.is_available() else model14 15class TextPair(BaseModel):16 text1: str17 text2: str18 19def similarity_score(text1, text2):20 emb1 = model.encode(text1, convert_to_tensor=True)21 emb2 = model.encode(text2, convert_to_tensor=True)22 score = util.pytorch_cos_sim(emb1, emb2).item()23 score = (score + 1) / 2 # normalize to 0–124 return round(score, 3)25 26@app.get("/")27def home():28 return {"message": "App is running! Use POST / to get similarity score."}29 30@app.post("/")31async def get_similarity(data: TextPair):32 score = similarity_score(data.text1, data.text2)33 return {"similarity score": score}34 35 36@app.post("/")37async def get_similarity(data: TextPair):38 score = similarity_score(data.text1, data.text2)39 return {"similarity score": score}40 