143 lines
5.3 KiB
Go
143 lines
5.3 KiB
Go
package config
|
|
|
|
// Config is the resolved combined configuration from pipeline.yml and session.yml.
|
|
type Config struct {
|
|
Pipeline *PipelineConfig
|
|
Session *SessionConfig
|
|
PipelinePath string
|
|
SessionPath string
|
|
}
|
|
|
|
// PipelineConfig contains durable pipeline-level settings.
|
|
type PipelineConfig struct {
|
|
Workspace WorkspaceConfig `yaml:"workspace"`
|
|
Storage StorageConfig `yaml:"storage"`
|
|
WhisperX WhisperXConfig `yaml:"whisperx"`
|
|
Seriatim SeriatimConfig `yaml:"seriatim"`
|
|
Audita AuditaConfig `yaml:"audita"`
|
|
Scriptorium *ScriptoriumConfig `yaml:"scriptorium"`
|
|
Analyzer AnalyzerConfig `yaml:"analyzer"`
|
|
Notification NotificationConfig `yaml:"notification"`
|
|
}
|
|
|
|
// SessionConfig contains per-session inputs and metadata.
|
|
type SessionConfig struct {
|
|
SessionID string `yaml:"session_id"`
|
|
Campaign string `yaml:"campaign"`
|
|
Date string `yaml:"date"`
|
|
Title string `yaml:"title"`
|
|
Inputs SessionInputsConfig `yaml:"inputs"`
|
|
}
|
|
|
|
// WorkspaceConfig configures local workspace behavior.
|
|
type WorkspaceConfig struct {
|
|
Root string `yaml:"root"`
|
|
}
|
|
|
|
// StorageConfig configures storage backends and related parameters.
|
|
type StorageConfig struct {
|
|
Backend string `yaml:"backend"`
|
|
Bucket string `yaml:"bucket"`
|
|
Prefix string `yaml:"prefix"`
|
|
}
|
|
|
|
// WhisperXConfig configures WhisperX adapter settings.
|
|
type WhisperXConfig struct {
|
|
TranscribeURL string `yaml:"transcribe_url"`
|
|
Language string `yaml:"language"`
|
|
Timeout string `yaml:"timeout"`
|
|
Retries *int `yaml:"retries"`
|
|
RetryDelay string `yaml:"retry_delay"`
|
|
Concurrency *int `yaml:"concurrency"`
|
|
}
|
|
|
|
// SeriatimConfig configures seriatim adapter settings.
|
|
type SeriatimConfig struct {
|
|
Binary string `yaml:"binary"`
|
|
Timeout string `yaml:"timeout"`
|
|
OutputSchema string `yaml:"output_schema"`
|
|
CoalesceGap *float64 `yaml:"coalesce_gap"`
|
|
Report *bool `yaml:"report"`
|
|
Env SeriatimEnvConfig `yaml:"env"`
|
|
}
|
|
|
|
// SeriatimEnvConfig configures optional advanced seriatim environment tuning.
|
|
type SeriatimEnvConfig struct {
|
|
OverlapWordRunGap *float64 `yaml:"overlap_word_run_gap"`
|
|
OverlapWordRunReorderWindow *float64 `yaml:"overlap_word_run_reorder_window"`
|
|
BackchannelMaxDuration *float64 `yaml:"backchannel_max_duration"`
|
|
FillerMaxDuration *float64 `yaml:"filler_max_duration"`
|
|
}
|
|
|
|
// AuditaConfig configures audita adapter settings.
|
|
type AuditaConfig struct {
|
|
Binary string `yaml:"binary"`
|
|
Timeout string `yaml:"timeout"`
|
|
LLMAPIKeyEnv string `yaml:"llm_api_key_env"`
|
|
Modules []string `yaml:"modules"`
|
|
BaseURL string `yaml:"base_url"`
|
|
Model string `yaml:"model"`
|
|
LLMConcurrency *int `yaml:"llm_concurrency"`
|
|
ValidationModel string `yaml:"validation_model"`
|
|
ValidationLLMConcurrency *int `yaml:"validation_llm_concurrency"`
|
|
Report *bool `yaml:"report"`
|
|
}
|
|
|
|
// ScriptoriumConfig configures Scriptorium-backed artifact generation.
|
|
type ScriptoriumConfig struct {
|
|
Binary string `yaml:"binary"`
|
|
ConfigPath string `yaml:"config_path"`
|
|
Timeout string `yaml:"timeout"`
|
|
RenderDebug bool `yaml:"render_debug"`
|
|
Artifacts map[string]ScriptoriumArtifactConfig `yaml:"artifacts"`
|
|
}
|
|
|
|
// ScriptoriumArtifactConfig configures one named output artifact workflow.
|
|
type ScriptoriumArtifactConfig struct {
|
|
Enabled bool `yaml:"enabled"`
|
|
RenderDebug *bool `yaml:"render_debug"`
|
|
PromptID string `yaml:"prompt_id"`
|
|
ProfileID string `yaml:"profile_id"`
|
|
OutputPath string `yaml:"output_path"`
|
|
Timeout string `yaml:"timeout"`
|
|
Inputs map[string]ScriptoriumInputConfig `yaml:"inputs"`
|
|
Vars map[string]any `yaml:"vars"`
|
|
}
|
|
|
|
// ScriptoriumInputConfig configures one named prompt input source.
|
|
type ScriptoriumInputConfig struct {
|
|
Source string `yaml:"source"`
|
|
Artifact string `yaml:"artifact"`
|
|
Path string `yaml:"path"`
|
|
Required bool `yaml:"required"`
|
|
}
|
|
|
|
// AnalyzerConfig configures analyzer adapter settings.
|
|
type AnalyzerConfig struct {
|
|
BinaryPath string `yaml:"binary_path"`
|
|
Timeout string `yaml:"timeout"`
|
|
Artifacts ArtifactSettings `yaml:"artifacts"`
|
|
}
|
|
|
|
// NotificationConfig configures notification backend settings.
|
|
type NotificationConfig struct {
|
|
Backend string `yaml:"backend"`
|
|
Recipient string `yaml:"recipient"`
|
|
Timeout string `yaml:"timeout"`
|
|
}
|
|
|
|
// ArtifactSettings configures generated artifact selection and paths.
|
|
type ArtifactSettings struct {
|
|
OutputDir string `yaml:"output_dir"`
|
|
Types []string `yaml:"types"`
|
|
}
|
|
|
|
// SessionInputsConfig contains per-session input references.
|
|
type SessionInputsConfig struct {
|
|
AudioDir string `yaml:"audio_dir"`
|
|
AudioFiles []string `yaml:"audio_files"`
|
|
SpeakersFile string `yaml:"speakers_file"`
|
|
AutocorrectFile string `yaml:"autocorrect_file"`
|
|
GlossaryFile string `yaml:"glossary_file"`
|
|
}
|