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