UNPKG

aiwrapper

Version:

A Universal AI Wrapper for JavaScript & TypeScript

32 lines (31 loc) 1.01 kB
function estimateTokens(text) { return Math.ceil(text.length / 4); } function calculateModelResponseTokens(model, messages, maxTokens) { if (model.context.type !== "token") { return maxTokens || 4e3; } const context = model.context; if (context.outputIsFixed === 1 && context.maxOutput) { if (maxTokens) { return Math.min(maxTokens, context.maxOutput); } return context.maxOutput; } if (context.total && context.maxOutput) { const inputTokens = messages.reduce((sum, message) => { if (message.text.length === 0) return sum; return sum + estimateTokens(message.text) + 4; }, 0); const remainingTokens = context.total - inputTokens; if (maxTokens) { return Math.max(0, Math.min(maxTokens, context.maxOutput, remainingTokens)); } return Math.max(0, Math.min(context.maxOutput, remainingTokens)); } return maxTokens || context.maxOutput || 4e3; } export { calculateModelResponseTokens }; //# sourceMappingURL=token-calculator.js.map