Vela
added function for cosine similarity
e3cf75b
from fastapi import FastAPI, HTTPException
import os
import sys
src_directory = os.path.abspath(os.path.join(os.path.dirname(__file__), "../..", "src"))
sys.path.append(src_directory)
from modules import encoding_model
from schemas.schemas import CosineSimilarity
app = FastAPI()
@app.get("/")
def home():
model = encoding_model.train_model()
return {"message": "Welcome to Prediction Hub"}
@app.get("/dimention")
def display_dimention(message : str = "Hello World"):
try:
no_of_dimention = encoding_model.get_prediction(message)[0]
dimentions = encoding_model.get_prediction(message)[1]
return {"message" : {"Prediction":{no_of_dimention:dimentions}}}
except Exception as e:
return f"Unable to fetch the data {e}"
@app.get("/prediction")
def display_prediction(message : str = "Give me a sms to predict"):
try:
prediction = encoding_model.get_prediction(message)[2]
return {"message" : f"Given sms is a {prediction}"}
except Exception as e:
return f"Unable to fetch the data {e}"
@app.post("/cosine_similarity")
def display_similarity(similarity: CosineSimilarity):
try:
if not similarity.message_1 or not similarity.message_2:
raise HTTPException(status_code=400, detail="Both messages must be non-empty strings.")
cosine_similarity = encoding_model.get_cosine_similarity(similarity.message_1, similarity.message_2)
return {
"message_1": similarity.message_1,
"message_2": similarity.message_2,
"cosine_similarity": cosine_similarity
}
except Exception as e:
raise HTTPException(status_code=500, detail=f"Unable to calculate cosine similarity: {str(e)}")