ztwang commited on
Commit
d7a53fe
·
verified ·
1 Parent(s): 8dfc4b5

Upload app.py

Browse files
Files changed (1) hide show
  1. app.py +35 -2
app.py CHANGED
@@ -1,9 +1,28 @@
1
  import gradio as gr
2
  import os
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
3
 
4
  def create_gradio_app():
5
  """
6
- Simple Gradio app to serve the static HTML leaderboard
7
  This is required for Hugging Face Spaces deployment
8
  """
9
 
@@ -19,6 +38,19 @@ def create_gradio_app():
19
  with open('script.js', 'r', encoding='utf-8') as f:
20
  js_content = f.read()
21
 
 
 
 
 
 
 
 
 
 
 
 
 
 
22
  # Combine everything into a single HTML page
23
  combined_html = html_content.replace(
24
  '<link rel="stylesheet" href="style.css">',
@@ -30,8 +62,9 @@ def create_gradio_app():
30
 
31
  # Create the Gradio interface
32
  with gr.Blocks(
33
- title="MCP Benchmark Leaderboard",
34
  theme=gr.themes.Soft(),
 
35
  ) as demo:
36
  gr.HTML(
37
  combined_html,
 
1
  import gradio as gr
2
  import os
3
+ import base64
4
+ from pathlib import Path
5
+
6
+ def encode_image_to_base64(image_path):
7
+ """Convert image to base64 for embedding in HTML"""
8
+ if os.path.exists(image_path):
9
+ with open(image_path, "rb") as img_file:
10
+ encoded = base64.b64encode(img_file.read()).decode()
11
+ # Get file extension
12
+ ext = Path(image_path).suffix.lower()
13
+ mime_type = {
14
+ '.png': 'image/png',
15
+ '.jpg': 'image/jpeg',
16
+ '.jpeg': 'image/jpeg',
17
+ '.gif': 'image/gif',
18
+ '.webp': 'image/webp'
19
+ }.get(ext, 'image/png')
20
+ return f"data:{mime_type};base64,{encoded}"
21
+ return ""
22
 
23
  def create_gradio_app():
24
  """
25
+ Gradio app to serve the static HTML leaderboard with embedded images
26
  This is required for Hugging Face Spaces deployment
27
  """
28
 
 
38
  with open('script.js', 'r', encoding='utf-8') as f:
39
  js_content = f.read()
40
 
41
+ # Convert images to base64 for embedding
42
+ diagram_b64 = encode_image_to_base64('mcp-bench.png')
43
+ ranking_b64 = encode_image_to_base64('ranking.png')
44
+
45
+ # Replace image references with base64 embedded versions
46
+ html_content = html_content.replace(
47
+ 'src="mcp-bench.png"',
48
+ f'src="{diagram_b64}"'
49
+ ).replace(
50
+ 'src="ranking.png"',
51
+ f'src="{ranking_b64}"'
52
+ )
53
+
54
  # Combine everything into a single HTML page
55
  combined_html = html_content.replace(
56
  '<link rel="stylesheet" href="style.css">',
 
62
 
63
  # Create the Gradio interface
64
  with gr.Blocks(
65
+ title="MCP-Bench Leaderboard",
66
  theme=gr.themes.Soft(),
67
+ css="body { margin: 0; padding: 0; }"
68
  ) as demo:
69
  gr.HTML(
70
  combined_html,