petrov826 commited on
Commit
b14357b
·
verified ·
1 Parent(s): ed589d8

wrap LiteLLMModel model to add rate limit logic

Browse files
Files changed (1) hide show
  1. app.py +9 -2
app.py CHANGED
@@ -23,11 +23,19 @@ DEFAULT_API_URL = "https://agents-course-unit4-scoring.hf.space"
23
 
24
  rate_limiter = RateLimiter()
25
 
 
 
 
 
 
 
 
 
26
  # --- Basic Agent Definition ---
27
  # ----- THIS IS WERE YOU CAN BUILD WHAT YOU WANT ------
28
  class BasicAgent:
29
  def __init__(self):
30
- model = LiteLLMModel(
31
  model_id="gemini/gemini-2.5-flash",
32
  api_key=os.getenv("GOOGLE_API_KEY")
33
  )
@@ -43,7 +51,6 @@ class BasicAgent:
43
  )
44
  print("BasicAgent initialized.")
45
  def __call__(self, question: str) -> str:
46
- rate_limiter.sleep_if_needed()
47
  print(f"Agent received question (first 50 chars): {question[:50]}...")
48
  answer = self.agent.run(question)
49
  print(f"Agent returning answer: {answer}")
 
23
 
24
  rate_limiter = RateLimiter()
25
 
26
+ class LiteLLMModelWithRateLimit(LiteLLMModel):
27
+ """API呼び出し前にレート制限をチェックするLiteLLMModelのラッパー"""
28
+ def run(self, **kwargs) -> dict:
29
+ # APIを呼び出す直前に待機処理を挟む
30
+ limiter.wait_if_needed()
31
+ # 元のrunメソッドを呼び出してAPIアクセスを実行
32
+ return super().run(**kwargs)
33
+
34
  # --- Basic Agent Definition ---
35
  # ----- THIS IS WERE YOU CAN BUILD WHAT YOU WANT ------
36
  class BasicAgent:
37
  def __init__(self):
38
+ model = LiteLLMModelWithRateLimit(
39
  model_id="gemini/gemini-2.5-flash",
40
  api_key=os.getenv("GOOGLE_API_KEY")
41
  )
 
51
  )
52
  print("BasicAgent initialized.")
53
  def __call__(self, question: str) -> str:
 
54
  print(f"Agent received question (first 50 chars): {question[:50]}...")
55
  answer = self.agent.run(question)
56
  print(f"Agent returning answer: {answer}")