promptforge
Version:
Adaptive Prompt Intelligence & Orchestration SDK - Manage, optimize, and serve prompts for LLMs with versioning, feedback loops, and multi-provider support
95 lines • 2.88 kB
TypeScript
import { ForgeConfig, CreatePromptRequest, ExecutePromptRequest, ExecutionResult, PromptMetadata, PromptVersion, LLMProvider, Feedback, EvaluatePromptRequest, EvaluationResult } from '../types.js';
export declare class PromptForge {
private registry;
private templateEngine;
private metricsTracker;
private llmRouter;
private cache;
private feedbackSystem;
private evaluationEngine;
private config;
constructor(config: ForgeConfig);
/**
* Create a new prompt in the registry
*/
createPrompt(request: CreatePromptRequest): Promise<PromptMetadata>;
/**
* Update an existing prompt and create a new version
*/
updatePrompt(promptId: string, content: string, metadata?: Partial<PromptMetadata>): Promise<PromptVersion>;
/**
* Execute a prompt with LLM
*/
executePrompt(request: ExecutePromptRequest): Promise<ExecutionResult>;
/**
* Track feedback for an execution
*/
trackFeedback(feedback: Omit<Feedback, 'id' | 'timestamp'>): Promise<Feedback>;
/**
* Evaluate a prompt against a dataset or examples
*/
evaluatePrompt(request: EvaluatePromptRequest): Promise<EvaluationResult>;
/**
* Optimize prompts based on feedback and performance
*/
optimizePrompts(promptId?: string): Promise<string[]>;
/**
* List all prompts
*/
listPrompts(filter?: {
owner?: string;
tags?: string[];
isActive?: boolean;
}): Promise<PromptMetadata[]>;
/**
* Get prompt by ID or name
*/
getPrompt(idOrName: string): Promise<PromptMetadata | undefined>;
/**
* Get prompt version
*/
getPromptVersion(promptId: string, version?: number): Promise<PromptVersion | undefined>;
/**
* Get prompt versions history
*/
getPromptVersions(promptId: string): Promise<PromptVersion[]>;
/**
* Delete a prompt
*/
deletePrompt(promptId: string): Promise<boolean>;
/**
* Get metrics for a prompt
*/
getMetrics(promptId: string, version?: number): Promise<{
totalExecutions: number;
successRate: number;
averageLatency: number;
totalCost: number;
averageTokens: number;
p50Latency: number;
p95Latency: number;
p99Latency: number;
}>;
/**
* Get available LLM providers
*/
getAvailableProviders(): Promise<LLMProvider[]>;
/**
* Get registry statistics
*/
getStats(): Promise<{
totalExecutions: number;
totalCost: number;
averageLatency: number;
successRate: number;
totalPrompts: number;
activePrompts: number;
totalVersions: number;
totalUsage: number;
}>;
/**
* Get default model for a provider
*/
private getDefaultModel;
}
//# sourceMappingURL=forge.d.ts.map