| import time |
| from llm_drivers import GroqDriver, OpenAIDriver, HuggingFaceDriver |
|
|
| Ω_MEMORY = [] |
|
|
| class AllProvidersFailed(Exception): |
| pass |
|
|
|
|
| class LLMRouter: |
| def __init__(self): |
| self.drivers = [ |
| GroqDriver(), |
| OpenAIDriver(), |
| HuggingFaceDriver() |
| ] |
|
|
| def generate_code(self, task): |
| last_error = None |
|
|
| for driver in self.drivers: |
| try: |
| code = driver.generate_code(task) |
| self._log_success(driver) |
| return code |
| except Exception as e: |
| self._log_failure(driver, e) |
| last_error = e |
| continue |
|
|
| raise AllProvidersFailed(str(last_error)) |
|
|
| def _log_failure(self, driver, error): |
| Ω_MEMORY.append({ |
| "provider": driver.name, |
| "status": "failure", |
| "error": str(error), |
| "timestamp": time.time() |
| }) |
|
|
| def _log_success(self, driver): |
| Ω_MEMORY.append({ |
| "provider": driver.name, |
| "status": "success", |
| "timestamp": time.time() |
| }) |