Commit
Β·
364a0a3
1
Parent(s):
9fef59c
Refresh leaderboard data on app startup
Browse files- app.py +19 -7
- requirements.txt +1 -0
app.py
CHANGED
|
@@ -957,13 +957,23 @@ def get_model_prices(model_name: str) -> dict | None:
|
|
| 957 |
return None
|
| 958 |
|
| 959 |
|
| 960 |
-
def load_or_download_leaderboard():
|
| 961 |
-
if LEADERBOARD_CACHE.exists():
|
| 962 |
with open(LEADERBOARD_CACHE) as f:
|
| 963 |
return json.load(f)
|
| 964 |
|
| 965 |
-
|
| 966 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 967 |
with open(LEADERBOARD_CACHE) as f:
|
| 968 |
return json.load(f)
|
| 969 |
|
|
@@ -988,9 +998,9 @@ def get_bash_only_df():
|
|
| 988 |
"name": r.get("name", ""),
|
| 989 |
"% resolved": resolved_str,
|
| 990 |
"date": r.get("date", ""),
|
| 991 |
-
"cost": round(r.get("cost"
|
| 992 |
-
"instance_cost": round(r.get("instance_cost"
|
| 993 |
-
"instance_calls": r.get("instance_calls"
|
| 994 |
"folder": r.get("folder", ""),
|
| 995 |
"os_model": "β
" if r.get("os_model") else "β",
|
| 996 |
})
|
|
@@ -3086,6 +3096,8 @@ def build_app():
|
|
| 3086 |
|
| 3087 |
|
| 3088 |
if __name__ == "__main__":
|
|
|
|
|
|
|
| 3089 |
app = build_app()
|
| 3090 |
app.queue()
|
| 3091 |
app.launch()
|
|
|
|
| 957 |
return None
|
| 958 |
|
| 959 |
|
| 960 |
+
def load_or_download_leaderboard(force_refresh: bool = False):
|
| 961 |
+
if not force_refresh and LEADERBOARD_CACHE.exists():
|
| 962 |
with open(LEADERBOARD_CACHE) as f:
|
| 963 |
return json.load(f)
|
| 964 |
|
| 965 |
+
try:
|
| 966 |
+
filename = download_leaderboard(output_dir=str(DATA_DIR))
|
| 967 |
+
os.rename(filename, LEADERBOARD_CACHE)
|
| 968 |
+
logging.info("Successfully downloaded fresh leaderboard data")
|
| 969 |
+
except Exception as e:
|
| 970 |
+
logging.warning(f"Failed to download leaderboard: {e}")
|
| 971 |
+
if LEADERBOARD_CACHE.exists():
|
| 972 |
+
logging.info("Using cached leaderboard data")
|
| 973 |
+
with open(LEADERBOARD_CACHE) as f:
|
| 974 |
+
return json.load(f)
|
| 975 |
+
raise
|
| 976 |
+
|
| 977 |
with open(LEADERBOARD_CACHE) as f:
|
| 978 |
return json.load(f)
|
| 979 |
|
|
|
|
| 998 |
"name": r.get("name", ""),
|
| 999 |
"% resolved": resolved_str,
|
| 1000 |
"date": r.get("date", ""),
|
| 1001 |
+
"cost": round(r.get("cost") or 0, 2),
|
| 1002 |
+
"instance_cost": round(r.get("instance_cost") or 0, 4),
|
| 1003 |
+
"instance_calls": r.get("instance_calls") or 0,
|
| 1004 |
"folder": r.get("folder", ""),
|
| 1005 |
"os_model": "β
" if r.get("os_model") else "β",
|
| 1006 |
})
|
|
|
|
| 3096 |
|
| 3097 |
|
| 3098 |
if __name__ == "__main__":
|
| 3099 |
+
logging.info("Refreshing leaderboard data on startup...")
|
| 3100 |
+
load_or_download_leaderboard(force_refresh=True)
|
| 3101 |
app = build_app()
|
| 3102 |
app.queue()
|
| 3103 |
app.launch()
|
requirements.txt
CHANGED
|
@@ -7,3 +7,4 @@ tiktoken>=0.12.0
|
|
| 7 |
awscli
|
| 8 |
|
| 9 |
|
|
|
|
|
|
| 7 |
awscli
|
| 8 |
|
| 9 |
|
| 10 |
+
|