Add WhisperX configuration contract

This commit is contained in:
2026-05-03 15:23:47 -05:00
parent 598584cf2d
commit c2a715d3f6
8 changed files with 227 additions and 10 deletions

View File

@@ -15,6 +15,7 @@ func LoadPipeline(path string) (*PipelineConfig, error) {
if err := decodeStrictYAML("pipeline", path, &cfg); err != nil {
return nil, fmt.Errorf("load pipeline config: %w", err)
}
applyPipelineDefaults(&cfg)
return &cfg, nil
}
@@ -75,3 +76,36 @@ func shortName(path, fallback string) string {
}
return base
}
func applyPipelineDefaults(cfg *PipelineConfig) {
if cfg == nil {
return
}
applyWhisperXDefaults(&cfg.WhisperX)
}
func applyWhisperXDefaults(cfg *WhisperXConfig) {
if cfg == nil {
return
}
if cfg.Language == "" {
cfg.Language = "en"
}
if cfg.Timeout == "" {
cfg.Timeout = "30m"
}
if cfg.RetryDelay == "" {
cfg.RetryDelay = "2s"
}
if cfg.Concurrency == nil {
cfg.Concurrency = intPtr(2)
}
if cfg.Retries == nil {
cfg.Retries = intPtr(3)
}
}
func intPtr(v int) *int {
p := v
return &p
}