UNPKG

route-claudecode

Version:

Advanced routing and transformation system for Claude Code outputs to multiple AI providers

116 lines 3.08 kB
/** * Max Token Preprocessing Module * 最大Token预处理模块 * Owner: Jason Zhang * * 提供多种max token处理策略: * 1. 动态截断历史记录 * 2. 路由重定向到long context模型 * 3. Long context模型压缩 */ export interface MaxTokenStrategy { name: string; enabled: boolean; priority: number; } export interface DynamicTruncationConfig extends MaxTokenStrategy { name: 'dynamic_truncation'; truncatePosition: 'head' | 'tail' | 'middle'; tokenRatio: number; preserveSystemPrompt: boolean; preserveLatestMessages: number; enableSimplifiedTools: boolean; } export interface RouteRedirectionConfig extends MaxTokenStrategy { name: 'route_redirection'; longContextCategory: string; tokenThreshold: number; } export interface LongContextCompressionConfig extends MaxTokenStrategy { name: 'long_context_compression'; compressionRatio: number; compressionModel: string; } export interface MaxTokenPreprocessorConfig { enabled: boolean; strategies: { dynamicTruncation: DynamicTruncationConfig; routeRedirection: RouteRedirectionConfig; longContextCompression: LongContextCompressionConfig; }; } export interface Message { role: string; content: string; tool_calls?: any[]; tool_call_id?: string; } export interface PreprocessedRequest { messages: Message[]; model: string; max_tokens?: number; temperature?: number; tools?: any[]; redirectedCategory?: string; appliedStrategies: string[]; originalTokenCount: number; processedTokenCount: number; } export interface TokenAnalysis { totalTokens: number; systemTokens: number; userTokens: number; assistantTokens: number; toolTokens: number; exceedsLimit: boolean; exceedsBy: number; } export declare class MaxTokenPreprocessor { private config; constructor(config: MaxTokenPreprocessorConfig); /** * 主要预处理入口 */ preprocessRequest(request: any, maxTokenLimit: number, routingCategory?: string): Promise<PreprocessedRequest>; /** * 分析请求的token使用情况 */ private analyzeTokens; /** * 简化的token估算 (实际应该使用准确的tokenizer) */ private estimateTokens; /** * 按优先级获取启用的策略 */ private getEnabledStrategiesByPriority; /** * 应用路由重定向策略 */ private applyRouteRedirection; /** * 应用动态截断策略 */ private applyDynamicTruncation; /** * 计算消息列表的总token数 */ private calculateMessagesTokens; /** * 简化工具定义 */ private simplifyToolDefinitions; /** * 应用长上下文压缩策略 */ private applyLongContextCompression; /** * 压缩消息 (占位符实现) */ private compressMessages; /** * 获取默认配置 */ static getDefaultConfig(): MaxTokenPreprocessorConfig; } //# sourceMappingURL=max-token-preprocessor.d.ts.map