1
0

models.py 1.2 KB

123456789101112131415161718192021222324252627282930
  1. """Particularités de chaque modèle Claude : réglage de la réflexion et tarifs."""
  2. from __future__ import annotations
  3. # Façon de couper la réflexion préalable (THINKING=off), qui dépend du modèle.
  4. # None : impossible sur ce modèle, seul EFFORT permet alors de la réduire.
  5. _THINKING_OFF: dict[str, dict | None] = {
  6. "claude-sonnet-5-5": {"type": "between_tools"}, # n'existe que sur Sonnet 5.5
  7. "claude-opus-5-5": None,
  8. }
  9. # Haiku 5.5 et les modèles plus anciens (Sonnet 5, Opus 4.8…).
  10. _DEFAULT_THINKING_OFF = {"type": "disabled"}
  11. # Tarifs en dollars par million de tokens (entrée, sortie), pour l'estimation des coûts.
  12. # Haiku 5.5 : tarif des requêtes de moins de 100 000 tokens (0,50 / 2,50 au-delà).
  13. PRICES: dict[str, tuple[float, float]] = {
  14. "claude-sonnet-5-5": (2.0, 10.0),
  15. "claude-haiku-5-5": (0.10, 0.50),
  16. "claude-opus-5-5": (4.0, 20.0),
  17. }
  18. def is_known(model: str) -> bool:
  19. """Modèle connu du bot (tarifs et réglage de la réflexion) : sinon, peut-être une faute de frappe."""
  20. return model in PRICES
  21. def thinking_off(model: str) -> dict | None:
  22. """Paramètre « thinking » à envoyer quand THINKING=off (None : ne rien envoyer)."""
  23. return _THINKING_OFF.get(model, _DEFAULT_THINKING_OFF)