generated from coulomb/repo-seed
refactor: simplify post-WP-0002 cleanup
- Remove redundant async_execute_prompt overrides from OpenAI/Gemini/OpenRouter adapters (identical to base class default — asyncio import also removed) - Cache prompt.split() result in MockLLMAdapter to avoid double evaluation - Promote deferred LLMBudgetExceededError imports to module level in models.py and adapter.py (no circular dependency) - Auto-populate context dict in LLMBudgetExceededError.__init__ so callers need not pass redundant context= kwarg Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
@@ -10,6 +10,7 @@ from abc import ABC, abstractmethod
|
||||
from typing import Dict, Any
|
||||
|
||||
from llm_connect.models import RunConfig, LLMResponse, BudgetTracker
|
||||
from llm_connect.exceptions import LLMBudgetExceededError
|
||||
|
||||
|
||||
class LLMAdapter(ABC):
|
||||
@@ -79,14 +80,12 @@ class LLMAdapter(ABC):
|
||||
def _preflight_budget(self, config: RunConfig) -> None:
|
||||
"""Raise ``LLMBudgetExceededError`` if the budget is already exhausted."""
|
||||
if config.budget_tracker is not None and config.budget_tracker.remaining() == 0:
|
||||
from llm_connect.exceptions import LLMBudgetExceededError
|
||||
tracker = config.budget_tracker
|
||||
raise LLMBudgetExceededError(
|
||||
"Token budget exhausted before making request",
|
||||
total=tracker.total,
|
||||
spent=tracker.spent,
|
||||
requested=0,
|
||||
context={"total": tracker.total, "spent": tracker.spent},
|
||||
)
|
||||
|
||||
def _consume_budget(self, config: RunConfig, response: LLMResponse) -> None:
|
||||
@@ -135,13 +134,15 @@ class MockLLMAdapter(LLMAdapter):
|
||||
self.last_prompt = prompt
|
||||
self.last_config = config
|
||||
|
||||
prompt_tokens = len(prompt.split())
|
||||
completion_tokens = len(self.mock_response.split())
|
||||
response = LLMResponse(
|
||||
content=self.mock_response,
|
||||
model=config.model_name,
|
||||
usage={
|
||||
"prompt_tokens": len(prompt.split()),
|
||||
"completion_tokens": len(self.mock_response.split()),
|
||||
"total_tokens": len(prompt.split()) + len(self.mock_response.split()),
|
||||
"prompt_tokens": prompt_tokens,
|
||||
"completion_tokens": completion_tokens,
|
||||
"total_tokens": prompt_tokens + completion_tokens,
|
||||
},
|
||||
finish_reason="stop",
|
||||
metadata={"mock": True},
|
||||
|
||||
Reference in New Issue
Block a user