mirror of
https://github.com/fawney19/Aether.git
synced 2026-01-05 09:12:27 +08:00
56 lines
1.4 KiB
TypeScript
56 lines
1.4 KiB
TypeScript
/**
|
||
* 提供商策略管理 API 客户端
|
||
*/
|
||
|
||
import apiClient from './client';
|
||
|
||
const API_BASE = '/api/admin/provider-strategy';
|
||
|
||
export interface ProviderBillingConfig {
|
||
billing_type: 'monthly_quota' | 'pay_as_you_go' | 'free_tier';
|
||
monthly_quota_usd?: number;
|
||
quota_reset_day?: number;
|
||
quota_last_reset_at?: string; // 当前周期开始时间
|
||
quota_expires_at?: string;
|
||
rpm_limit?: number | null;
|
||
cache_ttl_minutes?: number; // 0表示不支持缓存,>0表示支持缓存并设置TTL(分钟)
|
||
provider_priority?: number;
|
||
}
|
||
|
||
/**
|
||
* 更新提供商计费配置
|
||
*/
|
||
export async function updateProviderBilling(
|
||
providerId: string,
|
||
config: ProviderBillingConfig
|
||
) {
|
||
const response = await apiClient.put(`${API_BASE}/providers/${providerId}/billing`, config);
|
||
return response.data;
|
||
}
|
||
|
||
/**
|
||
* 获取提供商使用统计
|
||
*/
|
||
export async function getProviderStats(providerId: string, hours: number = 24) {
|
||
const response = await apiClient.get(`${API_BASE}/providers/${providerId}/stats`, {
|
||
params: { hours }
|
||
});
|
||
return response.data;
|
||
}
|
||
|
||
/**
|
||
* 重置提供商月卡额度
|
||
*/
|
||
export async function resetProviderQuota(providerId: string) {
|
||
const response = await apiClient.delete(`${API_BASE}/providers/${providerId}/quota`);
|
||
return response.data;
|
||
}
|
||
|
||
/**
|
||
* 获取所有可用的负载均衡策略
|
||
*/
|
||
export async function listAvailableStrategies() {
|
||
const response = await apiClient.get(`${API_BASE}/strategies`);
|
||
return response.data;
|
||
}
|