@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
TypeScript
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