feat(modelprovider): 补齐模型工作台聚合与转换分层

This commit is contained in:
2026-06-01 03:47:48 +08:00
parent d9cf838ace
commit 041ed0b446
23 changed files with 898 additions and 196 deletions

View File

@@ -0,0 +1,20 @@
import { beforeEach, describe, expect, it, vi } from 'vitest';
import { getModelWorkspace } from '../modelWorkspace';
import { get } from '../request';
vi.mock('../request', () => ({
get: vi.fn(),
}));
describe('model workspace api', () => {
beforeEach(() => {
vi.clearAllMocks();
});
it('loads model workspace aggregate endpoint', () => {
getModelWorkspace();
expect(get).toHaveBeenCalledWith('/model/workspace');
});
});

View File

@@ -0,0 +1,28 @@
import { get } from './request';
import type { ModelConfig, ModelProvider, ModelRouteRule } from './modelProvider';
export interface ModelWorkspaceFailure {
requestId: string;
status?: string | null;
errorCode?: string | null;
errorMessage?: string | null;
}
export interface ModelWorkspace {
providerCount: number;
healthyProviderCount: number;
unhealthyProviderCount: number;
modelCount: number;
enabledModelCount: number;
routeRuleCount: number;
enabledRouteRuleCount: number;
recentFailedCallCount: number;
providers: ModelProvider[];
models: ModelConfig[];
routes: ModelRouteRule[];
failedCallSummaries: ModelWorkspaceFailure[];
}
export function getModelWorkspace() {
return get<ModelWorkspace>('/model/workspace');
}