import base64 import time import markdown from io import BytesIO def image_to_base64(image): buffered = BytesIO() image.save(buffered, format="PNG") img_data = base64.b64encode(buffered.getvalue()).decode() return img_data def get_examples_by_category(evaluation_data, category): return [ex["id"] for ex in evaluation_data if ex["category"] == category] def display_model_responses_html(evaluation_data, responses, model, start_index=0, batch_size=5, category=None): html = "" if category is not None: filtered_data = [ex for ex in evaluation_data if ex["category"] == category] else: filtered_data = evaluation_data for ex in filtered_data[start_index:start_index + batch_size]: image_thumbnail = ex["image_thumbnail"] image_full_url = ex["image_full_url"] prompt = ex["prompt"] category = ex["category"] raw_response = responses[model].get(ex["id"], "(No response)") response_html = markdown.markdown(raw_response, extensions=['fenced_code', 'codehilite']) html += f"""
Category: {category}
Prompt: {prompt}
{model}: {response_html}
' html = f"""Category: {category}
Prompt: {prompt}