diff --git a/strix/llm/llm.py b/strix/llm/llm.py index 969710e1..9e96f73c 100644 --- a/strix/llm/llm.py +++ b/strix/llm/llm.py @@ -10,7 +10,7 @@ from litellm.utils import supports_prompt_caching, supports_vision from strix.config import Config from strix.llm.config import LLMConfig -from strix.llm.memory_compressor import MemoryCompressor, _get_message_tokens +from strix.llm.memory_compressor import MemoryCompressor, get_message_tokens from strix.llm.utils import ( _truncate_to_first_function, fix_incomplete_tool_call, @@ -211,7 +211,7 @@ class LLM: ) reserved_tokens = sum( - _get_message_tokens(msg, self.config.litellm_model) for msg in messages + get_message_tokens(msg, self.config.litellm_model) for msg in messages ) compressed = list( self.memory_compressor.compress_history(conversation_history, reserved_tokens) diff --git a/strix/llm/memory_compressor.py b/strix/llm/memory_compressor.py index 728831b1..aea086c1 100644 --- a/strix/llm/memory_compressor.py +++ b/strix/llm/memory_compressor.py @@ -52,7 +52,7 @@ def _count_tokens(text: str, model: str) -> int: return len(text) // 4 # Rough estimate -def _get_message_tokens(msg: dict[str, Any], model: str) -> int: +def get_message_tokens(msg: dict[str, Any], model: str) -> int: content = msg.get("content", "") if isinstance(content, str): return _count_tokens(content, model) @@ -209,7 +209,7 @@ class MemoryCompressor: model_name: str = self.model_name # type: ignore[assignment] total_tokens = reserved_tokens + sum( - _get_message_tokens(msg, model_name) for msg in system_msgs + regular_msgs + get_message_tokens(msg, model_name) for msg in system_msgs + regular_msgs ) if total_tokens <= MAX_TOTAL_TOKENS * 0.9: