Summary
Support distill.yaml configuration file for persistent settings.
Motivation
CLI flags are tedious for repeated use. A config file enables consistent settings across invocations and easier deployment configuration.
Configuration Schema
# distill.yaml
server:
port: 8080
host: 0.0.0.0
read_timeout: 30s
write_timeout: 30s
embedding:
provider: openai
model: text-embedding-3-small
batch_size: 100
dedup:
threshold: 0.15
method: agglomerative
linkage: average
compress:
enabled: true
target_reduction: 0.5
preserve_structure: true
summarize:
enabled: true
max_tokens: 4000
preserve_recent: 5
cache:
enabled: true
backend: memory # or redis
max_size: 100MB
ttl: 1h
redis_url: redis://localhost:6379
retriever:
backend: pinecone # or qdrant
index: my-index
top_k: 50
auth:
api_keys:
- ${DISTILL_API_KEY}
telemetry:
metrics:
enabled: true
port: 9090
tracing:
enabled: false
Config Loading Priority
- CLI flags (highest)
- Environment variables
- Config file
- Defaults (lowest)
Acceptance Criteria
Summary
Support
distill.yamlconfiguration file for persistent settings.Motivation
CLI flags are tedious for repeated use. A config file enables consistent settings across invocations and easier deployment configuration.
Configuration Schema
Config Loading Priority
Acceptance Criteria
${VAR})distill config validatecommanddistill config initto generate template