DawnC commited on
Commit
6d0dd48
·
verified ·
1 Parent(s): 9ca8314

Update breed_recommendation.py

Browse files
Files changed (1) hide show
  1. breed_recommendation.py +17 -28
breed_recommendation.py CHANGED
@@ -182,7 +182,7 @@ def create_recommendation_tab(UserPreferences, get_breed_recommendations, format
182
  # return "Error getting recommendations"
183
 
184
 
185
- def on_find_match_click(*args):
186
  try:
187
  user_prefs = UserPreferences(
188
  living_space=args[0],
@@ -204,24 +204,21 @@ def create_recommendation_tab(UserPreferences, get_breed_recommendations, format
204
 
205
  recommendations = get_breed_recommendations(user_prefs, top_n=10)
206
 
207
- # 確保推薦結果不為空
208
- if not recommendations:
209
- return gr.update(value="No matching breeds found. Please try adjusting your criteria.")
210
-
211
- # 創建完整的歷史記錄結果
212
  history_results = []
213
  for i, rec in enumerate(recommendations, 1):
214
- history_results.append({
215
  'breed': rec['breed'],
216
- 'rank': i, # 確保排名從1開始
217
  'overall_score': rec['final_score'],
218
- 'base_score': rec['base_score'],
219
- 'bonus_score': rec['bonus_score'],
220
- 'scores': rec['scores'],
221
- 'display_score': f"{rec['final_score']*100:.1f}%" # 添加顯示用的分數
222
- })
 
223
 
224
- # 保存完整的搜索記錄
225
  history_component.save_search(
226
  user_preferences={
227
  'living_space': args[0],
@@ -239,25 +236,17 @@ def create_recommendation_tab(UserPreferences, get_breed_recommendations, format
239
  results=history_results
240
  )
241
 
242
- # 生成HTML結果
243
  html_result = format_recommendation_html(recommendations, is_description_search=False)
244
- enhanced_html = f"""
245
- {html_result}
246
- <script>
247
- document.getElementById('recommendation-output').scrollIntoView({{
248
- behavior: 'smooth'
249
- }});
250
- </script>
251
- """
252
 
253
- return gr.update(value=enhanced_html)
 
 
254
 
255
  except Exception as e:
256
  print(f"Error in find match: {str(e)}")
257
- import traceback
258
- print(traceback.format_exc())
259
- return gr.update(value="Error getting recommendations")
260
-
261
 
262
  get_recommendations_btn.click(
263
  fn=on_find_match_click,
 
182
  # return "Error getting recommendations"
183
 
184
 
185
+ def on_find_match_click(*args):
186
  try:
187
  user_prefs = UserPreferences(
188
  living_space=args[0],
 
204
 
205
  recommendations = get_breed_recommendations(user_prefs, top_n=10)
206
 
207
+ # 格式化結果以確保所有必要的資訊都被包含
 
 
 
 
208
  history_results = []
209
  for i, rec in enumerate(recommendations, 1):
210
+ result_entry = {
211
  'breed': rec['breed'],
212
+ 'rank': i,
213
  'overall_score': rec['final_score'],
214
+ 'base_score': rec.get('base_score', 0),
215
+ 'bonus_score': rec.get('bonus_score', 0),
216
+ 'scores': rec.get('scores', {}),
217
+ 'final_score': rec['final_score'] # 確保這個欄位存在
218
+ }
219
+ history_results.append(result_entry)
220
 
221
+ # 保存搜索歷史
222
  history_component.save_search(
223
  user_preferences={
224
  'living_space': args[0],
 
236
  results=history_results
237
  )
238
 
239
+ # 生成 HTML 結果
240
  html_result = format_recommendation_html(recommendations, is_description_search=False)
 
 
 
 
 
 
 
 
241
 
242
+ # 強制更新顯示
243
+ gr.Info("Results updated successfully!")
244
+ return gr.update(value=html_result)
245
 
246
  except Exception as e:
247
  print(f"Error in find match: {str(e)}")
248
+ traceback.print_exc()
249
+ return gr.update(value="Error getting recommendations")
 
 
250
 
251
  get_recommendations_btn.click(
252
  fn=on_find_match_click,