Spaces:
Sleeping
Sleeping
import axios from 'axios'; | |
const API_URL = '/api'; | |
const api = { | |
// Get available benchmarks | |
getBenchmarks: async () => { | |
try { | |
const response = await axios.get(`${API_URL}/benchmarks`); | |
return response.data; | |
} catch (error) { | |
console.error('Error fetching benchmarks:', error); | |
return { success: false, error: error.message }; | |
} | |
}, | |
// Get leaderboard data | |
getLeaderboard: async (benchmark, filters = {}) => { | |
try { | |
const { filterColumns, searchQuery, coreColumns } = filters; | |
const params = new URLSearchParams(); | |
params.append('benchmark', benchmark); | |
if (filterColumns && filterColumns.length) { | |
params.append('filter_columns', filterColumns.join(',')); | |
} | |
if (searchQuery) { | |
params.append('search_query', searchQuery); | |
} | |
if (coreColumns && coreColumns.length) { | |
params.append('core_columns', coreColumns.join(',')); | |
} | |
const response = await axios.get(`${API_URL}/leaderboard?${params.toString()}`); | |
return response.data; | |
} catch (error) { | |
console.error('Error fetching leaderboard:', error); | |
return { success: false, error: error.message }; | |
} | |
}, | |
// Get available columns for a benchmark | |
getColumns: async (benchmark) => { | |
try { | |
const response = await axios.get(`${API_URL}/columns?benchmark=${benchmark}`); | |
return response.data; | |
} catch (error) { | |
console.error('Error fetching columns:', error); | |
return { success: false, error: error.message }; | |
} | |
}, | |
// Get examples for a specific model and benchmark | |
getExamples: async (benchmark, model, attack = '') => { | |
try { | |
const params = new URLSearchParams(); | |
params.append('benchmark', benchmark); | |
params.append('model', model); | |
if (attack) { | |
params.append('attack', attack); | |
} | |
const response = await axios.get(`${API_URL}/examples?${params.toString()}`); | |
return response.data; | |
} catch (error) { | |
console.error('Error fetching examples:', error); | |
return { success: false, error: error.message }; | |
} | |
}, | |
// Get available attacks for a benchmark | |
getAttacks: async (benchmark) => { | |
try { | |
const response = await axios.get(`${API_URL}/attacks?benchmark=${benchmark}`); | |
return response.data; | |
} catch (error) { | |
console.error('Error fetching attacks:', error); | |
return { success: false, error: error.message }; | |
} | |
} | |
}; | |
export default api; | |