agh123's picture
add fe
37d5f61
raw
history blame
1.21 kB
import httpx
import pandas as pd
from typing import Optional, Dict
import streamlit as st
from src.core.config import settings
async def fetch_leaderboard_data(
model_name: Optional[str] = None,
benchmark_label: Optional[str] = None
) -> pd.DataFrame:
"""Fetch and process leaderboard data"""
params = {}
if model_name and model_name != "All":
params["model_name"] = model_name
if benchmark_label and benchmark_label != "All":
params["benchmark_label"] = benchmark_label
headers = {
"Authorization": f"Bearer {settings.HF_TOKEN}",
"Accept": "application/json"
}
try:
async with httpx.AsyncClient() as client:
response = await client.get(
f"{settings.API_URL}/api/v1/leaderboard",
params=params,
headers=headers,
follow_redirects=True
)
response.raise_for_status()
data = response.json()
return pd.DataFrame(data)
except Exception as e:
st.error(f"Error fetching data: {str(e)}")
if hasattr(e, 'response'):
st.error(f"Response: {e.response.text}")
return pd.DataFrame()