Spaces:
Runtime error
Runtime error
| import gradio as gr | |
| LABEL_BAR_FORMAT = ''' | |
| <div | |
| class="flex items-start justify-between font-mono text-sm leading-none group dark:text-slate-300" | |
| > | |
| <div class="flex-1" > | |
| <div | |
| class="h-1 mb-1 rounded {fill_type} bg-gradient-to-r group-hover:from-orange-500 from-orange-400 to-orange-200 dark:from-orange-400 dark:to-orange-600" | |
| style="width: {percentage_score}%" | |
| /> | |
| <div | |
| class="flex items-baseline space-x-2 group-hover:text-orange-500" | |
| > | |
| <div class="leading-snug" style="margin-top:4px">{label_name}</div> | |
| <div class="flex-1 border border-dashed border-gray-100 px-4" /> | |
| <div class="text-right ml-auto"> | |
| {percentage_score}% | |
| </div> | |
| </div> | |
| </div> | |
| </div> | |
| <br> | |
| <div class="leading-snug" style="font-size: 0.8em; {desc_is_visible}"> {label_desc}</div> | |
| <br> | |
| <br> | |
| ''' | |
| HTML_FORMAT = ''' | |
| <style> | |
| .correct_style { | |
| background-image: linear-gradient(to right, rgba(0,150,36,1), rgba(0, 178, 72,1)); | |
| } | |
| .correct_style:hover { | |
| background-image: linear-gradient(to right, rgba(0,150,36,1), rgba(0, 178, 72,0.1)); | |
| } | |
| .incorrect_style { | |
| background-image: linear-gradient(to right, rgba(127,0,0,1), rgba(154, 0, 7,1)); | |
| } | |
| .incorrect_style:hover { | |
| background-image: linear-gradient(to right, rgba(127,0,0,1), rgba(154, 0, 7,0.1)); | |
| } | |
| </style> | |
| <div class="output-label"> | |
| <div | |
| class="output-class font-bold text-2xl py-6 px-4 flex-grow flex items-center justify-center dark:text-slate-200" | |
| > | |
| {heading} | |
| </div> | |
| {LABEL_BARS} | |
| </div> | |
| ''' | |
| def format_labels_html(predictions, desc_is_visible = True): | |
| html_text = HTML_FORMAT | |
| if 'label' in predictions: | |
| x, y = len(set(predictions['preds'].keys()).intersection(predictions['label'])), len(predictions['label']) | |
| if y == 0: | |
| html_text = html_text.replace('{heading}', f'No Gold Labels Found!') | |
| else: | |
| html_text = html_text.replace('{heading}', f'{x}/{y} Correct in top 5 Predictions !') | |
| else: | |
| html_text = html_text.replace('{heading}', f'Top {len(predictions["preds"])} Labels Predicted') | |
| label_html_text = "" | |
| for i, p in enumerate(predictions['preds']): | |
| addn = '\n' + LABEL_BAR_FORMAT.replace('{percentage_score}', f'{int(predictions["preds"][p] * 100)}').replace('{label_name}', p) | |
| if 'label' in predictions: | |
| if p in predictions['label']: | |
| # print('True label encountered') | |
| addn = addn.replace('{fill_type}','correct_style') | |
| else: | |
| addn = addn.replace('{fill_type}','incorrect_style') | |
| else: | |
| addn = addn.replace('{fill_type}','') | |
| if 'descs' in predictions: | |
| if desc_is_visible: | |
| addn = addn.replace('{desc_is_visible}','') | |
| else: | |
| addn = addn.replace('{desc_is_visible}','display:none;') | |
| addn = addn.replace('{label_desc}',predictions['descs'][p]) | |
| else: | |
| addn = addn.replace('{desc_is_visible}','display:none;') | |
| label_html_text+=addn | |
| html_text = html_text.replace('{LABEL_BARS}', label_html_text) | |
| # print(html_text) | |
| return html_text |