rag-cli-tester
Version:
A lightweight CLI tool for testing RAG (Retrieval-Augmented Generation) systems with different embedding combinations
81 lines • 2.76 kB
TypeScript
import { DatabaseConnection } from './database';
import { EmbeddingGenerator } from './embeddings';
import { BaseMetricResult } from './metrics/base-metric';
import { TestConfiguration, TestResult, ExperimentResults } from './types';
export interface ProductionTestConfiguration extends TestConfiguration {
trainingRatio: number;
validationRatio: number;
testingRatio: number;
maxTrainingSamples: number;
maxValidationSamples: number;
maxTestingSamples: number;
batchSize: number;
enableCaching: boolean;
crossValidationFolds: number;
minQueryLength: number;
minAnswerLength: number;
maxQueryLength: number;
maxAnswerLength: number;
samplingStrategy: 'random' | 'stratified' | 'time_based' | 'query_complexity';
timestampColumn?: string;
timeWindow?: 'daily' | 'weekly' | 'monthly';
complexityMetrics?: string[];
}
export interface ProductionTestResult extends TestResult {
detailedMetrics: BaseMetricResult;
crossValidationScores: number[];
crossValidationMean: number;
crossValidationStd: number;
confidenceInterval: {
lower: number;
upper: number;
confidence: number;
};
processingStats: {
trainingTime: number;
validationTime: number;
testingTime: number;
embeddingTime: number;
memoryUsage: number;
throughput: number;
};
dataQuality: {
trainingSampleSize: number;
validationSampleSize: number;
testingSampleSize: number;
averageQueryLength: number;
averageAnswerLength: number;
queryComplexityDistribution: Record<string, number>;
};
}
export declare class ProductionRAGTester {
private db;
private embeddings;
private metricCache;
private embeddingCache;
constructor(dbConnection: DatabaseConnection, embeddingGenerator: EmbeddingGenerator);
initialize(): Promise<void>;
runProductionExperiment(config: ProductionTestConfiguration): Promise<ExperimentResults>;
private runProductionSingleTest;
private splitData;
private sampleData;
private timeBasedSampling;
private complexityBasedSampling;
private stratifiedSampling;
private calculateQueryComplexity;
private runCrossValidation;
private generateTrainingEmbeddings;
private processTestQueries;
private getMetric;
private randomSample;
private combineColumns;
private calculateConfidenceInterval;
private calculateDataQuality;
private calculateProductionSummary;
validateProductionConfiguration(config: ProductionTestConfiguration): Promise<{
isValid: boolean;
errors: string[];
warnings: string[];
}>;
}
//# sourceMappingURL=production-tester.d.ts.map