DawnC commited on
Commit
2914182
ยท
1 Parent(s): 357a5bc

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +8 -17
app.py CHANGED
@@ -472,6 +472,7 @@ async def predict(image):
472
  dogs_info = ""
473
  buttons = [] # ๅ„ฒๅญ˜ๅ”ฏไธ€็š„ๆŒ‰้ˆ• ID
474
 
 
475
  for i, (cropped_image, detection_confidence, box) in enumerate(dogs):
476
  top1_prob, topk_breeds, topk_probs_percent = await predict_single_dog(cropped_image)
477
  color = color_list[i % len(color_list)]
@@ -491,13 +492,10 @@ async def predict(image):
491
  dogs_info += f"<p>Top 3 possible breeds:</p><ul>"
492
  for j, (breed, prob) in enumerate(zip(topk_breeds[:3], topk_probs_percent[:3])):
493
  prob = float(prob.replace('%', ''))
494
-
495
- # ็‚บๆฏๅ€‹ๅ“็จฎ็”Ÿๆˆๅ”ฏไธ€็š„ button_id๏ผŒไธฆ้™„ๅŠ  Learn More ๆŒ‰้ˆ•
496
  button_id = f"Dog {i+1}: More about {breed}"
497
- if button_id not in buttons:
498
- buttons.append(button_id) # ็ขบไฟไธ้‡่ค‡ๆทปๅŠ ๆŒ‰้ˆ•
499
  dogs_info += f"<li><strong>{breed}</strong> ({prob:.2f}% confidence)"
500
- dogs_info += f'<button class="breed-button" id="{button_id}" 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>'
 
501
  dogs_info += "</ul>"
502
 
503
  else:
@@ -505,7 +503,7 @@ async def predict(image):
505
 
506
  dogs_info += '</div>'
507
 
508
- # ็”Ÿๆˆ JavaScript ่™•็†ๆŒ‰้ˆ•้ปžๆ“Šไบ‹ไปถ
509
  html_output = f"""
510
  <style>
511
  .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); }}
@@ -517,22 +515,15 @@ async def predict(image):
517
  {dogs_info}
518
 
519
  <script>
520
- // ็‚บๆ‰€ๆœ‰็”Ÿๆˆ็š„ๆŒ‰้ˆ•้™„ๅŠ ไบ‹ไปถ็›ฃ่ฝๅ™จ
521
- document.querySelectorAll('button[id^="Dog"]').forEach(button => {{
522
- button.addEventListener('click', () => {{
523
- const button_id = button.id;
524
- const radio = document.querySelector('input[type=radio][value="' + button_id + '"]');
525
- if (radio) {{
526
- radio.click(); // ่งธ็™ผ Radio ๆŒ‰้ˆ•้ธๆ“‡
527
- console.log('Button clicked: ' + button_id);
528
- }} else {{
529
- console.error("Radio button not found:", button_id);
530
- }}
531
  }});
532
  }});
533
  </script>
534
  """
535
 
 
536
  initial_state = {
537
  "dogs_info": dogs_info,
538
  "buttons": buttons,
 
472
  dogs_info = ""
473
  buttons = [] # ๅ„ฒๅญ˜ๅ”ฏไธ€็š„ๆŒ‰้ˆ• ID
474
 
475
+ # ๅœจๆฏๅ€‹ๅ“็จฎๆ—้‚Š็”ŸๆˆๆŒ‰้ˆ•
476
  for i, (cropped_image, detection_confidence, box) in enumerate(dogs):
477
  top1_prob, topk_breeds, topk_probs_percent = await predict_single_dog(cropped_image)
478
  color = color_list[i % len(color_list)]
 
492
  dogs_info += f"<p>Top 3 possible breeds:</p><ul>"
493
  for j, (breed, prob) in enumerate(zip(topk_breeds[:3], topk_probs_percent[:3])):
494
  prob = float(prob.replace('%', ''))
 
 
495
  button_id = f"Dog {i+1}: More about {breed}"
 
 
496
  dogs_info += f"<li><strong>{breed}</strong> ({prob:.2f}% confidence)"
497
+ # ๅฐ‡ Learn More ๆŒ‰้ˆ•ๆ”น็‚บๆŒ‰้ˆ•้‚่ผฏ
498
+ dogs_info += f'<button class="breed-button" style="background-color: #4CAF50; color: white; padding: 5px 10px; border-radius: 3px; margin-left: 10px;" onclick="document.querySelector(\'input[value=\'{button_id}\']\').click()">Learn More</button></li>'
499
  dogs_info += "</ul>"
500
 
501
  else:
 
503
 
504
  dogs_info += '</div>'
505
 
506
+ # ๅœจ็”ŸๆˆๅพŒ้™„ๅŠ  JavaScript ่™•็†ๆŒ‰้ˆ•้ปžๆ“Šไบ‹ไปถ
507
  html_output = f"""
508
  <style>
509
  .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); }}
 
515
  {dogs_info}
516
 
517
  <script>
518
+ document.querySelectorAll('.breed-button').forEach(button => {{
519
+ button.addEventListener('click', (event) => {{
520
+ console.log('Button clicked:', event.target.innerText);
 
 
 
 
 
 
 
 
521
  }});
522
  }});
523
  </script>
524
  """
525
 
526
+
527
  initial_state = {
528
  "dogs_info": dogs_info,
529
  "buttons": buttons,