mirror of
https://github.com/danielmiessler/Fabric.git
synced 2026-01-09 14:28:01 -05:00
- Add newline to `CreateOutputFile` if missing - Use `t.Cleanup` for file removal in tests - Add test for message with trailing newline - Introduce `printedStream` flag in `Chatter.Send` - Print newline if stream printed without trailing newline
YAML Configuration Support
Overview
Fabric now supports YAML configuration files for commonly used options. This allows users to persist settings and share configurations across multiple runs.
Usage
Use the --config flag to specify a YAML configuration file:
fabric --config ~/.config/fabric/config.yaml "Tell me about APIs"
Configuration Precedence
- CLI flags (highest priority)
- YAML config values
- Default values (lowest priority)
Supported Configuration Options
# Model selection
model: gpt-4
modelContextLength: 4096
# Model parameters
temperature: 0.7
topp: 0.9
presencepenalty: 0.0
frequencypenalty: 0.0
seed: 42
# Pattern selection
pattern: analyze # Use pattern name or filename
# Feature flags
stream: true
raw: false
Rules and Behavior
- Only long flag names are supported in YAML (e.g.,
temperaturenot-t) - CLI flags always override YAML values
- Unknown YAML declarations are ignored
- If a declaration appears multiple times in YAML, the last one wins
- The order of YAML declarations doesn't matter
Type Conversions
The following string-to-type conversions are supported:
- String to number:
"42"→42 - String to float:
"42.5"→42.5 - String to boolean:
"true"→true
Example Config
# ~/.config/fabric/config.yaml
model: gpt-4
temperature: 0.8
pattern: analyze
stream: true
topp: 0.95
presencepenalty: 0.1
frequencypenalty: 0.2
CLI Override Example
# Override temperature from config
fabric --config ~/.config/fabric/config.yaml --temperature 0.9 "Query"