model_list:

  # Alias Hermes — changer uniquement ce bloc pour switcher le modèle de Hermes
  # sans toucher à la configuration de Hermes lui-même
  - model_name: hermes-default
    litellm_params:
      model: openai/qwen3-8b
      api_base: {{ litellm_local_llm_base_url }}
      api_key: {{ litellm_local_llm_api_key }}
  # Pour passer Hermes sur Claude : remplacer les 3 lignes ci-dessus par :
  #   model: anthropic/claude-sonnet-4-6
  #   api_key: os.environ/ANTHROPIC_API_KEY

  # Modèles accessibles directement par nom
  - model_name: qwen3-8b
    litellm_params:
      model: openai/qwen3-8b
      api_base: {{ litellm_local_llm_base_url }}
      api_key: {{ litellm_local_llm_api_key }}

  - model_name: claude-sonnet-4-6
    litellm_params:
      model: anthropic/claude-sonnet-4-6
      api_key: os.environ/ANTHROPIC_API_KEY

  - model_name: claude-opus-4-7
    litellm_params:
      model: anthropic/claude-opus-4-7
      api_key: os.environ/ANTHROPIC_API_KEY

litellm_settings:
  drop_params: true
  # Timeout PAR tentative. Doit rester COURT : sur une connexion keep-alive périmée
  # (llama-server ferme les sockets inactifs), la 1ʳᵉ tentative hang jusqu'à ce timeout.
  # Il doit être < au budget total du STT-server (2×30s) pour que `num_retries`
  # ci-dessous ait le temps de rejouer AVANT que le client abandonne (sinon 502 sec).
  # qwen3-8b /no_think répond en <8s → 20s laisse une grosse marge.
  # ⚠️ Si on bascule hermes-default sur Claude (raisonnement long), remonter cette valeur.
  request_timeout: 20
  # Rejoue une requête échouée (timeout/erreur réseau) : la 2ᵉ tentative évince la
  # connexion morte du pool → repart sur une connexion neuve. Avec request_timeout=20,
  # un blip « connexion périmée » se résorbe en ~20s au lieu d'un 502.
  num_retries: 2

general_settings:
  master_key: {{ litellm_master_key }}
