@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
TypeScript
/**
* 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;
};
}