@ui18n/angular
Version:
🅰️ Modern Angular internationalization with standalone components, signals, and dependency injection support for Angular 15+
137 lines • 4.17 kB
TypeScript
/**
* UI18n开发者统计信息服务
* 提供全面的翻译使用统计、性能监控和成本分析
*/
import { DeveloperStats, LanguagePackStatus, StatsQuery, SupportedLanguage, TranslationResult } from './types';
import { FallbackErrorType } from './fallback-manager';
export interface StatsDataPoint {
id: string;
timestamp: Date;
type: 'translation' | 'error' | 'cache_hit' | 'cache_miss';
text: string;
sourceLanguage: SupportedLanguage;
targetLanguage: SupportedLanguage;
provider: 'aiProvider' | 'cloudService' | 'cache' | 'builtin';
responseTime: number;
success: boolean;
error?: {
type: FallbackErrorType;
message: string;
};
cost?: {
tokens: number;
promptTokens: number;
completionTokens: number;
estimatedCost: number;
};
metadata?: {
batchId?: string;
sessionId?: string;
confidence?: number;
[key: string]: any;
};
}
export interface CostCalculator {
calculateCost(provider: string, tokens: number, model?: string): number;
getTokenCount(text: string): number;
}
/**
* 默认成本计算器
* 基于各大AI提供商的定价模型
*/
export declare class DefaultCostCalculator implements CostCalculator {
private readonly pricing;
calculateCost(provider: string, tokens: number, model?: string): number;
getTokenCount(text: string): number;
}
/**
* 开发者统计信息服务
*/
export declare class DeveloperStatsService {
private dataPoints;
private costCalculator;
private maxDataPoints;
private sessionId;
constructor(options?: {
costCalculator?: CostCalculator;
maxDataPoints?: number;
});
/**
* 记录翻译请求
*/
recordTranslation(text: string, sourceLanguage: SupportedLanguage, targetLanguage: SupportedLanguage, result: TranslationResult, metadata?: any): void;
/**
* 记录错误
*/
recordError(text: string, sourceLanguage: SupportedLanguage, targetLanguage: SupportedLanguage, provider: string, errorType: FallbackErrorType, errorMessage: string, responseTime: number, metadata?: any): void;
/**
* 记录缓存命中
*/
recordCacheHit(text: string, sourceLanguage: SupportedLanguage, targetLanguage: SupportedLanguage, responseTime?: number): void;
/**
* 记录缓存未命中
*/
recordCacheMiss(text: string, sourceLanguage: SupportedLanguage, targetLanguage: SupportedLanguage): void;
/**
* 生成开发者统计报告
*/
generateStats(query?: StatsQuery): Promise<DeveloperStats>;
/**
* 获取语言包状态
*/
getLanguagePacksStatus(): Promise<LanguagePackStatus[]>;
/**
* 清理旧数据
*/
cleanup(olderThan?: Date): void;
/**
* 导出统计数据
*/
exportData(format?: 'json' | 'csv'): string;
/**
* 获取实时统计摘要
*/
getRealTimeStats(): {
activeRequests: number;
requestsPerMinute: number;
errorRate: number;
avgResponseTime: number;
cacheHitRate: number;
estimatedHourlyCost: number;
};
private addDataPoint;
private filterData;
private getTimeRange;
private calculateTranslationStats;
private calculatePerformanceStats;
private calculateCacheStats;
private calculateCostStats;
private calculateLanguageStats;
private calculateProviderStats;
private calculateErrorStats;
private calculatePatternStats;
private exportToCsv;
private generateId;
private generateSessionId;
/**
* 获取使用统计信息
*/
getUsageStats(): Promise<{
translations: {
total: number;
byLanguage: Record<string, number>;
};
quality: {
averageScore: number;
};
performance: {
averageResponseTime: number;
};
costs: {
total: number;
byProvider: Record<string, number>;
};
}>;
}
export declare const defaultStatsService: DeveloperStatsService;
//# sourceMappingURL=developer-stats-service.d.ts.map