mirror of
https://github.com/pewdiepie-archdaemon/odysseus.git
synced 2026-06-29 08:02:06 -04:00
fix(ai): offload model resolution from async paths
Wrap blocking _resolve_model calls in asyncio.to_thread across async model interaction paths so endpoint/model resolution does not stall the event loop. Preserve owner-scoped resolution and add focused regression coverage.
This commit is contained in:
@@ -235,7 +235,7 @@ async def _call_teacher(teacher_model_spec: str, prompt: str,
|
||||
from src.llm_core import llm_call_async
|
||||
from src.ai_interaction import _resolve_model, _TEACHER_SYSTEM_PROMPT
|
||||
try:
|
||||
url, model, headers = _resolve_model(teacher_model_spec, owner=owner)
|
||||
url, model, headers = await asyncio.to_thread(_resolve_model, teacher_model_spec, owner=owner)
|
||||
except Exception as e:
|
||||
logger.warning(f"teacher endpoint not resolvable ({teacher_model_spec!r}): {e}")
|
||||
return None
|
||||
@@ -619,7 +619,7 @@ async def run_teacher_inline(
|
||||
# Resolve teacher endpoint
|
||||
try:
|
||||
from src.ai_interaction import _resolve_model
|
||||
teacher_url, teacher_model, teacher_headers = _resolve_model(teacher_spec, owner=owner)
|
||||
teacher_url, teacher_model, teacher_headers = await asyncio.to_thread(_resolve_model, teacher_spec, owner=owner)
|
||||
except Exception as e:
|
||||
logger.warning(f"teacher endpoint not resolvable ({teacher_spec!r}): {e}")
|
||||
yield (
|
||||
|
||||
Reference in New Issue
Block a user