UNPKG

@yogesh0333/yogiway-prompt

Version:

Free & Open Source Prompt Optimization Library - Save 30-50% on AI API costs. Multi-language, multi-platform support.

92 lines (91 loc) 2.52 kB
/** * Type definitions for YOGIWAY Prompt */ export type LLMProvider = 'openai' | 'anthropic' | 'google' | 'cohere' | 'mistral' | 'meta' | 'xai' | 'perplexity' | 'custom'; export interface PromptOptimizationOptions { /** Target token reduction percentage (default: 30) */ targetReduction?: number; /** Remove redundant words (default: true) */ removeRedundancy?: boolean; /** Compress whitespace (default: true) */ compressWhitespace?: boolean; /** Remove unnecessary punctuation (default: false) */ removePunctuation?: boolean; /** Preserve code blocks (default: true) */ preserveCodeBlocks?: boolean; /** Preserve markdown formatting (default: true) */ preserveMarkdown?: boolean; /** Aggressive optimization (default: false) */ aggressive?: boolean; } export interface TokenCountResult { /** Total tokens */ tokens: number; /** Characters */ characters: number; /** Words */ words: number; /** Estimated cost (USD) */ estimatedCost: number; /** Breakdown by provider */ breakdown: { provider: LLMProvider; tokens: number; cost: number; }[]; } export interface ContextWindowOptions { /** Maximum context window size */ maxTokens: number; /** Reserve tokens for response (default: 1000) */ reserveTokens?: number; /** Priority scoring function */ priorityScorer?: (chunk: string) => number; /** Chunk overlap (default: 0) */ overlap?: number; } export interface ChunkResult { chunks: string[]; totalTokens: number; chunkTokens: number[]; metadata: { originalSize: number; optimizedSize: number; reduction: number; }; } export interface CostEstimate { provider: LLMProvider; model: string; inputTokens: number; estimatedOutputTokens: number; inputCost: number; outputCost: number; totalCost: number; currency: string; } export interface OptimizationResult { /** Original prompt */ original: string; /** Optimized prompt */ optimized: string; /** Token reduction */ reduction: { tokens: number; percentage: number; characters: number; words: number; }; /** Cost savings */ savings: { estimated: number; currency: string; }; /** Statistics */ stats: { originalTokens: number; optimizedTokens: number; originalChars: number; optimizedChars: number; }; }