UNPKG

ai-patterns

Version:

Production-ready TypeScript patterns to build solid and robust AI applications. Retry logic, circuit breakers, rate limiting, human-in-the-loop escalation, prompt versioning, response validation, context window management, and more—all with complete type

59 lines 2.22 kB
/** * Prompt Versioning & Experimentation Pattern * * Manages prompt versions with rollback, gradual rollout, and performance comparison. * Enables safe experimentation with different prompt formulations. * * @example * ```typescript * const result = await versionedPrompt({ * promptId: 'product-summary', * versions: { * 'v1.0': { * prompt: 'Summarize this product in 2 sentences', * active: false, * performance: { satisfaction: 0.75, avgTokens: 50 } * }, * 'v2.0': { * prompt: 'Create engaging 2-sentence product summary', * active: true, * rolloutPercentage: 50 * } * }, * execute: async (prompt, version) => { * return await generateText({ model, prompt: prompt + '\n\n' + productData }); * }, * onVersionUsed: (version, result) => { * analytics.track('prompt_version_used', { version, tokens: result.tokens }); * }, * autoRollback: { * enabled: true, * conditions: [ * { metric: 'satisfaction', threshold: 0.7, window: '1h', operator: 'lt' } * ] * } * }); * ``` */ import type { PromptVersioningConfig, PromptVersionExecutionResult, PromptVersionStorage, PromptVersionMetrics } from "../types/prompt-versioning"; /** * Simple in-memory storage for prompt version metrics using GlobalStorage */ export declare class InMemoryPromptVersionStorage implements PromptVersionStorage { private storage; private readonly namespace; constructor(); private getMetricsKey; private getActiveVersionKey; private getHistoryKey; getMetrics(promptId: string, version: string): Promise<PromptVersionMetrics | null>; updateMetrics(promptId: string, version: string, metrics: Partial<PromptVersionMetrics>): Promise<void>; getActiveVersion(promptId: string): Promise<string | null>; setActiveVersion(promptId: string, version: string): Promise<void>; getVersionHistory(promptId: string): Promise<string[]>; } /** * Execute a prompt with version management */ export declare function versionedPrompt<TResult = any>(config: PromptVersioningConfig<TResult>): Promise<PromptVersionExecutionResult<TResult>>; //# sourceMappingURL=prompt-versioning.d.ts.map