Docs Home | API | Examples | Basic | Caching | Events | LLM | Architecture | Agent-Native | Benchmarks | Ecosystem
This page documents config loading order, schema, defaults, and production caveats.
Qirrel loads config in this order:
- Custom path passed to
new Pipeline(configPath)when that path exists. ./miniparse.config.yamlin current working directory.- Repository-root
default.yaml. - In-code defaults from
src/config/defaults.ts.
If a file fails to parse, Qirrel logs a warning and falls back to in-code defaults.
pipeline:
enableNormalization: true
enableCleaning: true
enableExtraction: true
enableSegmentation: true
enableAdvCleaning: false
tokenizer:
lowercase: true
mergeSymbols: false
cache:
maxEntries: 1000
ttl: 300000
speech:
removeFillerWords: true
detectRepetitions: false
findStutters: false
extraction:
extractEmails: true
extractPhones: true
extractUrls: true
extractNumbers: true
llm:
enabled: false
provider: gemini
apiKey: ${QIRREL_LLM_API_KEY}
model: gemini-2.5-flash
temperature: 0.7
maxTokens: 1024
timeout: 30000
cacheTtl: 300000enableNormalization: booleanenableCleaning: booleanenableExtraction: booleanenableSegmentation: booleanenableAdvCleaning: boolean
lowercase: booleanmergeSymbols: boolean
maxEntries?: numberttl?: number(milliseconds)
Set maxEntries: 0 to disable caching.
removeFillerWords: booleandetectRepetitions: booleanfindStutters: boolean
Important: these fields configure speech adapter behavior for preprocessSpeechInput and analyzeSpeechPatterns; they are not automatically applied by the default pipeline unless your integration explicitly uses the speech adapter APIs.
extractEmails: booleanextractPhones: booleanextractUrls: booleanextractNumbers: boolean
enabled: booleanprovider: string(gemini,openai,generic)apiKey?: stringmodel?: stringbaseUrl?: stringtemperature?: numbermaxTokens?: numbertimeout?: number(milliseconds)cacheTtl?: number(milliseconds)
Config string values support placeholders:
${QIRREL_LLM_API_KEY}${QIRREL_LLM_API_KEY:-fallback-value}
When llm.enabled is true and llm.apiKey is missing, Qirrel tries these environment keys in order:
QIRREL_LLM_API_KEYMINIPARSE_LLM_API_KEYOPENAI_API_KEYGEMINI_API_KEY
- Keep one config file per environment (dev/staging/prod).
- Set explicit
cache.ttlinstead of relying on defaults. - Start with
enableAdvCleaning: falseand enable only if emoji stripping is desired. - For LLM-enabled deployments, set
timeoutandcacheTtlintentionally to prevent latency spikes.
- Omitting the
cacheblock does not disable cache; defaults still apply unlessmaxEntries: 0. - A missing custom config path does not fail hard; loader continues fallback resolution.
default.yamlmay be minimal; runtime defaults come from merged in-code defaults.