Parcourir la source

Modèle inconnu signalé au démarrage, logs qui citent CLAUDE_MODEL

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Johnounet il y a 2 jours
Parent
commit
140e13fa67
5 fichiers modifiés avec 24 ajouts et 3 suppressions
  1. 1 1
      bot/__init__.py
  2. 2 2
      bot/claude_client.py
  3. 6 0
      bot/discord_bot.py
  4. 5 0
      bot/models.py
  5. 10 0
      changelog.txt

+ 1 - 1
bot/__init__.py

@@ -1,3 +1,3 @@
 """Chatbot Discord propulsé par Claude."""
 
-VERSION = "5.10"
+VERSION = "5.11"

+ 2 - 2
bot/claude_client.py

@@ -414,7 +414,7 @@ class ClaudeClient:
                 logger.critical("Crédit Anthropic épuisé : %s", exc)
                 raise ClaudeError(CONFIG_ERROR)
             logger.critical("Requête refusée par l'API, sans doute à cause d'un réglage du .env "
-                            "(MODEL, MAX_TOKENS, THINKING, EFFORT, WEB_SEARCH…) : %s", exc)
+                            "(CLAUDE_MODEL, MAX_TOKENS, THINKING, EFFORT, WEB_SEARCH…) : %s", exc)
             raise ClaudeError(CONFIG_ERROR)
         except anthropic.AuthenticationError:
             logger.critical("Clé API Anthropic invalide : vérifie ANTHROPIC_API_KEY dans le .env.")
@@ -423,7 +423,7 @@ class ClaudeClient:
             logger.critical("Accès refusé par l'API (clé sans accès à ce modèle ou à cet outil ?) : %s", exc)
             raise ClaudeError(CONFIG_ERROR)
         except anthropic.NotFoundError as exc:
-            logger.critical("Modèle introuvable : vérifie MODEL dans le .env (%s).", exc)
+            logger.critical("Modèle introuvable : vérifie CLAUDE_MODEL dans le .env (%s).", exc)
             raise ClaudeError(CONFIG_ERROR)
         except anthropic.APIStatusError as exc:
             logger.error("Erreur de l'API (%s) : %s", exc.status_code, exc)

+ 6 - 0
bot/discord_bot.py

@@ -25,6 +25,7 @@ from .images import ImageError, prepare_image
 from .members import MemberRegistry
 from .memory import MemoryStore
 from .memory_views import MemoryCard, member_target, see_user, server_target
+from .models import is_known
 from .pdf_files import PDF_EXTENSIONS, PDF_MAX_BYTES, PdfError, prepare_pdf
 from .presence import PresenceManager, Status
 from .text_files import TEXT_EXTENSIONS, TEXT_FILE_MAX_BYTES, TextFileError, decode_text_file
@@ -155,6 +156,11 @@ class ChatBot(commands.Bot):
         logger.info("Modèle %s — réflexion : %s, effort : %s, recherche web : %s, mémoire des membres : %s",
                     s.model, "on" if s.thinking else "off", s.effort or "par défaut",
                     "on" if s.web_search else "off", f"on ({s.memory_dir})" if s.memory else "off")
+        if not is_known(s.model):
+            # Un nom mal écrit ne serait sinon découvert qu'au premier message (erreur 404).
+            logger.warning("Modèle %s inconnu du bot : vérifie CLAUDE_MODEL dans le .env. S'il existe bien, "
+                           "renseigne PRICE_INPUT_PER_MTOK et PRICE_OUTPUT_PER_MTOK pour estimer les coûts.",
+                           s.model)
         if self.presence:
             self.presence.start()
 

+ 5 - 0
bot/models.py

@@ -20,6 +20,11 @@ PRICES: dict[str, tuple[float, float]] = {
 }
 
 
+def is_known(model: str) -> bool:
+    """Modèle connu du bot (tarifs et réglage de la réflexion) : sinon, peut-être une faute de frappe."""
+    return model in PRICES
+
+
 def thinking_off(model: str) -> dict | None:
     """Paramètre « thinking » à envoyer quand THINKING=off (None : ne rien envoyer)."""
     return _THINKING_OFF.get(model, _DEFAULT_THINKING_OFF)

+ 10 - 0
changelog.txt

@@ -2,6 +2,16 @@ CHANGELOG — Chatbot Discord
 ===========================
 
 
+Version 5.11
+------------
+
+Corrections
+- Un modèle inconnu du bot (CLAUDE_MODEL mal écrit, par exemple) est
+  signalé dans le log dès le démarrage, et plus seulement au premier
+  message. Les messages d'erreur citent CLAUDE_MODEL (et non MODEL,
+  une variable qui n'existe pas).
+
+
 Version 5.10
 ------------