Browse Source

THINKING=off sur Opus 5.5 : le journal ne dit plus « off »

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Johnounet 21 giờ trước cách đây
mục cha
commit
4d9d193f4c
2 tập tin đã thay đổi với 8 bổ sung và 2 xóa
  1. 2 0
      CHANGELOG.md
  2. 6 2
      bot/discord_bot.py

+ 2 - 0
CHANGELOG.md

@@ -16,6 +16,8 @@ Les versions les plus récentes sont en haut. Chaque entrée commence par un ré
 
 ### Corrections
 
+- **« Réflexion : off » n'est plus affiché à tort.** Sur un modèle dont la réflexion ne peut pas être coupée (Opus 5.5), `THINKING=off` laissait la réflexion active alors que le journal de démarrage affichait « off ». Il indique maintenant « impossible à couper sur ce modèle (règle EFFORT) ».
+
 - **Documentation des réglages alignée.** `.env.exemple` et le README précisent qu'un `THINKING` vide ou absent vaut `off` (l'exemple propose `on`) ; le README indique que `xhigh` et `max` nécessitent `THINKING=on` ; la phrase sur `MAX_TOKENS` parle du plus grand des deux plafonds de mémoire, comme la vérification ; le tableau du README reprend les valeurs proposées de `.env.exemple` pour `MAX_TOKENS` (6000) et `API_TIMEOUT` (90).
 
 - **« Modifier » ne signale plus de faux conflit.** Quand l'écriture sur le disque prenait plus de 3 secondes, Discord considérait l'envoi comme échoué alors que le texte était enregistré : la fenêtre restait ouverte, et un second clic répondait que le fichier avait changé entre-temps. Le bot répond maintenant tout de suite à Discord, avant d'enregistrer, et un même texte envoyé deux fois est accepté.

+ 6 - 2
bot/discord_bot.py

@@ -25,7 +25,7 @@ from .images import ImageError, prepare_image
 from .members import MemberRegistry, with_username
 from .memory import DATE_FORMAT, MemoryStore
 from .memory_views import MemoryCard, member_target, reply_error, see_user, server_target
-from .models import display_name, is_known
+from .models import display_name, is_known, thinking_off
 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
@@ -220,8 +220,12 @@ class ChatBot(commands.Bot):
             await asyncio.to_thread(self.memory.index)
         s = self.settings
         memory = "off" if not s.memory else f"on ({s.memory_dir})" if self.memory else "coupée (registre illisible)"
+        thinking = "on" if s.thinking else "off"
+        if not s.thinking and thinking_off(s.model) is None:
+            # Ce modèle réfléchit toujours : seul EFFORT en règle la quantité.
+            thinking = "impossible à couper sur ce modèle (règle EFFORT)"
         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",
+                    s.model, thinking, s.effort or "par défaut",
                     "on" if s.web_search else "off", memory)
         if not is_known(s.model):
             # Un nom mal écrit ne serait sinon découvert qu'au premier message (erreur 404).