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

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +9 -17
app.py CHANGED
@@ -467,6 +467,7 @@ async def predict(image):
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)]
@@ -486,14 +487,13 @@ async def predict(image):
486
  dogs_info += f"<p>Top 3 possible breeds:</p><ul>"
487
  for j, (breed, prob) in enumerate(zip(topk_breeds[:3], topk_probs_percent[:3])):
488
  prob = float(prob.replace('%', ''))
489
- button_id = f"Dog {i+1}: More about {breed}"
490
 
491
- # 為每個品種生成按鈕,但不重複加入最下面的 buttons
492
- # 刪除 buttons.append(button_id),因為這是多餘的部分
 
 
 
493
 
494
- # 加入 Learn More 按鈕,並綁定點擊事件
495
- dogs_info += f"<li><strong>{breed}</strong> ({prob:.2f}% confidence)"
496
- 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>'
497
  dogs_info += "</ul>"
498
 
499
  else:
@@ -501,25 +501,17 @@ async def predict(image):
501
 
502
  dogs_info += '</div>'
503
 
504
- # 生成 Javascript 來處理按鈕點擊事件
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
- <script>
512
- function handle_button_click(button_id) {{
513
- const radio = document.querySelector('input[type=radio][value="' + button_id + '"]');
514
- if (radio) {{
515
- radio.click(); // 點擊按鈕後觸發事件
516
- }} else {{
517
- console.error("Radio button not found:", button_id);
518
- }}
519
- }}
520
- </script>
521
  """
522
 
 
 
523
 
524
 
525
 
 
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)]
 
487
  dogs_info += f"<p>Top 3 possible breeds:</p><ul>"
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
 
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