Spaces:
Running
on
CPU Upgrade
Running
on
CPU Upgrade
| const VITE_API_SERVER_URL = import.meta.env.VITE_API_SERVER_URL || '' | |
| const VITE_LOAD_VIA_PROXY_URL = import.meta.env.VITE_LOAD_VIA_PROXY_URL === 'true' | |
| console.log(`API Server URL: ${VITE_API_SERVER_URL}`) | |
| class API { | |
| static async fetchIndex(): Promise<string> { | |
| const response = await fetch(VITE_API_SERVER_URL + '/') | |
| if (!response.ok) throw new Error('Failed to fetch index.html') | |
| return response.text() | |
| } | |
| static async fetchStaticFile(path: string): Promise<string> { | |
| const response = await fetch(`${VITE_API_SERVER_URL}/${path}`) | |
| if (!response.ok) throw new Error(`Failed to fetch ${path}`) | |
| return response.text() | |
| } | |
| // Rename the method to fetchExamplesByType | |
| static fetchExamplesByType(type: 'image' | 'audio' | 'video', dataset?: string): Promise<any> { | |
| const url = dataset | |
| ? `${VITE_API_SERVER_URL}/examples/${type}?dataset=${encodeURIComponent(dataset)}` | |
| : `${VITE_API_SERVER_URL}/examples/${type}` | |
| return fetch(url).then((response) => { | |
| if (!response.ok) { | |
| throw new Error(`Failed to fetch examples of type ${type}`) | |
| } | |
| return response.json() | |
| }) | |
| } | |
| // Add a method to fetch a resource via the proxy endpoint to bypass CORS issues | |
| static getProxiedUrl(url: string, forceProxy = false): string { | |
| if (!VITE_LOAD_VIA_PROXY_URL && !forceProxy) { | |
| return url | |
| } | |
| return `${VITE_API_SERVER_URL}/proxy/${encodeURIComponent(url)}` | |
| } | |
| // Fetch dataset names from the backend, grouped by type | |
| static async fetchDatasets(): Promise<{ [type: string]: string[] }> { | |
| const response = await fetch(VITE_API_SERVER_URL + '/datasets') | |
| if (!response.ok) throw new Error('Failed to fetch datasets') | |
| return response.json() | |
| } | |
| // Fetch descriptions from the backend | |
| static async fetchDescriptions(): Promise<{ | |
| descriptions: any; | |
| model_descriptions: any; | |
| metric_descriptions: any; | |
| dataset_descriptions: any; | |
| }> { | |
| const response = await fetch(VITE_API_SERVER_URL + '/descriptions') | |
| if (!response.ok) throw new Error('Failed to fetch descriptions') | |
| return response.json() | |
| } | |
| // Fetch leaderboard data from the backend | |
| static async fetchLeaderboard(datasetName: string): Promise<any> { | |
| const response = await fetch(`${VITE_API_SERVER_URL}/data/${datasetName}?dataset_type=benchmark`) | |
| if (!response.ok) throw new Error(`Failed to fetch leaderboard for ${datasetName}`) | |
| return response.json() | |
| } | |
| // Fetch leaderboard data from the backend | |
| static async fetchChart(datasetName: string): Promise<any> { | |
| const response = await fetch(`${VITE_API_SERVER_URL}/data/${datasetName}?dataset_type=attacks_variations`) | |
| if (!response.ok) throw new Error(`Failed to fetch chart data for ${datasetName}`) | |
| return response.json() | |
| } | |
| } | |
| export default API | |
| export { VITE_API_SERVER_URL as API_BASE_URL } | |