Spaces:
Sleeping
Sleeping
Update app.py
Browse files
app.py
CHANGED
@@ -487,9 +487,8 @@ async def predict(image):
|
|
487 |
for j, (breed, prob) in enumerate(zip(topk_breeds[:3], topk_probs_percent[:3])):
|
488 |
prob = float(prob.replace('%', ''))
|
489 |
|
490 |
-
#
|
491 |
button_id = f"Dog {i+1}: More about {breed}"
|
492 |
-
# 在這裡避免不必要的 buttons.append(button_id)
|
493 |
dogs_info += f"<li><strong>{breed}</strong> ({prob:.2f}% confidence)"
|
494 |
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>'
|
495 |
dogs_info += "</ul>"
|
@@ -499,18 +498,24 @@ async def predict(image):
|
|
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 |
}}
|
@@ -520,6 +525,7 @@ async def predict(image):
|
|
520 |
|
521 |
|
522 |
|
|
|
523 |
initial_state = {
|
524 |
"dogs_info": dogs_info,
|
525 |
"buttons": buttons,
|
|
|
487 |
for j, (breed, prob) in enumerate(zip(topk_breeds[:3], topk_probs_percent[:3])):
|
488 |
prob = float(prob.replace('%', ''))
|
489 |
|
490 |
+
# 為每個品種生成一個唯一的 button_id,並附加 Learn More 按鈕
|
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 |
dogs_info += "</ul>"
|
|
|
498 |
|
499 |
dogs_info += '</div>'
|
500 |
|
501 |
+
# 生成 JavaScript 來處理按鈕點擊事件
|
502 |
html_output = f"""
|
503 |
<style>
|
504 |
.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); }}
|
505 |
.dog-info h2 {{ background-color: #f0f0f0; padding: 10px; margin: -15px -15px 15px -15px; border-radius: 5px 5px 0 0; }}
|
506 |
+
.breed-button {{ background-color: #4CAF50; color: white; padding: 5px 10px; border-radius: 3px; border: none; cursor: pointer; margin-left: 10px; }}
|
507 |
+
.breed-button:hover {{ background-color: #45a049; }}
|
508 |
</style>
|
509 |
+
|
510 |
{dogs_info}
|
511 |
+
|
512 |
<script>
|
513 |
function handle_button_click(button_id) {{
|
514 |
+
// 嘗試選擇 radio 按鈕並觸發點擊事件
|
515 |
const radio = document.querySelector('input[type=radio][value="' + button_id + '"]');
|
516 |
if (radio) {{
|
517 |
+
radio.click(); // 點擊對應的 radio 按鈕
|
518 |
+
console.log('Button clicked: ' + button_id); // 檢查按鈕點擊事件是否正確觸發
|
519 |
}} else {{
|
520 |
console.error("Radio button not found:", button_id);
|
521 |
}}
|
|
|
525 |
|
526 |
|
527 |
|
528 |
+
|
529 |
initial_state = {
|
530 |
"dogs_info": dogs_info,
|
531 |
"buttons": buttons,
|