UNPKG

route-claudecode

Version:

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

107 lines 2.62 kB
/** * 响应统计管理器 - 记录每个provider和模型的响应数量 * Owner: Jason Zhang */ export interface CategoryStats { totalResponses: number; successfulResponses: number; failedResponses: number; streamingResponses: number; nonStreamingResponses: number; totalResponseTime: number; averageResponseTime: number; } export interface ResponseStat { providerId: string; model: string; totalResponses: number; successfulResponses: number; failedResponses: number; streamingResponses: number; nonStreamingResponses: number; lastResponseTime: Date; averageResponseTime: number; totalResponseTime: number; categories: { [category: string]: CategoryStats; }; } export interface ProviderStats { [providerId: string]: { [model: string]: ResponseStat; }; } export declare class ResponseStatsManager { private stats; private startTime; private logInterval; private statsFilePath; constructor(); /** * 记录成功响应 */ recordSuccess(providerId: string, model: string, responseTimeMs: number, isStreaming?: boolean): void; /** * 记录失败响应 */ recordFailure(providerId: string, model: string, error: string, isStreaming?: boolean): void; /** * 获取或创建统计记录 */ private getOrCreateStat; /** * 获取所有统计数据 */ getAllStats(): ProviderStats; /** * 获取特定provider的统计 */ getProviderStats(providerId: string): { [model: string]: ResponseStat; } | null; /** * 获取汇总统计 */ getSummaryStats(): { totalRequests: number; totalProviders: number; totalModels: number; topProvider: { providerId: string; count: number; } | null; topModel: { model: string; count: number; } | null; overallSuccessRate: number; }; /** * 开始定期日志输出 */ private startPeriodicLogging; /** * 输出汇总统计日志 */ logSummaryStats(): void; /** * 输出详细统计日志 */ private logDetailedStats; /** * 输出权重效果验证日志 */ private logWeightEffectiveness; /** * 重置统计数据 */ reset(): void; /** * 停止定期日志 */ private loadStats; private saveStats; destroy(): void; } export declare const responseStatsManager: ResponseStatsManager; //# sourceMappingURL=response-stats.d.ts.map