Spaces:
Runtime error
Runtime error
| from .s3_utils import read_from_s3 | |
| from config import MODELS | |
| import pandas as pd | |
| async def generate_leaderboard(criteria : str) -> pd.DataFrame: | |
| """ | |
| Generate the leaderboard from saved data. | |
| Args: | |
| criteria (str): The criteria corresponding to the leaderboard. | |
| Returns: | |
| pd.DataFrame: The leaderboard. | |
| """ | |
| try: | |
| leaderboard = await read_from_s3(f'leaderboard_{criteria}.csv') | |
| if leaderboard is None: | |
| raise Exception | |
| except: | |
| leaderboard = pd.DataFrame({ | |
| 'Model': pd.Series(dtype='str'), | |
| 'Elo': pd.Series(dtype='int'), | |
| 'Wins': pd.Series(dtype='int'), | |
| 'Matches': pd.Series(dtype='int'), | |
| 'Win Rate': pd.Series(dtype='float') | |
| }) | |
| for model in MODELS: | |
| if model not in leaderboard['Model'].values: | |
| leaderboard = pd.concat([leaderboard, pd.DataFrame([{'Model': model, 'Elo': 1500, 'Wins': 0, 'Matches': 0, 'Win Rate': 0.0}])], ignore_index=True) | |
| leaderboard = leaderboard.sort_values('Elo', ascending=False).reset_index(drop=True) | |
| leaderboard['Win Rate'] = leaderboard['Win Rate'].apply(lambda x: round(x, 2)) | |
| return leaderboard | |
| async def generate_data() -> pd.DataFrame: | |
| """ | |
| Generate the data for the matches. | |
| Returns: | |
| pd.DataFrame: The data for the matches. | |
| """ | |
| try : | |
| data = await read_from_s3('data.csv') | |
| if data is None: | |
| raise Exception | |
| except: | |
| data = pd.DataFrame(columns=['Criteria', 'Model', 'Opponent', 'Won', 'Elo', 'Win Rate', 'Matches', 'Timestamp', 'UUID']) | |
| return data | |