UNPKG

recoder-shared

Version:

Shared types, utilities, and configurations for Recoder

56 lines 2.1 kB
"use strict"; /** * Reasoning and budget utilities */ Object.defineProperty(exports, "__esModule", { value: true }); exports.DEFAULT_HYBRID_REASONING_MODEL_THINKING_TOKENS = exports.DEFAULT_HYBRID_REASONING_MODEL_MAX_TOKENS = void 0; exports.shouldUseReasoningBudget = shouldUseReasoningBudget; exports.shouldUseReasoningEffort = shouldUseReasoningEffort; exports.getModelMaxOutputTokens = getModelMaxOutputTokens; exports.DEFAULT_HYBRID_REASONING_MODEL_MAX_TOKENS = 16384; exports.DEFAULT_HYBRID_REASONING_MODEL_THINKING_TOKENS = 8192; function shouldUseReasoningBudget(modelOrOptions) { if (typeof modelOrOptions === 'string') { // Check if model supports reasoning budget const reasoningModels = [ 'claude-3-opus-20240229', 'claude-3-sonnet-20240229', 'claude-3-5-sonnet-20241022', 'gpt-4', 'gpt-4-turbo' ]; return reasoningModels.some(m => modelOrOptions.includes(m)); } // For the object form, check model properties const { model } = modelOrOptions; return shouldUseReasoningBudget(model.description || ''); } function shouldUseReasoningEffort(options) { // Check if model supports reasoning effort (traditional reasoning models) const { model } = options; const modelName = model.description || ''; const reasoningEffortModels = [ 'o1-preview', 'o1-mini', 'o3-mini' ]; return reasoningEffortModels.some(m => modelName.includes(m)); } function getModelMaxOutputTokens(options) { const { model, settings } = options; // Use custom max tokens from settings if provided if (settings.modelMaxTokens) { return settings.modelMaxTokens; } // Use model's maxTokens if available if (model.maxTokens && model.maxTokens > 0) { return model.maxTokens; } // For reasoning models, use default if (shouldUseReasoningBudget(options)) { return exports.DEFAULT_HYBRID_REASONING_MODEL_MAX_TOKENS; } // Default fallback return undefined; } //# sourceMappingURL=reasoning.js.map