route-claudecode
Version:
Advanced routing and transformation system for Claude Code outputs to multiple AI providers
178 lines • 5.36 kB
TypeScript
/**
* Auto-Correction Tool
* 根据历史对比数据自动学习修正规则
* Project owner: Jason Zhang
*/
import { BaseRequest, BaseResponse } from '@/types';
import { ComparisonAnalysisEngine } from './analysis-engine';
import { CorrectionEngine, CorrectionResult } from './correction-engine';
export interface LearningData {
patterns: CorrectionPattern[];
statistics: LearningStatistics;
rules: LearnedRule[];
confidence: number;
lastUpdated: Date;
}
export interface CorrectionPattern {
id: string;
type: 'content' | 'structure' | 'tools' | 'metadata' | 'formatting';
triggerConditions: PatternCondition[];
correctionAction: CorrectionAction;
successRate: number;
frequency: number;
confidence: number;
examples: PatternExample[];
}
export interface PatternCondition {
field: string;
operator: 'equals' | 'contains' | 'length_gt' | 'length_lt' | 'missing' | 'differs';
value: any;
weight: number;
}
export interface CorrectionAction {
method: string;
parameters: Record<string, any>;
expectedImpact: number;
}
export interface PatternExample {
originalValue: any;
correctedValue: any;
context: string;
success: boolean;
confidence: number;
}
export interface LearnedRule {
id: string;
name: string;
description: string;
conditions: RuleCondition[];
actions: RuleAction[];
priority: number;
confidence: number;
applicableScenarios: string[];
performance: RulePerformance;
}
export interface RuleCondition {
type: 'content_similarity' | 'length_ratio' | 'structure_diff' | 'token_ratio' | 'tool_presence';
threshold: number;
operator: 'gt' | 'lt' | 'eq' | 'between';
value: number | [number, number];
}
export interface RuleAction {
type: 'replace_content' | 'merge_content' | 'fix_structure' | 'correct_tools' | 'normalize_metadata';
strategy: string;
parameters: Record<string, any>;
confidence: number;
}
export interface RulePerformance {
totalApplications: number;
successfulApplications: number;
averageImprovement: number;
averageConfidence: number;
lastUsed: Date;
}
export interface LearningStatistics {
totalComparisons: number;
totalCorrections: number;
averageSuccessRate: number;
patternCount: number;
ruleCount: number;
mostCommonIssues: Array<{
issue: string;
frequency: number;
}>;
improvementTrends: Array<{
date: Date;
score: number;
}>;
}
export interface AutoCorrectionConfig {
learningEnabled: boolean;
minimumDataPoints: number;
confidenceThreshold: number;
patternDetectionThreshold: number;
ruleGenerationThreshold: number;
maxPatternsPerType: number;
maxRules: number;
dataStoragePath: string;
autoSaveInterval: number;
}
export declare class AutoCorrectionTool {
private config;
private analysisEngine;
private correctionEngine;
private learningData;
private autoSaveTimer?;
constructor(analysisEngine: ComparisonAnalysisEngine, correctionEngine: CorrectionEngine, config: AutoCorrectionConfig);
/**
* 从历史数据学习并生成修正规则
*/
learnFromHistory(): Promise<void>;
/**
* 应用学习到的规则进行自动修正
*/
applyAutomaticCorrection(request: BaseRequest, codewhispererResponse: BaseResponse, openaiReference: BaseResponse): Promise<{
correctedResponse: BaseResponse;
appliedRules: string[];
confidence: number;
improvements: string[];
}>;
/**
* 评估修正效果并更新学习数据
*/
evaluateAndUpdateLearning(correctionResult: CorrectionResult, actualPerformance: {
userSatisfaction?: number;
correctnessScore?: number;
usabilityScore?: number;
}): Promise<void>;
/**
* 获取修正建议
*/
getRecommendations(request: BaseRequest, codewhispererResponse: BaseResponse, openaiReference: BaseResponse): Promise<{
urgentRecommendations: string[];
improvementSuggestions: string[];
preventiveMeasures: string[];
confidence: number;
}>;
private detectCorrectionPatterns;
private generateLearnedRules;
private generateContentRules;
private generateStructureRules;
private generateToolRules;
private generateMetadataRules;
private performQuickAnalysis;
private extractTextContent;
private extractToolCalls;
private calculateContentSimilarity;
private calculateStructuralDifference;
private shouldApplyRule;
private shouldApplyPattern;
private applyRule;
private applyPattern;
private patternMatches;
private getAnalysisValue;
private evaluateCondition;
private initializeStatistics;
private updateLearningStatistics;
private calculateOverallConfidence;
private saveLearningData;
private loadLearningData;
private startAutoSave;
/**
* 清理资源
*/
destroy(): void;
/**
* 获取学习数据统计
*/
getLearningStatistics(): LearningStatistics;
/**
* 获取学习到的模式
*/
getLearnedPatterns(): CorrectionPattern[];
/**
* 获取学习到的规则
*/
getLearnedRules(): LearnedRule[];
}
//# sourceMappingURL=auto-correction.d.ts.map