GEPAOptimizer
constructor(gepaFeedback: GEPAFeedback<Input, Output, InputLabel>, feedbackValSplitFn: (TrainSet<Input, InputLabel>) -> GEPATrainSetSplit<Input, InputLabel>, reflectionModel: LLModel, storagePath: ResilientPath, numRollouts: Int, feedbackBatchSize: Int = 3, skipPerfectFeedbackBatches: Boolean = true, perfectScoreThreshold: Double = 1.0, randomSeed: Long = 42, moduleSelectionStrategy: GEPAModuleSelectionStrategy = GEPAModuleSelectionStrategy.ROUND_ROBIN, useStructuredOutput: Boolean = false, requireThinkingFieldInOutput: Boolean = false, mergeConfig: GEPAMergeConfig = GEPAMergeConfig(), failureScore: Double = 0.0, feedbackFailureRateThreshold: Double = 1.0, validationFailureRateThreshold: Double = 0.9, seedValidationFailureRateThreshold: Double = 0.0, abortOnFailureRateExceeded: Boolean = true)