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;