UNPKG

@callmedayz/ai-prompt-toolkit

Version:

Professional AI prompt engineering toolkit with advanced template features, real-time dashboards, conditional logic, template inheritance, live monitoring, OpenRouter integration, and 310+ model support

118 lines 4.21 kB
"use strict"; // Utility functions for ai-prompt-toolkit Object.defineProperty(exports, "__esModule", { value: true }); exports.getTokenCount = getTokenCount; exports.getDetailedTokenCount = getDetailedTokenCount; exports.compareTokenCounts = compareTokenCounts; exports.estimateTokens = estimateTokens; exports.chunkText = chunkText; exports.validatePrompt = validatePrompt; exports.optimizePrompt = optimizePrompt; exports.fitsInModel = fitsInModel; exports.recommendModel = recommendModel; exports.calculateCost = calculateCost; exports.getPromptQuality = getPromptQuality; exports.chunkForModel = chunkForModel; exports.optimizeToTarget = optimizeToTarget; exports.analyzePrompt = analyzePrompt; const token_counter_1 = require("./token-counter"); const text_chunker_1 = require("./text-chunker"); const prompt_validator_1 = require("./prompt-validator"); const prompt_optimizer_1 = require("./prompt-optimizer"); const openrouter_types_1 = require("./openrouter-types"); /** * Get accurate token count using OpenRouter API (async) */ async function getTokenCount(text, model = openrouter_types_1.DEFAULT_FREE_MODEL) { return token_counter_1.TokenCounter.getTokenCount(text, model); } /** * Get detailed token count with native tokenizer information */ async function getDetailedTokenCount(text, model = openrouter_types_1.DEFAULT_FREE_MODEL) { return token_counter_1.TokenCounter.getDetailedTokenCount(text, model); } /** * Compare estimation accuracy against real API tokenization */ async function compareTokenCounts(text, model = openrouter_types_1.DEFAULT_FREE_MODEL) { return token_counter_1.TokenCounter.compareTokenCounts(text, model); } /** * Quick token estimation utility function (synchronous fallback) */ function estimateTokens(text, model = openrouter_types_1.DEFAULT_FREE_MODEL) { return token_counter_1.TokenCounter.estimateTokens(text, model); } /** * Quick text chunking utility function */ function chunkText(text, options) { return text_chunker_1.TextChunker.chunkText(text, options); } /** * Quick prompt validation utility function */ function validatePrompt(prompt, model = openrouter_types_1.DEFAULT_FREE_MODEL) { return prompt_validator_1.PromptValidator.validate(prompt, model); } /** * Quick prompt optimization utility function */ function optimizePrompt(prompt, model = openrouter_types_1.DEFAULT_FREE_MODEL) { return prompt_optimizer_1.PromptOptimizer.optimize(prompt, model); } /** * Check if text fits in a specific model's context window */ function fitsInModel(text, model) { return token_counter_1.TokenCounter.fitsInModel(text, model); } /** * Get the best model recommendation for a given text */ function recommendModel(text) { return token_counter_1.TokenCounter.recommendModel(text); } /** * Calculate the cost of processing text with a specific model */ function calculateCost(text, model) { return token_counter_1.TokenCounter.calculateCost(text, model); } /** * Get a quality score for a prompt (0-100) */ function getPromptQuality(prompt, model = openrouter_types_1.DEFAULT_FREE_MODEL) { return prompt_validator_1.PromptValidator.getQualityScore(prompt, model); } /** * Chunk text specifically for a model with optimal settings */ function chunkForModel(text, model, overlapPercent = 10) { return text_chunker_1.TextChunker.chunkForModel(text, model, overlapPercent); } /** * Optimize prompt to fit within a specific token limit */ function optimizeToTarget(prompt, targetTokens, model = openrouter_types_1.DEFAULT_FREE_MODEL) { return prompt_optimizer_1.PromptOptimizer.optimizeToTarget(prompt, targetTokens, model); } /** * Get comprehensive analysis of a prompt */ function analyzePrompt(prompt, model = openrouter_types_1.DEFAULT_FREE_MODEL) { const tokens = estimateTokens(prompt, model); const validation = validatePrompt(prompt, model); const quality = getPromptQuality(prompt, model); const recommendation = recommendModel(prompt); return { tokens, validation, quality, recommendation, fitsInModel: fitsInModel(prompt, model), cost: calculateCost(prompt, model) }; } //# sourceMappingURL=utils.js.map