feat: add configurable timeout for LLM requests

This commit is contained in:
Ahmed Allam
2025-11-12 18:52:08 +04:00
committed by Ahmed Allam
parent 795ed02955
commit 1abfb360e4
5 changed files with 27 additions and 6 deletions
+5 -2
View File
@@ -85,6 +85,7 @@ def _extract_message_text(msg: dict[str, Any]) -> str:
def _summarize_messages(
messages: list[dict[str, Any]],
model: str,
timeout: int = 600,
) -> dict[str, Any]:
if not messages:
empty_summary = "<context_summary message_count='0'>{text}</context_summary>"
@@ -106,7 +107,7 @@ def _summarize_messages(
completion_args = {
"model": model,
"messages": [{"role": "user", "content": prompt}],
"timeout": 180,
"timeout": timeout,
}
response = litellm.completion(**completion_args)
@@ -146,9 +147,11 @@ class MemoryCompressor:
self,
max_images: int = 3,
model_name: str | None = None,
timeout: int = 600,
):
self.max_images = max_images
self.model_name = model_name or os.getenv("STRIX_LLM", "openai/gpt-5")
self.timeout = timeout
if not self.model_name:
raise ValueError("STRIX_LLM environment variable must be set and not empty")
@@ -202,7 +205,7 @@ class MemoryCompressor:
chunk_size = 10
for i in range(0, len(old_msgs), chunk_size):
chunk = old_msgs[i : i + chunk_size]
summary = _summarize_messages(chunk, model_name)
summary = _summarize_messages(chunk, model_name, self.timeout)
if summary:
compressed.append(summary)