route-claudecode
Version:
Advanced routing and transformation system for Claude Code outputs to multiple AI providers
116 lines • 3.08 kB
TypeScript
/**
* 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