Download src/services/api.ts from jayvatliq/car-view-classifier-frontend: direct link, hf CLI and curl.
- Browser
- Download file 1.49 kB
-
https://huggingface.co/spaces/jayvatliq/car-view-classifier-frontend/resolve/main/src/services/api.ts
- Command line
-
hf download hf://spaces/jayvatliq/car-view-classifier-frontend/src/services/api.ts
-
curl -L -o api.ts https://huggingface.co/spaces/jayvatliq/car-view-classifier-frontend/resolve/main/src/services/api.ts
1.49 kB
| import { BASE_URL } from "@/utils/constants"; | |
| import type { ImageResult, AngleLabel } from "@/types"; | |
| interface RawApiResponse { | |
| rule_based_view_type: string[]; | |
| review: boolean; | |
| final_scores: number[]; | |
| error: string | null; | |
| file_details: { | |
| main_img_name: string; | |
| part_detection: string; | |
| car_detection: string; | |
| }; | |
| } | |
| export const classifyImage = async ( | |
| file: File | |
| ): Promise<ImageResult> => { | |
| const formData = new FormData(); | |
| formData.append("files", file); | |
| const response = await fetch(`${BASE_URL}/api/classify-img`, { | |
| method: "POST", | |
| body: formData, | |
| }); | |
| if (!response.ok) { | |
| throw new Error(`API error ${response.status}: ${response.statusText}`); | |
| } | |
| const results: RawApiResponse[] = await response.json(); | |
| const first = results[0]; | |
| const rawError = first?.error; | |
| const errorMsg = rawError | |
| ? typeof rawError === "string" | |
| ? rawError | |
| : JSON.stringify(rawError) | |
| : null; | |
| if (!first || errorMsg) { | |
| return { | |
| filename: file.name, | |
| angles: [], | |
| scores: [], | |
| review: false, | |
| error: errorMsg ?? "Classification failed", | |
| fileDetails: null, | |
| }; | |
| } | |
| return { | |
| filename: file.name, | |
| angles: (first.rule_based_view_type ?? []) as AngleLabel[], | |
| scores: first.final_scores ?? [], | |
| review: first.review ?? false, | |
| error: null, | |
| fileDetails: first.file_details ?? null, | |
| }; | |
| }; | |
| export const getImageUrl = (path: string) => | |
| `${BASE_URL}/files/${path}`; | |