UNPKG

route-claudecode

Version:

Advanced routing and transformation system for Claude Code outputs to multiple AI providers

145 lines 3.31 kB
/** * 动态模型发现系统 * 通过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