Spaces:
Running
on
Zero
Running
on
Zero
Update app.py
Browse files
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 |
-
|
|
|
501 |
dogs_info += "</ul>"
|
502 |
|
503 |
else:
|
@@ -505,7 +503,7 @@ async def predict(image):
|
|
505 |
|
506 |
dogs_info += '</div>'
|
507 |
|
508 |
-
#
|
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 |
-
|
522 |
-
|
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,
|