@relayplane/sdk
Version:
RelayPlane SDK with zero-config AI access, intelligent model selection, built-in examples, and contextual error handling. The easiest way to add AI to your app with automatic optimization and fallback.
104 lines • 3.43 kB
TypeScript
/**
* Relay Optimize™ - Advanced routing with fallback, caching, and cost optimization
*
* This module implements the relay.optimize() function for paid tier users.
* Provides intelligent model routing, automatic fallback, cost optimization, and caching.
*/
import { RelayRequest, RelayResponse, RelayConfig, OptimizeConfig } from '../types';
interface ModelMetrics {
averageLatency: number;
successRate: number;
lastUpdated: number;
requestCount: number;
failureCount: number;
costPerToken: number;
}
interface OptimizationTrace {
strategy: string;
modelAttempts: Array<{
model: string;
reason: string;
latency?: number;
success: boolean;
error?: string;
cost?: number;
}>;
cacheHit: boolean;
totalLatency: number;
totalCost: number;
fallbackUsed: boolean;
}
/**
* Enhanced retry configuration for intelligent model switching
*/
interface SmartRetryConfig {
maxRetries: number;
baseDelayMs: number;
maxDelayMs: number;
jitterFactor: number;
confidenceThreshold: number;
retryOnFailureTypes: FailureType[];
backoffStrategy: 'exponential' | 'linear' | 'constant';
}
/**
* Failure type categorization for intelligent retry decisions
*/
declare enum FailureType {
RATE_LIMIT = "rate_limit",
TIMEOUT = "timeout",
AUTH_ERROR = "auth_error",
MODEL_UNAVAILABLE = "model_unavailable",
QUOTA_EXCEEDED = "quota_exceeded",
PROVIDER_ERROR = "provider_error",
NETWORK_ERROR = "network_error",
VALIDATION_ERROR = "validation_error",
UNKNOWN_ERROR = "unknown_error"
}
/**
* Enhanced relay function with optimization strategies
*/
export declare function optimize<T = any>(request: RelayRequest, optimizeConfig?: OptimizeConfig, relayConfig?: Partial<RelayConfig>): Promise<RelayResponse<T>>;
/**
* Check if optimize features are available for the current configuration
*/
export declare function canOptimize(config?: Partial<RelayConfig>): boolean;
/**
* Get optimization capabilities for the current API key
*/
export declare function getOptimizeCapabilities(config?: Partial<RelayConfig>): Promise<{
tier: 'free' | 'maker' | 'pro';
features: {
fallback: boolean;
latencyRouting: boolean;
costOptimization: boolean;
caching: boolean;
analytics: boolean;
};
limits: {
maxCallsPerMonth: number;
maxRetries: number;
cacheTtlMax: number;
};
}>;
/**
* Clear optimization cache (useful for testing)
*/
export declare function clearOptimizeCache(): void;
/**
* Get current optimization metrics (useful for monitoring)
*/
export declare function getOptimizeMetrics(): {
cacheSize: number;
modelMetrics: Record<string, ModelMetrics>;
};
/**
* Intelligent retry function with automatic model switching
*
* This function implements smart retry logic that automatically switches models
* based on failure types and confidence scoring.
*/
export declare function smartRetry<T = any>(request: RelayRequest, config?: Partial<SmartRetryConfig>, relayConfig?: Partial<RelayConfig>): Promise<RelayResponse<T> & {
retryInfo: OptimizationTrace;
}>;
export { smartRelay, analyzeTaskCharacteristics, generateModelRecommendations, getAvailableModels, getModelCapabilities, clearSelectionHistory, getSelectionHistory } from './smart-selection';
//# sourceMappingURL=optimize.d.ts.map