UNPKG

promptforge

Version:

Adaptive Prompt Intelligence & Orchestration SDK - Manage, optimize, and serve prompts for LLMs with versioning, feedback loops, and multi-provider support

79 lines 2.27 kB
import { ExecutionMetrics, ExecutionResult, LLMProvider } from '../types.js'; export interface MetricsTrackerConfig { enableTracking: boolean; storageBackend: 'database' | 'memory'; retentionDays: number; } export declare class MetricsTracker { private metrics; private results; private config; constructor(config?: Partial<MetricsTrackerConfig>); /** * Start tracking a new execution */ startExecution(promptId: string, version: number, provider: LLMProvider, model: string): string; /** * Complete tracking an execution */ completeExecution(executionId: string, result: { success: boolean; error?: string; inputTokens: number; outputTokens: number; output: string; input: Record<string, string>; cached?: boolean; }): ExecutionMetrics; /** * Get metrics for a specific execution */ getExecutionMetrics(executionId: string): ExecutionMetrics | undefined; /** * Get execution result */ getExecutionResult(executionId: string): ExecutionResult | undefined; /** * Get all metrics for a prompt */ getPromptMetrics(promptId: string, version?: number): ExecutionMetrics[]; /** * Calculate aggregate metrics for a prompt */ getAggregateMetrics(promptId: string, version?: number): { totalExecutions: number; successRate: number; averageLatency: number; totalCost: number; averageTokens: number; p50Latency: number; p95Latency: number; p99Latency: number; }; /** * Get metrics grouped by provider */ getMetricsByProvider(promptId: string): Map<LLMProvider, ExecutionMetrics[]>; /** * Calculate cost based on provider and model */ private calculateCost; /** * Clean up old metrics based on retention policy */ cleanup(): Promise<number>; /** * Export metrics to JSON */ exportMetrics(promptId?: string): string; /** * Get real-time statistics */ getStats(): { totalExecutions: number; totalCost: number; averageLatency: number; successRate: number; }; } //# sourceMappingURL=metrics.d.ts.map