route-claudecode
Version:
Advanced routing and transformation system for Claude Code outputs to multiple AI providers
145 lines • 3.31 kB
TypeScript
/**
* 动态模型发现系统
* 通过API获取模型列表并验证可用性
*/
import { ProviderConfig } from '@/types';
export interface ModelInfo {
id: string;
name: string;
description?: string;
created?: number;
owned_by?: string;
capabilities?: {
text: boolean;
vision: boolean;
tools: boolean;
streaming: boolean;
};
pricing?: {
prompt: number;
completion: number;
};
}
export interface ModelAvailabilityResult {
modelId: string;
isAvailable: boolean;
responseTime: number;
error?: string;
statusCode?: number;
testTimestamp: number;
retryCount: number;
}
export interface ModelDiscoveryConfig {
provider: ProviderConfig;
providerId: string;
maxRetries: number;
retryDelay: number;
requestTimeout: number;
testPrompt: string;
maxTokens: number;
}
export interface DiscoveryResult {
providerId: string;
totalModels: number;
availableModels: string[];
unavailableModels: string[];
averageResponseTime: number;
discoveryTimestamp: number;
errors: string[];
}
/**
* 模型发现和验证核心类
*/
export declare class DynamicModelDiscovery {
private config;
private cache;
private availabilityCache;
private cacheExpiry;
private readonly CACHE_DURATION;
constructor(config: ModelDiscoveryConfig);
/**
* 获取可用的模型列表
*/
fetchAvailableModels(): Promise<ModelInfo[]>;
/**
* 从提供商API获取模型列表
*/
private fetchModelsFromAPI;
/**
* 获取OpenAI兼容的模型列表
*/
private fetchOpenAICompatibleModels;
/**
* 获取Anthropic模型列表
*/
private fetchAnthropicModels;
/**
* 获取Gemini模型列表
*/
private fetchGeminiModels;
/**
* 测试模型可用性(多次测试避免流控误判)
*/
testModelAvailability(modelId: string, testCount?: number): Promise<ModelAvailabilityResult>;
/**
* 分析测试结果,避免流控误判
*/
private analyzeTestResults;
/**
* 执行完整的模型发现流程
*/
discoverModels(): Promise<DiscoveryResult>;
/**
* 发送测试请求
*/
private sendTestRequest;
/**
* 获取模型列表端点
*/
private getModelsEndpoint;
/**
* 获取聊天端点
*/
private getChatEndpoint;
/**
* 获取认证头
*/
private getAuthHeaders;
/**
* 获取API密钥
*/
private getAPIKey;
/**
* 推断模型能力
*/
private inferCapabilities;
/**
* 获取默认模型列表
*/
private getDefaultModels;
/**
* 检查缓存是否有效
*/
private isCacheValid;
/**
* 延迟函数
*/
private delay;
/**
* 清除缓存
*/
clearCache(): void;
/**
* 获取缓存统计
*/
getCacheStats(): {
modelCacheSize: number;
availabilityCacheSize: number;
cacheKeys: string[];
};
}
/**
* 工厂函数创建动态模型发现实例
*/
export declare function createDynamicModelDiscovery(config: ModelDiscoveryConfig): DynamicModelDiscovery;
//# sourceMappingURL=dynamic-model-discovery.d.ts.map