feat(llm): full multi-tier S/A/B/C/D with routing + pricing
Estende ModelTier a 5 livelli (S/A/B/C/D) con routing automatico: S/A/B via Anthropic SDK, C/D via OpenRouter (OpenAI SDK). Aggiunge prezzi per tier S (Opus), A (Sonnet placeholder) e D (Llama). Refactor LLMClient.complete con dispatch tramite tier_models map e helper _call_anthropic / _call_openrouter. Settings esposte per tutti e 5 i modelli env-configurabili. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
This commit is contained in:
@@ -48,3 +48,22 @@ def test_genome_id_is_deterministic_on_content():
|
||||
top_p=0.9, model_tier=ModelTier.C, lookback_window=100, cognitive_style="x",
|
||||
)
|
||||
assert g1.id == g2.id
|
||||
|
||||
|
||||
def test_genome_all_tiers_serde_roundtrip():
|
||||
"""Tutti i 5 tier (S, A, B, C, D) sopravvivono a to_dict/from_dict."""
|
||||
for tier in (ModelTier.S, ModelTier.A, ModelTier.B, ModelTier.C, ModelTier.D):
|
||||
g = HypothesisAgentGenome(
|
||||
system_prompt="prompt",
|
||||
feature_access=["close"],
|
||||
temperature=0.7,
|
||||
top_p=0.9,
|
||||
model_tier=tier,
|
||||
lookback_window=128,
|
||||
cognitive_style="generic",
|
||||
)
|
||||
payload = g.to_dict()
|
||||
assert payload["model_tier"] == tier.value
|
||||
g2 = HypothesisAgentGenome.from_dict(payload)
|
||||
assert g2.model_tier == tier
|
||||
assert g2.id == g.id
|
||||
|
||||
Reference in New Issue
Block a user