LordXido commited on
Commit
11b34d6
·
verified ·
1 Parent(s): 84b0021

Create llm_router.py

Browse files
Files changed (1) hide show
  1. llm_router.py +46 -0
llm_router.py ADDED
@@ -0,0 +1,46 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ import time
2
+ from llm_drivers import GroqDriver, OpenAIDriver, HuggingFaceDriver
3
+
4
+ Ω_MEMORY = []
5
+
6
+ class AllProvidersFailed(Exception):
7
+ pass
8
+
9
+
10
+ class LLMRouter:
11
+ def __init__(self):
12
+ self.drivers = [
13
+ GroqDriver(),
14
+ OpenAIDriver(),
15
+ HuggingFaceDriver()
16
+ ]
17
+
18
+ def generate_code(self, task):
19
+ last_error = None
20
+
21
+ for driver in self.drivers:
22
+ try:
23
+ code = driver.generate_code(task)
24
+ self._log_success(driver)
25
+ return code
26
+ except Exception as e:
27
+ self._log_failure(driver, e)
28
+ last_error = e
29
+ continue
30
+
31
+ raise AllProvidersFailed(str(last_error))
32
+
33
+ def _log_failure(self, driver, error):
34
+ Ω_MEMORY.append({
35
+ "provider": driver.name,
36
+ "status": "failure",
37
+ "error": str(error),
38
+ "timestamp": time.time()
39
+ })
40
+
41
+ def _log_success(self, driver):
42
+ Ω_MEMORY.append({
43
+ "provider": driver.name,
44
+ "status": "success",
45
+ "timestamp": time.time()
46
+ })