UNPKG

pdca

Version:

🎯 AI 驅動的 PDCA 多代理開發系統 - 智能循環控制 + 成本管理 + Token 優化 + 多 AI 引擎支援

122 lines 3.01 kB
/** * Token 追蹤系統 - 真實 Token 計算與成本管理 */ import { EventEmitter } from 'events'; /** * AI 模型類型 */ export declare enum AIModel { CLAUDE_3_5_SONNET = "claude-3-5-sonnet", CLAUDE_3_HAIKU = "claude-3-haiku", GPT_4 = "gpt-4", GPT_3_5_TURBO = "gpt-3.5-turbo", GEMINI_PRO = "gemini-pro", GEMINI_FLASH = "gemini-1.5-flash" } /** * Token 使用記錄 */ export interface TokenUsage { inputTokens: number; outputTokens: number; totalTokens: number; estimatedCost: number; timestamp: Date; model: AIModel; agentId?: string; operation?: string; } /** * 成本計算配置 */ export interface PricingModel { inputCostPer1K: number; outputCostPer1K: number; } /** * 累積統計 */ export interface TokenStatistics { totalInputTokens: number; totalOutputTokens: number; totalTokens: number; totalCost: number; operationCount: number; averageTokensPerOperation: number; costByAgent: Record<string, number>; tokensByAgent: Record<string, number>; startTime: Date; lastUpdate: Date; } /** * 真實 Token 追蹤器 */ export declare class RealTokenTracker extends EventEmitter { private usageHistory; private pricingModels; private startTime; private currentBudget?; private warningThreshold; constructor(budget?: number); /** * 估算文本的 token 數量 */ estimateTokens(text: string, model?: AIModel): number; /** * 記錄 AI 調用的 token 使用 */ trackUsage(input: string, output: string, model: AIModel, agentId?: string, operation?: string): TokenUsage; /** * 只估算不記錄(用於預測成本) */ estimateUsage(input: string, expectedOutput: string, model: AIModel): TokenUsage; /** * 獲取累積統計 */ getStatistics(): TokenStatistics; /** * 獲取預算使用狀況 */ getBudgetStatus(): { totalCost: number; budget?: number; remainingBudget?: number; usagePercentage?: number; isOverBudget: boolean; willExceedBudget: (estimatedCost: number) => boolean; }; /** * 設定預算和警告閾值 */ setBudget(budget: number, warningThreshold?: number): void; /** * 檢查預算警告 */ private checkBudgetWarnings; /** * 重置統計(保留配置) */ reset(): void; /** * 匯出詳細報告 */ exportReport(): { summary: TokenStatistics; budgetStatus: any; usageHistory: TokenUsage[]; recommendations: string[]; }; } /** * 全域 Token 追蹤器實例 */ export declare let globalTokenTracker: RealTokenTracker | null; /** * 初始化全域追蹤器 */ export declare function initializeTokenTracker(budget?: number): RealTokenTracker; /** * 獲取全域追蹤器 */ export declare function getTokenTracker(): RealTokenTracker; //# sourceMappingURL=token-tracker.d.ts.map