Joschka Strueber commited on
Commit
88e5618
·
1 Parent(s): ff45ed3

[Fix] rendering issues

Browse files
Files changed (2) hide show
  1. app.py +11 -9
  2. requirements.txt +8 -8
app.py CHANGED
@@ -3,19 +3,18 @@ import plotly.graph_objects as go
3
  import numpy as np
4
  from src.dataloading import get_leaderboard_models_cached, get_leaderboard_datasets
5
 
6
- # Force Plotly to use the iframe renderer
7
  import plotly.io as pio
8
  pio.renderers.default = "iframe"
9
 
10
  def create_heatmap(selected_models, selected_dataset):
11
  if not selected_models or not selected_dataset:
12
- return None
13
-
14
  size = len(selected_models)
15
  similarities = np.random.rand(size, size)
16
  similarities = (similarities + similarities.T) / 2
17
  similarities = np.round(similarities, 2)
18
-
19
  fig = go.Figure(data=go.Heatmap(
20
  z=similarities,
21
  x=selected_models,
@@ -35,6 +34,7 @@ def create_heatmap(selected_models, selected_dataset):
35
  margin=dict(l=100, r=100, t=100, b=100)
36
  )
37
 
 
38
  fig.update_xaxes(
39
  type="category",
40
  categoryorder="array",
@@ -49,8 +49,8 @@ def create_heatmap(selected_models, selected_dataset):
49
  automargin=True
50
  )
51
 
52
- # Return the Plotly figure object directly
53
- return fig
54
 
55
  def validate_inputs(selected_models, selected_dataset):
56
  if not selected_models:
@@ -60,6 +60,7 @@ def validate_inputs(selected_models, selected_dataset):
60
 
61
  with gr.Blocks(title="LLM Similarity Analyzer") as demo:
62
  gr.Markdown("## Model Similarity Comparison Tool")
 
63
  with gr.Row():
64
  dataset_dropdown = gr.Dropdown(
65
  choices=get_leaderboard_datasets(),
@@ -78,7 +79,8 @@ with gr.Blocks(title="LLM Similarity Analyzer") as demo:
78
  )
79
 
80
  generate_btn = gr.Button("Generate Heatmap", variant="primary")
81
- heatmap = gr.Plot(label="Similarity Heatmap", visible=True)
 
82
 
83
  generate_btn.click(
84
  fn=validate_inputs,
@@ -92,10 +94,10 @@ with gr.Blocks(title="LLM Similarity Analyzer") as demo:
92
 
93
  clear_btn = gr.Button("Clear Selection")
94
  clear_btn.click(
95
- lambda: [None, None, None],
96
  outputs=[model_dropdown, dataset_dropdown, heatmap]
97
  )
98
 
99
  if __name__ == "__main__":
100
- # Disable SSR to force client-side rendering on Spaces
101
  demo.launch(ssr_mode=False)
 
3
  import numpy as np
4
  from src.dataloading import get_leaderboard_models_cached, get_leaderboard_datasets
5
 
6
+ # Optionally, force a renderer (may or may not help)
7
  import plotly.io as pio
8
  pio.renderers.default = "iframe"
9
 
10
  def create_heatmap(selected_models, selected_dataset):
11
  if not selected_models or not selected_dataset:
12
+ return "" # Return empty HTML if no input
 
13
  size = len(selected_models)
14
  similarities = np.random.rand(size, size)
15
  similarities = (similarities + similarities.T) / 2
16
  similarities = np.round(similarities, 2)
17
+
18
  fig = go.Figure(data=go.Heatmap(
19
  z=similarities,
20
  x=selected_models,
 
34
  margin=dict(l=100, r=100, t=100, b=100)
35
  )
36
 
37
+ # Force categorical ordering with explicit tick settings.
38
  fig.update_xaxes(
39
  type="category",
40
  categoryorder="array",
 
49
  automargin=True
50
  )
51
 
52
+ # Convert the figure to an HTML string that includes Plotly.js via CDN.
53
+ return fig.to_html(full_html=False, include_plotlyjs="cdn")
54
 
55
  def validate_inputs(selected_models, selected_dataset):
56
  if not selected_models:
 
60
 
61
  with gr.Blocks(title="LLM Similarity Analyzer") as demo:
62
  gr.Markdown("## Model Similarity Comparison Tool")
63
+
64
  with gr.Row():
65
  dataset_dropdown = gr.Dropdown(
66
  choices=get_leaderboard_datasets(),
 
79
  )
80
 
81
  generate_btn = gr.Button("Generate Heatmap", variant="primary")
82
+ # Use an HTML component instead of gr.Plot.
83
+ heatmap = gr.HTML(label="Similarity Heatmap", visible=True)
84
 
85
  generate_btn.click(
86
  fn=validate_inputs,
 
94
 
95
  clear_btn = gr.Button("Clear Selection")
96
  clear_btn.click(
97
+ lambda: [None, None, ""],
98
  outputs=[model_dropdown, dataset_dropdown, heatmap]
99
  )
100
 
101
  if __name__ == "__main__":
102
+ # On Spaces, disable server-side rendering.
103
  demo.launch(ssr_mode=False)
requirements.txt CHANGED
@@ -1,8 +1,8 @@
1
- gradio==3.39.0
2
- numpy==1.21.6
3
- datasets==2.9.0
4
- matplotlib==3.5.2
5
- seaborn==0.11.2
6
- plotly==5.10.0
7
- pandas==1.3.5
8
- scienceplots==1.0.6
 
1
+ gradio
2
+ numpy
3
+ datasets
4
+ matplotlib
5
+ seaborn
6
+ plotly
7
+ pandas
8
+ scienceplots