DawnC commited on
Commit
144eb1a
·
verified ·
1 Parent(s): bb95080

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +16 -9
app.py CHANGED
@@ -467,7 +467,6 @@ async def predict(image):
467
 
468
  dogs_info = ""
469
 
470
- # 在每個品種旁邊生成 Gradio 按鈕
471
  for i, (cropped_image, detection_confidence, box) in enumerate(dogs):
472
  top1_prob, topk_breeds, topk_probs_percent = await predict_single_dog(cropped_image)
473
  color = color_list[i % len(color_list)]
@@ -488,12 +487,11 @@ async def predict(image):
488
  for j, (breed, prob) in enumerate(zip(topk_breeds[:3], topk_probs_percent[:3])):
489
  prob = float(prob.replace('%', ''))
490
 
491
- # 使用 Gradio 內建按鈕,並與回調函數連結
492
- button = gr.Button(f"Learn More about {breed}")
493
- buttons.append(button) # 增加到 buttons 列表中
494
- # 生成表單輸出
495
- dogs_info += f"<li><strong>{breed}</strong> ({prob:.2f}% confidence)</li>"
496
-
497
  dogs_info += "</ul>"
498
 
499
  else:
@@ -501,17 +499,26 @@ async def predict(image):
501
 
502
  dogs_info += '</div>'
503
 
504
- # 更新 Gradio 前端
505
  html_output = f"""
506
  <style>
507
  .dog-info {{ border: 1px solid #ddd; margin-bottom: 20px; padding: 15px; border-radius: 5px; box-shadow: 0 2px 5px rgba(0,0,0,0.1); }}
508
  .dog-info h2 {{ background-color: #f0f0f0; padding: 10px; margin: -15px -15px 15px -15px; border-radius: 5px 5px 0 0; }}
509
  </style>
510
  {dogs_info}
 
 
 
 
 
 
 
 
 
 
511
  """
512
 
513
 
514
-
515
 
516
 
517
 
 
467
 
468
  dogs_info = ""
469
 
 
470
  for i, (cropped_image, detection_confidence, box) in enumerate(dogs):
471
  top1_prob, topk_breeds, topk_probs_percent = await predict_single_dog(cropped_image)
472
  color = color_list[i % len(color_list)]
 
487
  for j, (breed, prob) in enumerate(zip(topk_breeds[:3], topk_probs_percent[:3])):
488
  prob = float(prob.replace('%', ''))
489
 
490
+ # 使用 HTML 按鈕生成
491
+ button_id = f"Dog {i+1}: More about {breed}"
492
+ dogs_info += f"<li><strong>{breed}</strong> ({prob:.2f}% confidence)"
493
+ dogs_info += f'<button style="background-color: #4CAF50; color: white; border: none; padding: 5px 10px; border-radius: 3px; margin-left: 10px;" onclick="handle_button_click(\'{button_id}\')">Learn More</button></li>'
494
+ buttons.append(button_id) # 為每個品種加入按鈕
 
495
  dogs_info += "</ul>"
496
 
497
  else:
 
499
 
500
  dogs_info += '</div>'
501
 
502
+ # 生成 JavaScript 處理點擊事件
503
  html_output = f"""
504
  <style>
505
  .dog-info {{ border: 1px solid #ddd; margin-bottom: 20px; padding: 15px; border-radius: 5px; box-shadow: 0 2px 5px rgba(0,0,0,0.1); }}
506
  .dog-info h2 {{ background-color: #f0f0f0; padding: 10px; margin: -15px -15px 15px -15px; border-radius: 5px 5px 0 0; }}
507
  </style>
508
  {dogs_info}
509
+ <script>
510
+ function handle_button_click(button_id) {{
511
+ const radio = document.querySelector('input[type=radio][value="' + button_id + '"]');
512
+ if (radio) {{
513
+ radio.click(); // 點擊按鈕後觸發事件
514
+ }} else {{
515
+ console.error("Radio button not found:", button_id);
516
+ }}
517
+ }}
518
+ </script>
519
  """
520
 
521
 
 
522
 
523
 
524