@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
JavaScript
;
// 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