allbibek commited on
Commit
ed66f22
·
verified ·
1 Parent(s): cea444d

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +30 -30
app.py CHANGED
@@ -191,38 +191,38 @@ def hybrid_search_no_gemini(query: str, match_count: int = 50):
191
  pairs = [(query, c["judul"] + " " + c["deskripsi"]) for c in candidates]
192
 
193
  try:
194
- scores = reranker.predict(pairs)
195
- except Exception as e:
196
- print("Reranker error:", e)
197
- return {"results": sorted(candidates, key=lambda x: x.get("similarity", 0), reverse=True)[:10]}
198
-
199
- # Ambil nilai min dan max dari skor RRF bawaan database
200
- db_scores = [c.get("similarity", 0.0) for c in candidates]
201
- db_min = min(db_scores) if db_scores else 0.0
202
- db_max = max(db_scores) if db_scores else 1.0
203
-
204
- for c, s in zip(candidates, scores):
205
- # 1. Probabilitas Reranker (0 sampai 1)
206
- c["rerank_score"] = float(s)
207
- rerank_prob = apply_sigmoid(float(s))
208
- c["rerank_prob"] = rerank_prob
 
 
 
 
 
 
 
209
 
210
- # 2. Normalisasi Skor Database (RRF) ke 0 sampai 1
211
- raw_db_sim = c.get("similarity", 0.0)
212
- if db_max > db_min:
213
- norm_db_sim = (raw_db_sim - db_min) / (db_max - db_min)
214
- else:
215
- norm_db_sim = 0.0
216
-
217
- c["norm_db_sim"] = norm_db_sim # Opsional: simpan untuk debugging
218
-
219
- # 3. Interpolasi yang SEIMBANG
220
- c["final_score"] = (0.6 * rerank_prob) + (0.4 * norm_db_sim)
221
 
222
- # Urutkan berdasarkan final_score
223
- candidates = sorted(candidates, key=lambda x: x["final_score"], reverse=True)
224
-
225
- return {"results": candidates[:10]}
226
 
227
  # ==========================================
228
  # CORE APPS
 
191
  pairs = [(query, c["judul"] + " " + c["deskripsi"]) for c in candidates]
192
 
193
  try:
194
+ scores = reranker.predict(pairs)
195
+ except Exception as e:
196
+ print("Reranker error:", e)
197
+ return {"results": sorted(candidates, key=lambda x: x.get("similarity", 0), reverse=True)[:10]}
198
+
199
+ # Ambil nilai min dan max dari skor RRF bawaan database
200
+ db_scores = [c.get("similarity", 0.0) for c in candidates]
201
+ db_min = min(db_scores) if db_scores else 0.0
202
+ db_max = max(db_scores) if db_scores else 1.0
203
+
204
+ for c, s in zip(candidates, scores):
205
+ # 1. Probabilitas Reranker (0 sampai 1)
206
+ c["rerank_score"] = float(s)
207
+ rerank_prob = apply_sigmoid(float(s))
208
+ c["rerank_prob"] = rerank_prob
209
+
210
+ # 2. Normalisasi Skor Database (RRF) ke 0 sampai 1
211
+ raw_db_sim = c.get("similarity", 0.0)
212
+ if db_max > db_min:
213
+ norm_db_sim = (raw_db_sim - db_min) / (db_max - db_min)
214
+ else:
215
+ norm_db_sim = 0.0
216
 
217
+ c["norm_db_sim"] = norm_db_sim # Opsional: simpan untuk debugging
218
+
219
+ # 3. Interpolasi yang SEIMBANG
220
+ c["final_score"] = (0.6 * rerank_prob) + (0.4 * norm_db_sim)
221
+
222
+ # Urutkan berdasarkan final_score
223
+ candidates = sorted(candidates, key=lambda x: x["final_score"], reverse=True)
 
 
 
 
224
 
225
+ return {"results": candidates[:10]}
 
 
 
226
 
227
  # ==========================================
228
  # CORE APPS