priyanandanwar commited on
Commit
7022d0b
·
verified ·
1 Parent(s): 080688f

Update main.py

Browse files
Files changed (1) hide show
  1. main.py +19 -7
main.py CHANGED
@@ -63,20 +63,32 @@ async def retrieve_trial(request: QueryRequest):
63
 
64
  matched_trials = []
65
  for idx, dist in zip(indices[0], distances[0]):
66
- if idx < len(df_trials): # Ensure index is within bounds
67
  nct_id = df_trials.iloc[idx]["NCT Number"]
68
  trial_data = get_trial_info(nct_id)
69
 
70
  if trial_data:
71
- if not np.isfinite(dist): # FIX: Handle NaN/Inf
72
- print(f"⚠️ Skipping invalid distance: {dist}")
73
- trial_data["similarity"] = 0.0
74
- else:
75
- trial_data["similarity"] = float(round(100 / (1 + dist), 2))
76
 
 
 
 
77
  matched_trials.append(trial_data)
78
 
79
- return {"matched_trials": matched_trials}
 
 
 
 
 
 
 
 
 
 
 
80
 
81
  # --- Root Endpoint ---
82
  @app.get("/")
 
63
 
64
  matched_trials = []
65
  for idx, dist in zip(indices[0], distances[0]):
66
+ if idx < len(df_trials):
67
  nct_id = df_trials.iloc[idx]["NCT Number"]
68
  trial_data = get_trial_info(nct_id)
69
 
70
  if trial_data:
71
+ # **NEW FIX: Ensure distance is a valid number**
72
+ if np.isnan(dist) or np.isinf(dist):
73
+ dist = 1e9 # Set large number instead of NaN/Inf
 
 
74
 
75
+ similarity = float(round(100 / (1 + dist), 2))
76
+ trial_data["similarity"] = max(0.0, similarity) # No negative similarity
77
+
78
  matched_trials.append(trial_data)
79
 
80
+ # **NEW FIX: Convert NaN values to None before returning JSON**
81
+ def clean_json(data):
82
+ if isinstance(data, dict):
83
+ return {k: clean_json(v) for k, v in data.items()}
84
+ elif isinstance(data, list):
85
+ return [clean_json(v) for v in data]
86
+ elif isinstance(data, float) and (np.isnan(data) or np.isinf(data)):
87
+ return None # Convert NaN/Inf to None
88
+ return data
89
+
90
+ return {"matched_trials": clean_json(matched_trials)}
91
+
92
 
93
  # --- Root Endpoint ---
94
  @app.get("/")