cogniVerse-backend / models /fallback.py
Cogniverse CI
🚀 Deploy backend from GitHub @ aa0adf8
50f886a
Raw
History Blame Contribute Delete
972 Bytes
import time
from tenacity import retry, stop_after_attempt, wait_exponential, retry_if_exception_type
from openai import RateLimitError
from models.nvidia import get_llm
from utils.rate_limiter import rate_limiter
from utils.logger import get_logger
logger = get_logger(__name__)
def get_model_with_fallback(primary: str, temperature: float = 0.7):
model = rate_limiter.get_available_model(primary)
rate_limiter.record_request(model)
try:
return get_llm(model, temperature)
except Exception as e:
logger.error("fallback_instantiation_failed", error=str(e), model=model)
raise e
@retry(
stop=stop_after_attempt(3),
wait=wait_exponential(multiplier=1, min=2, max=10),
reraise=True,
)
def invoke_with_retry(llm, messages):
try:
return llm.invoke(messages)
except Exception as e:
logger.error("model_invocation_failed", error=str(e), model=getattr(llm, 'model_name', 'unknown'))
raise e