recoder-analytics
Version:
Comprehensive analytics and monitoring for the Recoder.xyz ecosystem
239 lines • 7.2 kB
TypeScript
/**
* Performance vs Cost Analysis System
*
* Advanced analytics for comparing model performance against cost,
* optimizing value delivery, and providing intelligent recommendations
* for cost-effective AI model selection in recoder.xyz.
*/
import { EventEmitter } from 'events';
export interface PerformanceCostMetrics {
modelName: string;
provider: string;
period: {
start: Date;
end: Date;
duration: string;
};
performance: {
quality: number;
latency: number;
reliability: number;
throughput: number;
errorRate: number;
};
cost: {
totalCost: number;
costPerToken: number;
costPerRequest: number;
costPerSecond: number;
};
efficiency: {
valueScore: number;
costEfficiencyRating: string;
performancePerDollar: number;
qualityPerDollar: number;
speedPerDollar: number;
};
roi: {
returnOnInvestment: number;
valueCreated: number;
paybackPeriod: number;
netPresentValue: number;
};
ranking: {
overallRank: number;
performanceRank: number;
costRank: number;
efficiencyRank: number;
};
trends: {
valueImprovement: 'improving' | 'stable' | 'declining';
costTrend: 'decreasing' | 'stable' | 'increasing';
performanceTrend: 'improving' | 'stable' | 'declining';
efficiencyTrend: 'improving' | 'stable' | 'declining';
};
}
export interface ValueOptimizationRecommendation {
id: string;
type: 'model_switch' | 'workload_optimization' | 'cost_reduction' | 'performance_boost';
priority: 'low' | 'medium' | 'high' | 'critical';
confidence: number;
title: string;
description: string;
currentModel: string;
recommendedModel?: string;
impact: {
costSavings: number;
performanceChange: number;
qualityChange: number;
latencyChange: number;
reliabilityChange: number;
};
implementation: {
effort: 'trivial' | 'low' | 'medium' | 'high' | 'complex';
timeToImplement: number;
riskLevel: 'low' | 'medium' | 'high';
prerequisites: string[];
steps: string[];
};
tradeoffs: {
pros: string[];
cons: string[];
risks: string[];
};
metrics: {
currentValueScore: number;
projectedValueScore: number;
valueImprovement: number;
};
}
export interface ModelComparison {
comparisonId: string;
timestamp: Date;
taskType: string;
models: Array<{
modelName: string;
provider: string;
metrics: PerformanceCostMetrics;
suitabilityScore: number;
}>;
winner: {
overall: string;
performance: string;
cost: string;
efficiency: string;
};
insights: {
keyFindings: string[];
surprises: string[];
caveats: string[];
};
recommendations: ValueOptimizationRecommendation[];
}
export interface CostOptimizationScenario {
scenarioId: string;
name: string;
description: string;
targetBudgetReduction: number;
constraints: {
minQualityThreshold: number;
maxLatencyIncrease: number;
minReliabilityThreshold: number;
excludedModels: string[];
requiredCapabilities: string[];
};
optimizations: Array<{
description: string;
models: string[];
expectedSavings: number;
qualityImpact: number;
performanceImpact: number;
implementationComplexity: 'low' | 'medium' | 'high';
}>;
results: {
totalSavings: number;
budgetReductionAchieved: number;
averageQualityChange: number;
averagePerformanceChange: number;
feasibilityScore: number;
};
}
export interface TaskTypeAnalysis {
taskType: string;
description: string;
volume: {
requestsPerDay: number;
tokensPerDay: number;
costPerDay: number;
};
requirements: {
minQuality: number;
maxLatency: number;
minReliability: number;
securityLevel: 'low' | 'medium' | 'high' | 'critical';
};
modelSuitability: Array<{
modelName: string;
suitabilityScore: number;
reasoning: string[];
pros: string[];
cons: string[];
}>;
currentOptimalModel: string;
alternativeModels: string[];
costOptimizationPotential: number;
}
export declare class PerformanceCostAnalyzer extends EventEmitter {
private performanceMetrics;
private comparisons;
private optimizationScenarios;
private taskAnalyses;
private config;
private benchmarkTimer;
private isRunning;
constructor();
private initializeTaskTypes;
/**
* Start performance-cost analysis system
*/
start(): Promise<void>;
/**
* Stop performance-cost analysis system
*/
stop(): Promise<void>;
/**
* Analyze performance vs cost for a specific model
*/
analyzeModelPerformanceCost(modelName: string, period?: string): Promise<PerformanceCostMetrics>;
/**
* Compare multiple models for value optimization
*/
compareModelsForTask(taskType: string, modelNames: string[], period?: string): Promise<ModelComparison>;
/**
* Generate cost optimization scenarios
*/
generateOptimizationScenarios(targetBudgetReduction: number, constraints?: {
minQualityThreshold?: number;
maxLatencyIncrease?: number;
minReliabilityThreshold?: number;
excludedModels?: string[];
}): Promise<CostOptimizationScenario[]>;
/**
* Get value optimization recommendations
*/
getValueOptimizationRecommendations(modelName?: string, taskType?: string): Promise<ValueOptimizationRecommendation[]>;
/**
* Get task-specific analysis and recommendations
*/
getTaskTypeAnalysis(taskType: string): TaskTypeAnalysis | null;
/**
* Update task type requirements and optimal models
*/
updateTaskTypeAnalysis(taskType: string, updates: Partial<TaskTypeAnalysis>): Promise<void>;
private performInitialAnalysis;
private updateBenchmarks;
private calculateEfficiencyMetrics;
private calculateROIMetrics;
private calculateCostPerSecond;
private analyzeTrends;
private calculateTaskSuitability;
private rankModels;
private calculatePerformanceScore;
private generateComparisonInsights;
private generateValueOptimizationRecommendations;
private calculatePerformanceChange;
private calculateLatencyChange;
private generateOptimizationScenario;
private optimizeTaskType;
private calculateFeasibilityScore;
private getModelSpecificRecommendations;
private getGeneralOptimizationRecommendations;
private reanalyzeTaskSuitability;
private parsePeriodMs;
private getModelHealthMetrics;
private getCostMetrics;
private getLatencyMetrics;
private getProviderFromModel;
}
export declare const performanceCostAnalyzer: PerformanceCostAnalyzer;
//# sourceMappingURL=performance-cost-analyzer.d.ts.map