Spaces:
Sleeping
Sleeping
| 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 | |
| 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 | |