fix: case-insensitive model family matching + compressor init logging (#2350)

fix: case-insensitive model family matching + compressor init logging
This commit is contained in:
Teknium 2026-03-21 10:48:08 -07:00 committed by GitHub
commit 2988334fe5
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
2 changed files with 10 additions and 1 deletions

View file

@ -93,6 +93,14 @@ class ContextCompressor:
)
self.threshold_tokens = int(self.context_length * threshold_percent)
self.compression_count = 0
if not quiet_mode:
logger.info(
"Context compressor initialized: model=%s context_length=%d "
"threshold=%d (%.0f%%) provider=%s base_url=%s",
model, self.context_length, self.threshold_tokens,
threshold_percent * 100, provider or "none", base_url or "none",
)
self._context_probed = False # True after a step-down from context error
self.last_prompt_tokens = 0

View file

@ -855,10 +855,11 @@ def get_model_context_length(
# Only check `default_model in model` (is the key a substring of the input).
# The reverse (`model in default_model`) causes shorter names like
# "claude-sonnet-4" to incorrectly match "claude-sonnet-4-6" and return 1M.
model_lower = model.lower()
for default_model, length in sorted(
DEFAULT_CONTEXT_LENGTHS.items(), key=lambda x: len(x[0]), reverse=True
):
if default_model in model:
if default_model in model_lower:
return length
# 9. Query local server as last resort