from fastapi import FastAPI import models from schema import Prediction from sentence_transformers import util app = FastAPI() @app.get("/") def home_page(): return {"Home": "Welcome to prediction hub"} @app.get("/embeddings") def display_embedding(message : str = "Hello guys enter a text to get embeddings"): try: embedding = models.get_embedding(message) dimension = len(embedding) return {"Dimension" : {dimension : embedding.tolist()}} except Exception as e: return {f"Unable to fetch the embeddings. Error :{e}" } @app.post("/prediction") def display_prediction(prediction : Prediction): message = prediction.message embedding = models.get_embedding([message]) loaded_model = models.load_model('log_reg_model.pkl') result = loaded_model.predict(embedding).tolist() return {"Prediction": f"{message} is a {result}"} @app.post("/cosine_similarity") def display_cosine_similarity(prediction : Prediction): message = prediction.message message_1 = prediction.message_1 embendding = models.get_embedding([message,message_1]) similarity = util.cos_sim(embendding[0], embendding[1]).item() return {f"Cosine Similarity between {message} and {message_1} is" : round(similarity, 4)}