Spaces:
Runtime error
Runtime error
Commit
·
a3665b7
1
Parent(s):
bfb7d4e
Added link
Browse files- app.py +24 -22
- src/leaderboard/build_leaderboard.py +2 -2
app.py
CHANGED
|
@@ -45,7 +45,12 @@ download_meta()
|
|
| 45 |
|
| 46 |
def build_demo():
|
| 47 |
demo = gr.Blocks(title="Chatbot Arena Leaderboard", css=custom_css)
|
| 48 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 49 |
with demo:
|
| 50 |
gr.HTML(TITLE)
|
| 51 |
gr.Markdown(INTRODUCTION_TEXT, elem_classes="markdown-text")
|
|
@@ -79,6 +84,7 @@ def build_demo():
|
|
| 79 |
with gr.Column():
|
| 80 |
model_name_textbox = gr.Textbox(label="Model name")
|
| 81 |
submitter_username = gr.Textbox(label="Username") # can we get this info from hf??
|
|
|
|
| 82 |
|
| 83 |
def upload_file(file):
|
| 84 |
file_name = file.name.split("/")[-1] if "/" in file.name else file.name
|
|
@@ -94,6 +100,7 @@ def build_demo():
|
|
| 94 |
"model_name": model_name_textbox,
|
| 95 |
"username": submitter_username,
|
| 96 |
"file_name": file_name,
|
|
|
|
| 97 |
}
|
| 98 |
|
| 99 |
current_info.append(submit_info)
|
|
@@ -121,16 +128,7 @@ def build_demo():
|
|
| 121 |
repo_type="dataset",
|
| 122 |
token=HF_TOKEN_PRIVATE,
|
| 123 |
)
|
| 124 |
-
|
| 125 |
-
file.write("1")
|
| 126 |
-
API.upload_file(
|
| 127 |
-
path_or_fileobj=PERSISTENT_FILE_CHECK,
|
| 128 |
-
path_in_repo=PERSISTENT_FILE_CHECK,
|
| 129 |
-
repo_id=METAINFO_DATASET,
|
| 130 |
-
repo_type="dataset",
|
| 131 |
-
token=HF_TOKEN_PRIVATE,
|
| 132 |
-
)
|
| 133 |
-
os.environ[RESET_JUDGEMENT_ENV] = "1"
|
| 134 |
return file.name
|
| 135 |
|
| 136 |
if model_name_textbox and submitter_username:
|
|
@@ -152,14 +150,26 @@ def update_board():
|
|
| 152 |
# the state is checked by the the file PERSISTENT_FILE_CHECK
|
| 153 |
# very bad solution
|
| 154 |
# but a fast one to code
|
| 155 |
-
need_reset = os.environ
|
| 156 |
logging.info("Updating the judgement: %s", need_reset)
|
| 157 |
if need_reset != "1":
|
| 158 |
return
|
| 159 |
-
os.environ[RESET_JUDGEMENT_ENV] = "0"
|
| 160 |
API.restart_space(repo_id=REPO_ID, token=H4_TOKEN)
|
| 161 |
|
| 162 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 163 |
if __name__ == "__main__":
|
| 164 |
os.environ[RESET_JUDGEMENT_ENV] = "0"
|
| 165 |
|
|
@@ -186,15 +196,7 @@ if __name__ == "__main__":
|
|
| 186 |
# may lead to multiple attempts to get judements
|
| 187 |
# if code above throws error
|
| 188 |
# move to before judgement to saafeguard from that
|
| 189 |
-
|
| 190 |
-
file.write("0")
|
| 191 |
-
API.upload_file(
|
| 192 |
-
path_or_fileobj=PERSISTENT_FILE_CHECK_PATH,
|
| 193 |
-
path_in_repo=PERSISTENT_FILE_CHECK,
|
| 194 |
-
repo_id=METAINFO_DATASET,
|
| 195 |
-
repo_type="dataset",
|
| 196 |
-
token=HF_TOKEN_PRIVATE,
|
| 197 |
-
)
|
| 198 |
|
| 199 |
scheduler = BackgroundScheduler()
|
| 200 |
scheduler.add_job(update_board, "interval", minutes=10)
|
|
|
|
| 45 |
|
| 46 |
def build_demo():
|
| 47 |
demo = gr.Blocks(title="Chatbot Arena Leaderboard", css=custom_css)
|
| 48 |
+
try:
|
| 49 |
+
leaderboard_df = build_leadearboard_df()
|
| 50 |
+
except FileNotFoundError:
|
| 51 |
+
change_judgement(1)
|
| 52 |
+
return
|
| 53 |
+
|
| 54 |
with demo:
|
| 55 |
gr.HTML(TITLE)
|
| 56 |
gr.Markdown(INTRODUCTION_TEXT, elem_classes="markdown-text")
|
|
|
|
| 84 |
with gr.Column():
|
| 85 |
model_name_textbox = gr.Textbox(label="Model name")
|
| 86 |
submitter_username = gr.Textbox(label="Username") # can we get this info from hf??
|
| 87 |
+
model_link_web = gr.Textbox(label="Link to Model") # can we get this info from hf??
|
| 88 |
|
| 89 |
def upload_file(file):
|
| 90 |
file_name = file.name.split("/")[-1] if "/" in file.name else file.name
|
|
|
|
| 100 |
"model_name": model_name_textbox,
|
| 101 |
"username": submitter_username,
|
| 102 |
"file_name": file_name,
|
| 103 |
+
"link": model_link_web if model_link_web else "",
|
| 104 |
}
|
| 105 |
|
| 106 |
current_info.append(submit_info)
|
|
|
|
| 128 |
repo_type="dataset",
|
| 129 |
token=HF_TOKEN_PRIVATE,
|
| 130 |
)
|
| 131 |
+
change_judgement(1)
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 132 |
return file.name
|
| 133 |
|
| 134 |
if model_name_textbox and submitter_username:
|
|
|
|
| 150 |
# the state is checked by the the file PERSISTENT_FILE_CHECK
|
| 151 |
# very bad solution
|
| 152 |
# but a fast one to code
|
| 153 |
+
need_reset = os.environ[RESET_JUDGEMENT_ENV] == "1"
|
| 154 |
logging.info("Updating the judgement: %s", need_reset)
|
| 155 |
if need_reset != "1":
|
| 156 |
return
|
|
|
|
| 157 |
API.restart_space(repo_id=REPO_ID, token=H4_TOKEN)
|
| 158 |
|
| 159 |
|
| 160 |
+
def change_judgement(need_recalc_state=0):
|
| 161 |
+
with open(PERSISTENT_FILE_CHECK_PATH, "w", encoding="utf-8") as file:
|
| 162 |
+
file.write(str(need_recalc_state))
|
| 163 |
+
API.upload_file(
|
| 164 |
+
path_or_fileobj=PERSISTENT_FILE_CHECK_PATH,
|
| 165 |
+
path_in_repo=PERSISTENT_FILE_CHECK,
|
| 166 |
+
repo_id=METAINFO_DATASET,
|
| 167 |
+
repo_type="dataset",
|
| 168 |
+
token=HF_TOKEN_PRIVATE,
|
| 169 |
+
)
|
| 170 |
+
os.environ[RESET_JUDGEMENT_ENV] = str(need_recalc_state)
|
| 171 |
+
|
| 172 |
+
|
| 173 |
if __name__ == "__main__":
|
| 174 |
os.environ[RESET_JUDGEMENT_ENV] = "0"
|
| 175 |
|
|
|
|
| 196 |
# may lead to multiple attempts to get judements
|
| 197 |
# if code above throws error
|
| 198 |
# move to before judgement to saafeguard from that
|
| 199 |
+
change_judgement(0)
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 200 |
|
| 201 |
scheduler = BackgroundScheduler()
|
| 202 |
scheduler.add_job(update_board, "interval", minutes=10)
|
src/leaderboard/build_leaderboard.py
CHANGED
|
@@ -64,8 +64,8 @@ def build_leadearboard_df():
|
|
| 64 |
battle_info = pd.DataFrame.from_records(json.load(eval_file))[["model", "score", "lower", "upper"]]
|
| 65 |
with open(f"{DATA_PATH}/{SUBMITS_META_FILE}", "r", encoding="utf-8") as submit_meta_file:
|
| 66 |
submit_info = pd.DataFrame.from_records(
|
| 67 |
-
json.load(submit_meta_file), columns=["model_name", "username", "file_name"]
|
| 68 |
-
)[["model_name", "username", "file_name"]]
|
| 69 |
|
| 70 |
# Merge the DataFrames
|
| 71 |
merged_df = pd.merge(battle_info, submit_info, how="left", left_on="model", right_on="model_name")
|
|
|
|
| 64 |
battle_info = pd.DataFrame.from_records(json.load(eval_file))[["model", "score", "lower", "upper"]]
|
| 65 |
with open(f"{DATA_PATH}/{SUBMITS_META_FILE}", "r", encoding="utf-8") as submit_meta_file:
|
| 66 |
submit_info = pd.DataFrame.from_records(
|
| 67 |
+
json.load(submit_meta_file), columns=["model_name", "username", "file_name", "link"]
|
| 68 |
+
)[["model_name", "username", "file_name", "link"]]
|
| 69 |
|
| 70 |
# Merge the DataFrames
|
| 71 |
merged_df = pd.merge(battle_info, submit_info, how="left", left_on="model", right_on="model_name")
|