UNPKG

@callmedayz/ai-prompt-toolkit

Version:

Professional AI prompt engineering toolkit with advanced template features, real-time dashboards, conditional logic, template inheritance, live monitoring, OpenRouter integration, and 310+ model support

175 lines 5.08 kB
import { PromptVersion, TestExecution, PromptPerformanceMetrics } from './prompt-versioning'; import { OpenRouterClient } from './openrouter-client'; import { SupportedModel } from './types'; /** * Analytics data point for tracking prompt performance over time */ export interface AnalyticsDataPoint { timestamp: Date; promptVersionId: string; model: SupportedModel; metric: string; value: number; metadata?: Record<string, any>; } /** * Aggregated analytics for a specific time period */ export interface AnalyticsAggregation { period: 'hour' | 'day' | 'week' | 'month'; startTime: Date; endTime: Date; promptVersionId: string; metrics: { totalExecutions: number; successRate: number; averageResponseTime: number; averageTokenUsage: number; averageCost: number; qualityScore?: number; errorRate: number; throughput: number; }; trends: { responseTimeTrend: 'improving' | 'degrading' | 'stable'; successRateTrend: 'improving' | 'degrading' | 'stable'; costTrend: 'improving' | 'degrading' | 'stable'; }; } /** * Comparison analysis between different prompt versions */ export interface PromptComparison { baselineVersion: PromptVersion; comparisonVersions: PromptVersion[]; metrics: { [versionId: string]: { version: PromptVersion; performance: PromptPerformanceMetrics; improvement: { responseTime: number; successRate: number; cost: number; tokenUsage: number; }; significance: number; }; }; recommendation: { bestVersion: PromptVersion; reason: string; confidence: number; }; } /** * Performance insights and recommendations */ export interface PerformanceInsights { promptVersionId: string; insights: { type: 'performance' | 'cost' | 'reliability' | 'optimization'; severity: 'low' | 'medium' | 'high'; title: string; description: string; recommendation: string; impact: string; confidence: number; }[]; trends: { metric: string; direction: 'up' | 'down' | 'stable'; magnitude: number; timeframe: string; }[]; alerts: { type: 'threshold' | 'anomaly' | 'degradation'; severity: 'warning' | 'critical'; message: string; triggeredAt: Date; metric: string; value: number; threshold?: number; }[]; } /** * Analytics configuration for monitoring and alerting */ export interface AnalyticsConfig { enableRealTimeMonitoring: boolean; aggregationIntervals: ('hour' | 'day' | 'week' | 'month')[]; alertThresholds: { successRate: { warning: number; critical: number; }; responseTime: { warning: number; critical: number; }; errorRate: { warning: number; critical: number; }; cost: { warning: number; critical: number; }; }; retentionPeriod: number; enableTrendAnalysis: boolean; enableAnomalyDetection: boolean; } /** * Prompt Performance Analytics System */ export declare class PromptAnalytics { private dataPoints; private aggregations; private config; private client?; constructor(config?: Partial<AnalyticsConfig>, client?: OpenRouterClient); /** * Record a test execution for analytics */ recordExecution(execution: TestExecution, model: SupportedModel): void; /** * Add a custom analytics data point */ addDataPoint(dataPoint: AnalyticsDataPoint): void; /** * Generate aggregated analytics for a prompt version */ generateAggregation(promptVersionId: string, period: 'hour' | 'day' | 'week' | 'month', startTime?: Date, endTime?: Date): AnalyticsAggregation; /** * Compare performance between multiple prompt versions */ compareVersions(baselineVersionId: string, comparisonVersionIds: string[], timeframe?: { start: Date; end: Date; }): PromptComparison; /** * Generate performance insights and recommendations */ generateInsights(promptVersionId: string): PerformanceInsights; /** * Get analytics data for a specific time range */ getAnalyticsData(promptVersionId: string, startTime: Date, endTime: Date, metrics?: string[]): AnalyticsDataPoint[]; /** * Export analytics data to JSON */ exportAnalytics(): string; /** * Import analytics data from JSON */ importAnalytics(jsonData: string): void; private groupExecutions; private getStartTimeForPeriod; private getPeriodHours; private createEmptyAggregation; private calculateTrends; private getTrend; private getRecentAggregations; private performRealTimeAnalysis; } //# sourceMappingURL=prompt-analytics.d.ts.map