fix: multi-model routing — each adapter uses own dspy.LM instance
- DSPyLLMAdapter now accepts dspy.LM instead of model string, uses dspy.context(lm=...) - DSPyJudgeAdapter, DSPyProposerAdapter, DSPySyntheticAdapter each accept and use own LM - OptimizationConfig gains per-model api_base/api_key_env override fields - cli/app.py creates separate dspy.LM per adapter with per-model overrides - New unit tests verify each adapter isolates its LM from global config Fixes Bug #1 (multi-model config not wired) and Bug #2 (DSPyLLMAdapter ignores model param). Co-Authored-By: Paperclip <noreply@paperclip.ing>
This commit is contained in:
@@ -19,6 +19,16 @@ class OptimizationConfig:
|
||||
proposer_model: str = "openai/gpt-4o"
|
||||
synth_model: str = "openai/gpt-4o"
|
||||
|
||||
# --- Per-model API overrides (optional, fall back to global api_base/api_key_env) ---
|
||||
task_api_base: str | None = None
|
||||
task_api_key_env: str | None = None
|
||||
judge_api_base: str | None = None
|
||||
judge_api_key_env: str | None = None
|
||||
proposer_api_base: str | None = None
|
||||
proposer_api_key_env: str | None = None
|
||||
synth_api_base: str | None = None
|
||||
synth_api_key_env: str | None = None
|
||||
|
||||
# --- Evolution parameters ---
|
||||
max_iterations: int = 30
|
||||
n_synthetic_inputs: int = 20
|
||||
|
||||
Reference in New Issue
Block a user