pdca
Version:
🎯 AI 驅動的 PDCA 多代理開發系統 - 智能循環控制 + 成本管理 + Token 優化 + 多 AI 引擎支援
122 lines • 3.01 kB
TypeScript
/**
* 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