Spaces:
No application file
No application file
smile
commited on
Commit
·
e7d518b
1
Parent(s):
f646fc1
Update dependeies and filter logic.
Browse files- app/backend/data_engine.py +2 -2
- app/ui/component/filter_component.py +1 -2
- app/ui/component/subtabs_component.py +8 -3
- app/ui/home.py +31 -15
- requirements.txt +1 -2
- utils/cache_decorator.py +21 -8
app/backend/data_engine.py
CHANGED
@@ -7,7 +7,7 @@ from typing import List
|
|
7 |
import pandas as pd
|
8 |
|
9 |
from app.backend.constant import ModelProvider
|
10 |
-
from utils.cache_decorator import
|
11 |
|
12 |
COLUMNS = ['model_name', 'group_name', 'leaderboard', 'dataset_name',
|
13 |
'embd_dtype', 'embd_dim', 'num_params', 'max_tokens', 'similarity',
|
@@ -75,7 +75,7 @@ class DataEngine:
|
|
75 |
return True
|
76 |
return organization in providers
|
77 |
|
78 |
-
@
|
79 |
def jsons_to_df(self):
|
80 |
|
81 |
results_list = self.results
|
|
|
7 |
import pandas as pd
|
8 |
|
9 |
from app.backend.constant import ModelProvider
|
10 |
+
from utils.cache_decorator import cache_df_with_custom_key
|
11 |
|
12 |
COLUMNS = ['model_name', 'group_name', 'leaderboard', 'dataset_name',
|
13 |
'embd_dtype', 'embd_dim', 'num_params', 'max_tokens', 'similarity',
|
|
|
75 |
return True
|
76 |
return organization in providers
|
77 |
|
78 |
+
@cache_df_with_custom_key("json_result")
|
79 |
def jsons_to_df(self):
|
80 |
|
81 |
results_list = self.results
|
app/ui/component/filter_component.py
CHANGED
@@ -20,7 +20,7 @@ class FilterComponent:
|
|
20 |
self.embd_dims = embd_dims
|
21 |
self.similarities = similarities
|
22 |
|
23 |
-
def _validate_input(self,value:str):
|
24 |
if value == "":
|
25 |
return value
|
26 |
try:
|
@@ -95,5 +95,4 @@ class FilterComponent:
|
|
95 |
scale=2,
|
96 |
)
|
97 |
|
98 |
-
|
99 |
return navigations, model_provides, evaluation_metrics, embd_dtypes, embd_dims, similarities, max_tokens
|
|
|
20 |
self.embd_dims = embd_dims
|
21 |
self.similarities = similarities
|
22 |
|
23 |
+
def _validate_input(self, value: str):
|
24 |
if value == "":
|
25 |
return value
|
26 |
try:
|
|
|
95 |
scale=2,
|
96 |
)
|
97 |
|
|
|
98 |
return navigations, model_provides, evaluation_metrics, embd_dtypes, embd_dims, similarities, max_tokens
|
app/ui/component/subtabs_component.py
CHANGED
@@ -12,7 +12,7 @@ class SubtabsComponent:
|
|
12 |
self.data_engine = data_engine
|
13 |
|
14 |
def show(self, navigations: str = None, model_provides: List = None, evaluation_metrics: str = None,
|
15 |
-
embd_dtypes: str = None, embd_dims: List = None, similarity: str = None, max_tokens:
|
16 |
|
17 |
df_result = self.data_engine.jsons_to_df()
|
18 |
|
@@ -39,7 +39,9 @@ class SubtabsComponent:
|
|
39 |
gr_df = gr.Dataframe(
|
40 |
df_leaderboard,
|
41 |
datatype=COLUMNS_TYPES,
|
42 |
-
interactive=
|
|
|
|
|
43 |
)
|
44 |
|
45 |
items.append(gr_df)
|
@@ -50,7 +52,10 @@ class SubtabsComponent:
|
|
50 |
gr_df = gr.Dataframe(
|
51 |
df,
|
52 |
datatype=COLUMNS_TYPES,
|
53 |
-
interactive=
|
|
|
|
|
|
|
54 |
)
|
55 |
items.append(gr_df)
|
56 |
items.append(column)
|
|
|
12 |
self.data_engine = data_engine
|
13 |
|
14 |
def show(self, navigations: str = None, model_provides: List = None, evaluation_metrics: str = None,
|
15 |
+
embd_dtypes: str = None, embd_dims: List = None, similarity: str = None, max_tokens: int = None):
|
16 |
|
17 |
df_result = self.data_engine.jsons_to_df()
|
18 |
|
|
|
39 |
gr_df = gr.Dataframe(
|
40 |
df_leaderboard,
|
41 |
datatype=COLUMNS_TYPES,
|
42 |
+
# interactive=True,
|
43 |
+
|
44 |
+
type="pandas"
|
45 |
)
|
46 |
|
47 |
items.append(gr_df)
|
|
|
52 |
gr_df = gr.Dataframe(
|
53 |
df,
|
54 |
datatype=COLUMNS_TYPES,
|
55 |
+
# interactive=True,
|
56 |
+
height=500,
|
57 |
+
type="pandas"
|
58 |
+
|
59 |
)
|
60 |
items.append(gr_df)
|
61 |
items.append(column)
|
app/ui/home.py
CHANGED
@@ -1,3 +1,5 @@
|
|
|
|
|
|
1 |
import pandas as pd
|
2 |
|
3 |
from app.backend.constant import Navigation, ModelProvider, EvaluationMetric, EmbdDtype, EmbdDim, Similarity
|
@@ -11,6 +13,7 @@ import gradio as gr
|
|
11 |
NUM_DATASETS = 1
|
12 |
NUM_SCORES = 2
|
13 |
NUM_MODELS = 3
|
|
|
14 |
|
15 |
|
16 |
def init_home():
|
@@ -46,20 +49,33 @@ def init_home():
|
|
46 |
inputs=[navigations, model_provides, evaluation_metrics, embd_dtypes, embd_dims, similarities,
|
47 |
max_tokens], outputs=columns)
|
48 |
|
49 |
-
|
50 |
-
|
51 |
-
|
52 |
-
|
53 |
-
|
54 |
-
|
55 |
-
|
56 |
-
|
57 |
-
|
58 |
-
|
59 |
-
|
60 |
-
|
61 |
-
|
62 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
63 |
|
64 |
-
block.queue(max_size=
|
65 |
return block
|
|
|
1 |
+
import time
|
2 |
+
|
3 |
import pandas as pd
|
4 |
|
5 |
from app.backend.constant import Navigation, ModelProvider, EvaluationMetric, EmbdDtype, EmbdDim, Similarity
|
|
|
13 |
NUM_DATASETS = 1
|
14 |
NUM_SCORES = 2
|
15 |
NUM_MODELS = 3
|
16 |
+
HANDLING = False
|
17 |
|
18 |
|
19 |
def init_home():
|
|
|
49 |
inputs=[navigations, model_provides, evaluation_metrics, embd_dtypes, embd_dims, similarities,
|
50 |
max_tokens], outputs=columns)
|
51 |
|
52 |
+
navigations.change(trigger_mode="once", fn=sub_tabs.show,
|
53 |
+
inputs=[navigations, model_provides, evaluation_metrics, embd_dtypes, embd_dims,
|
54 |
+
similarities,
|
55 |
+
max_tokens], outputs=columns)
|
56 |
+
model_provides.change(trigger_mode="once", fn=sub_tabs.show,
|
57 |
+
inputs=[navigations, model_provides, evaluation_metrics, embd_dtypes, embd_dims,
|
58 |
+
similarities,
|
59 |
+
max_tokens], outputs=columns)
|
60 |
+
evaluation_metrics.change(trigger_mode="once", fn=sub_tabs.show,
|
61 |
+
inputs=[navigations, model_provides, evaluation_metrics, embd_dtypes, embd_dims,
|
62 |
+
similarities,
|
63 |
+
max_tokens], outputs=columns)
|
64 |
+
embd_dtypes.change(trigger_mode="once", fn=sub_tabs.show,
|
65 |
+
inputs=[navigations, model_provides, evaluation_metrics, embd_dtypes, embd_dims,
|
66 |
+
similarities,
|
67 |
+
max_tokens], outputs=columns)
|
68 |
+
embd_dims.change(trigger_mode="once", fn=sub_tabs.show,
|
69 |
+
inputs=[navigations, model_provides, evaluation_metrics, embd_dtypes, embd_dims, similarities,
|
70 |
+
max_tokens], outputs=columns)
|
71 |
+
|
72 |
+
similarities.change(trigger_mode="once", fn=sub_tabs.show,
|
73 |
+
inputs=[navigations, model_provides, evaluation_metrics, embd_dtypes, embd_dims,
|
74 |
+
similarities,
|
75 |
+
max_tokens], outputs=columns)
|
76 |
+
max_tokens.change(trigger_mode="always_last", fn=sub_tabs.show,
|
77 |
+
inputs=[navigations, model_provides, evaluation_metrics, embd_dtypes, embd_dims, similarities,
|
78 |
+
max_tokens], outputs=columns)
|
79 |
|
80 |
+
block.queue(max_size=1)
|
81 |
return block
|
requirements.txt
CHANGED
@@ -1,4 +1,3 @@
|
|
1 |
-
gradio==4.
|
2 |
uvicorn>=0.14.0
|
3 |
fastapi<0.113.0
|
4 |
-
cachetools==5.5.0
|
|
|
1 |
+
gradio==4.20.0
|
2 |
uvicorn>=0.14.0
|
3 |
fastapi<0.113.0
|
|
utils/cache_decorator.py
CHANGED
@@ -3,23 +3,36 @@
|
|
3 |
# @Author : q275343119
|
4 |
# @File : cache_decorator.py
|
5 |
# @Description:
|
6 |
-
|
7 |
from functools import wraps
|
|
|
8 |
|
9 |
-
CACHE =
|
|
|
10 |
|
11 |
|
12 |
-
def
|
13 |
def decorator(func):
|
14 |
@wraps(func)
|
15 |
def wrapper(*args, **kwargs):
|
16 |
-
if cache_key in CACHE:
|
17 |
-
return CACHE[cache_key]
|
18 |
|
19 |
-
result = func(*args, **kwargs)
|
20 |
-
|
21 |
-
|
|
|
|
|
|
|
|
|
|
|
22 |
|
23 |
return wrapper
|
24 |
|
25 |
return decorator
|
|
|
|
|
|
|
|
|
|
|
|
|
|
3 |
# @Author : q275343119
|
4 |
# @File : cache_decorator.py
|
5 |
# @Description:
|
6 |
+
import time
|
7 |
from functools import wraps
|
8 |
+
import pandas as pd
|
9 |
|
10 |
+
CACHE = {}
|
11 |
+
TTL = 3600
|
12 |
|
13 |
|
14 |
+
def cache_df_with_custom_key(cache_key: str):
|
15 |
def decorator(func):
|
16 |
@wraps(func)
|
17 |
def wrapper(*args, **kwargs):
|
18 |
+
if cache_key in CACHE and CACHE[cache_key].get("expiry") - time.time() < TTL:
|
19 |
+
return CACHE[cache_key]["data"]
|
20 |
|
21 |
+
result: pd.DataFrame = func(*args, **kwargs)
|
22 |
+
if result is not None and not result.empty:
|
23 |
+
d = {"expiry": time.time(), "data": result}
|
24 |
+
CACHE[cache_key] = d
|
25 |
+
return result
|
26 |
+
|
27 |
+
CACHE[cache_key]["expiry"] += TTL
|
28 |
+
return CACHE[cache_key]["data"]
|
29 |
|
30 |
return wrapper
|
31 |
|
32 |
return decorator
|
33 |
+
|
34 |
+
|
35 |
+
if __name__ == '__main__':
|
36 |
+
a = time.time()
|
37 |
+
time.sleep(5)
|
38 |
+
print(time.time() - a)
|