Chittrarasu commited on
Commit
c11261f
·
1 Parent(s): 709b775
Requirements.txt CHANGED
@@ -6,3 +6,4 @@ scikit-learn
6
  numpy
7
  pandas
8
  openpyxl
 
 
6
  numpy
7
  pandas
8
  openpyxl
9
+ numpy
main.py CHANGED
@@ -6,6 +6,7 @@ app = FastAPI()
6
 
7
  # Include the router for SMS endpoints
8
  app.include_router(sms_router)
 
9
  @app.get("/")
10
  def home():
11
 
 
6
 
7
  # Include the router for SMS endpoints
8
  app.include_router(sms_router)
9
+
10
  @app.get("/")
11
  def home():
12
 
models/model_loader.py CHANGED
@@ -1,4 +1,4 @@
1
  from sentence_transformers import SentenceTransformer
2
 
3
  # Load the pre-trained model once at startup
4
- model = SentenceTransformer('Alibaba-NLP/gte-base-en-v1.5', trust_remote_code=True)
 
1
  from sentence_transformers import SentenceTransformer
2
 
3
  # Load the pre-trained model once at startup
4
+ model = SentenceTransformer('Alibaba-NLP/gte-base-en-v1.5', trust_remote_code=True)
routes/sms_router.py CHANGED
@@ -1,23 +1,7 @@
1
  from fastapi import APIRouter, HTTPException
2
- from schemas.schema import SMSRequest
3
- from schemas.schema import EmbeddingResponse
4
- from service.embedded_service import generate_embeddings
5
-
6
- # Initialize Router
7
- router = APIRouter()
8
-
9
- @router.post("/get_embeddings/", response_model=EmbeddingResponse)
10
- async def get_embeddings(sms_request: SMSRequest):
11
- # Check if the input list is not empty
12
- if not sms_request.messages:
13
- raise HTTPException(status_code=400, detail="No messages provided.")
14
-
15
- # Generate embeddings
16
- embeddings = generate_embeddings(sms_request.messages)
17
-
18
- from fastapi import APIRouter, HTTPException
19
- from schemas.schema import SMSRequest, EmbeddingResponse
20
  from service.embedded_service import generate_embeddings
 
21
 
22
  # Initialize Router
23
  router = APIRouter()
@@ -40,3 +24,20 @@ async def get_embeddings(sms_request: SMSRequest):
40
 
41
  # Return the response as per the EmbeddingResponse model
42
  return EmbeddingResponse(dimensions=dimensions, embeddings=embeddings)
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
  from fastapi import APIRouter, HTTPException
2
+ from schemas.schema import SMSRequest, EmbeddingResponse, SimilarityRequest, SimilarityResponse
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
3
  from service.embedded_service import generate_embeddings
4
+ import numpy as np # Import NumPy for cosine similarity calculation
5
 
6
  # Initialize Router
7
  router = APIRouter()
 
24
 
25
  # Return the response as per the EmbeddingResponse model
26
  return EmbeddingResponse(dimensions=dimensions, embeddings=embeddings)
27
+
28
+ @router.post("/calculate_similarity/", response_model=SimilarityResponse)
29
+ async def calculate_similarity(similarity_request: SimilarityRequest):
30
+ # Get embeddings for both messages
31
+ embeddings = generate_embeddings([similarity_request.message1, similarity_request.message2])
32
+
33
+ # Check if embeddings are generated for both messages
34
+ if len(embeddings) != 2:
35
+ raise HTTPException(status_code=500, detail="Failed to generate embeddings for both messages.")
36
+
37
+ # Calculate cosine similarity
38
+ vec1 = np.array(embeddings[0])
39
+ vec2 = np.array(embeddings[1])
40
+ cosine_similarity = np.dot(vec1, vec2) / (np.linalg.norm(vec1) * np.linalg.norm(vec2))
41
+
42
+ # Return response using the SimilarityResponse model
43
+ return SimilarityResponse(similarity_score=float(cosine_similarity))
schemas/schema.py CHANGED
@@ -19,3 +19,10 @@ class EmbeddingResponse(BaseModel):
19
  }
20
  }
21
  )
 
 
 
 
 
 
 
 
19
  }
20
  }
21
  )
22
+
23
+ class SimilarityRequest(BaseModel):
24
+ message1: str
25
+ message2: str
26
+
27
+ class SimilarityResponse(BaseModel):
28
+ similarity_score: float