diff --git a/frontend/src/api/cache.ts b/frontend/src/api/cache.ts index 59ffb05..9991457 100644 --- a/frontend/src/api/cache.ts +++ b/frontend/src/api/cache.ts @@ -290,6 +290,19 @@ export interface UnmappedEntry { ttl: number | null } +// Provider 模型映射缓存(Redis 缓存) +export interface ProviderModelMapping { + provider_id: string + provider_name: string + global_model_id: string + global_model_name: string + global_model_display_name: string | null + provider_model_name: string + aliases: string[] | null + ttl: number | null + hit_count: number +} + export interface ModelMappingCacheStats { available: boolean message?: string @@ -303,6 +316,7 @@ export interface ModelMappingCacheStats { global_model_resolve: number } mappings?: ModelMappingItem[] + provider_model_mappings?: ProviderModelMapping[] | null unmapped?: UnmappedEntry[] | null } @@ -337,5 +351,13 @@ export const modelMappingCacheApi = { async clearByName(modelName: string): Promise { const response = await api.delete(`/api/admin/monitoring/cache/model-mapping/${encodeURIComponent(modelName)}`) return response.data + }, + + /** + * 清除指定 Provider 和 GlobalModel 的映射缓存 + */ + async clearProviderModel(providerId: string, globalModelId: string): Promise { + const response = await api.delete(`/api/admin/monitoring/cache/model-mapping/provider/${providerId}/${globalModelId}`) + return response.data } } diff --git a/frontend/src/views/admin/CacheMonitoring.vue b/frontend/src/views/admin/CacheMonitoring.vue index 1a5f0e6..681a6ca 100644 --- a/frontend/src/views/admin/CacheMonitoring.vue +++ b/frontend/src/views/admin/CacheMonitoring.vue @@ -299,6 +299,26 @@ async function clearModelMappingByName(modelName: string) { } } +async function clearProviderModelMapping(providerId: string, globalModelId: string, displayName?: string) { + const confirmed = await showConfirm({ + title: '确认清除', + message: `确定要清除 ${displayName || 'Provider 模型映射'} 的缓存吗?`, + confirmText: '确认清除', + variant: 'destructive' + }) + + if (!confirmed) return + + try { + await modelMappingCacheApi.clearProviderModel(providerId, globalModelId) + showSuccess('已清除 Provider 模型映射缓存') + await fetchModelMappingStats() + } catch (error) { + showError('清除缓存失败') + log.error('清除 Provider 模型映射缓存失败', error) + } +} + function formatTTL(ttl: number | null): string { if (ttl === null || ttl < 0) return '-' if (ttl < 60) return `${ttl}s` @@ -872,9 +892,125 @@ onBeforeUnmount(() => { + +
+
+ Provider 模型映射缓存 +
+ + + + + + 提供商 + + + 请求名称 + + + + 映射模型 + + + 剩余 + + + 次数 + + + 操作 + + + + + + + + +
+ +
+
+
暂无模型解析缓存