openai-cli-unofficial
Version:
A powerful OpenAI CLI Coding Agent built with TypeScript
57 lines • 1.8 kB
TypeScript
import { ChatMessage } from '../services/openai';
export interface Message {
type: 'user' | 'ai' | 'system' | 'tool';
content: any;
displayContent?: string;
timestamp: Date;
tool_calls?: any[];
tool_call_id?: string;
name?: string;
}
export interface TokenCalculationResult {
totalTokens: number;
maxAllowedTokens: number;
allowedMessages: Message[];
droppedCount: number;
summary?: string;
}
export declare class TokenCalculator {
private static encoding;
/**
* 初始化编码器,优先使用模型特定的编码器,回退到通用编码器
*/
private static getEncoding;
/**
* 计算文本的Token数量
*/
static calculateTokens(text: string): number;
/**
* 计算ChatMessage的Token数量(包括角色信息的开销)
*/
static calculateChatMessageTokens(message: ChatMessage): number;
/**
* 计算多个ChatMessage的总Token数量
*/
static calculateChatMessagesTokens(messages: ChatMessage[]): number;
/**
* 智能选择历史记录,确保不超过上下文Token限制
* 现在是一个异步函数,以支持智能压缩
*/
static selectHistoryMessages(messages: Message[], systemMessage: string, targetUsageRatio?: number): Promise<TokenCalculationResult>;
/**
* 获取当前配置的上下文使用统计信息
*/
static getContextUsageStats(messages: Message[], systemMessage: string, targetUsageRatio?: number): Promise<{
maxContext: number;
maxAllowed: number;
used: number;
percentage: number;
remaining: number;
isNearLimit: boolean;
}>;
/**
* 释放编码器资源
*/
static cleanup(): void;
}
//# sourceMappingURL=token-calculator.d.ts.map