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"""
Example Image

Category: {category}

Prompt: {prompt}

Response:
{response_html}

""" return html def display_example_responses_html(evaluation_data, responses, models, example_id): ex = next(e for e in evaluation_data if e["id"] == example_id) image_thumbnail = ex["image_thumbnail"] image_full_url = ex["image_full_url"] category = ex["category"] prompt = ex["prompt"] responses_html = "" for model in models: response = responses[model].get(example_id, "(No response)") response_html = markdown.markdown(response, extensions=['fenced_code', 'codehilite']) responses_html += f'

{model}: {response_html}

' html = f"""
Example Image

Category: {category}

Prompt: {prompt}

Responses: {responses_html}

""" return html