Files
omniai-web/src/api/providerHealthClient.ts
T

44 lines
1.0 KiB
TypeScript
Raw Normal View History

2026-06-02 12:38:01 +08:00
import { buildApiUrl, buildAuthHeaders } from "./serverConnection";
export interface ProviderHealthEntry {
status: string;
lastCheck: string | null;
lastError: string | null;
details: Record<string, unknown> | null;
}
export interface CallStatRow {
provider: string;
model: string;
status: string;
count: string;
avg_ms: string | null;
total_cost: string | null;
}
export interface KeyStatRow {
provider: string;
total_keys: string;
active_keys: string;
current_load: string;
}
export interface ProviderHealthResponse {
health: Record<string, ProviderHealthEntry>;
callStats: CallStatRow[];
keyStats: KeyStatRow[];
checkedAt: string;
}
export const providerHealthClient = {
async getStatus(): Promise<ProviderHealthResponse> {
const res = await fetch(buildApiUrl("admin/providers/status"), {
method: "GET",
headers: buildAuthHeaders(),
});
if (!res.ok) {
throw new Error(`Provider health request failed (${res.status})`);
}
return res.json() as Promise<ProviderHealthResponse>;
},
};