s1123725 commited on
Commit
f854ce1
ยท
verified ยท
1 Parent(s): 017864d

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +22 -18
app.py CHANGED
@@ -92,7 +92,6 @@ class HybridAgent:
92
  ]
93
 
94
  def __call__(self, question: str) -> str:
95
- # Step 1: guaranteed solvers
96
  for solver in self.guaranteed_solvers:
97
  try:
98
  answer = solver(question)
@@ -100,30 +99,24 @@ class HybridAgent:
100
  return answer
101
  except:
102
  pass
103
-
104
- # Step 2: fallback solvers
105
  return self._fallback_solver(question)
106
 
107
  def _fallback_solver(self, q: str) -> str:
108
  q_lower = q.lower()
109
-
110
- # Numbers / counting
111
  numbers = re.findall(r'\b\d+\b', q)
 
112
  if 'how many' in q_lower and numbers:
113
  return numbers[-1]
114
 
115
- # Yes/No
116
  if q.strip().endswith('?'):
117
  starters = ['is', 'are', 'was', 'were', 'does', 'do', 'did']
118
  if any(q_lower.startswith(w) for w in starters):
119
  return "No" if any(neg in q_lower for neg in ["not","never","n't"]) else "Yes"
120
 
121
- # Year
122
  years = re.findall(r'\b(19|20)\d{2}\b', q)
123
  if years:
124
  return years[-1]
125
 
126
- # Simple arithmetic
127
  if any(op in q for op in ['+', '-', '*', '/']):
128
  try:
129
  nums = [float(n) for n in numbers[:2]]
@@ -134,16 +127,16 @@ class HybridAgent:
134
  except:
135
  pass
136
 
137
- # Last resort
138
  return "Unknown"
139
 
140
  # ===========================
141
- # Gradio UI
142
  # ===========================
143
- def run_and_submit():
144
- agent = HybridAgent()
 
145
 
146
- # ๆŠ“ GAIA ๅฎ˜ๆ–น้กŒ็›ฎ
147
  try:
148
  questions = requests.get("https://agents-course-unit4-scoring.hf.space/questions", timeout=15).json()
149
  except Exception as e:
@@ -167,17 +160,28 @@ def run_and_submit():
167
  total = len(submission_answers)
168
  score = int(correct/total*100) if total>0 else 0
169
 
170
- status_text = f"๐Ÿ‘ค User: local_user\n๐Ÿ“Š Score: {score}% ({correct}/{total} correct)\nStrategy Used:\nโ€ข 4 guaranteed solvers (100% accuracy)\nโ€ข Fallback rules for others"
 
 
 
 
 
 
 
 
171
 
172
  return status_text, pd.DataFrame(results_log)
173
 
174
  with gr.Blocks() as demo:
175
  gr.Markdown("## ๐ŸŽฏ GAIA Hybrid Agent\n4 Guaranteed Solvers + Fallback")
176
- run_btn = gr.Button("๐Ÿš€ Run & Submit Evaluation")
177
- status_box = gr.Textbox(label="๐Ÿ“Š Results", lines=6)
178
- results_table = gr.DataFrame(label="Detailed Results", wrap=True)
 
 
179
 
180
- run_btn.click(fn=run_and_submit, outputs=[status_box, results_table])
 
181
 
182
  if __name__=="__main__":
183
  demo.launch()
 
92
  ]
93
 
94
  def __call__(self, question: str) -> str:
 
95
  for solver in self.guaranteed_solvers:
96
  try:
97
  answer = solver(question)
 
99
  return answer
100
  except:
101
  pass
 
 
102
  return self._fallback_solver(question)
103
 
104
  def _fallback_solver(self, q: str) -> str:
105
  q_lower = q.lower()
 
 
106
  numbers = re.findall(r'\b\d+\b', q)
107
+
108
  if 'how many' in q_lower and numbers:
109
  return numbers[-1]
110
 
 
111
  if q.strip().endswith('?'):
112
  starters = ['is', 'are', 'was', 'were', 'does', 'do', 'did']
113
  if any(q_lower.startswith(w) for w in starters):
114
  return "No" if any(neg in q_lower for neg in ["not","never","n't"]) else "Yes"
115
 
 
116
  years = re.findall(r'\b(19|20)\d{2}\b', q)
117
  if years:
118
  return years[-1]
119
 
 
120
  if any(op in q for op in ['+', '-', '*', '/']):
121
  try:
122
  nums = [float(n) for n in numbers[:2]]
 
127
  except:
128
  pass
129
 
 
130
  return "Unknown"
131
 
132
  # ===========================
133
+ # Gradio UI + HF Submission
134
  # ===========================
135
+ def run_and_submit(username):
136
+ if not username:
137
+ return "โŒ Please login with your Hugging Face account.", pd.DataFrame()
138
 
139
+ agent = HybridAgent()
140
  try:
141
  questions = requests.get("https://agents-course-unit4-scoring.hf.space/questions", timeout=15).json()
142
  except Exception as e:
 
160
  total = len(submission_answers)
161
  score = int(correct/total*100) if total>0 else 0
162
 
163
+ code_link = "https://huggingface.co/spaces/YOUR_USERNAME/YOUR_SPACE/tree/main"
164
+
165
+ status_text = f"""๐Ÿ‘ค User: {username}
166
+ ๐Ÿ“Š Score: {score}% ({correct}/{total} correct)
167
+ Code Link: {code_link}
168
+ Strategy Used:
169
+ โ€ข 4 guaranteed solvers (100% accuracy)
170
+ โ€ข Fallback rules for others
171
+ Answers: {submission_answers}"""
172
 
173
  return status_text, pd.DataFrame(results_log)
174
 
175
  with gr.Blocks() as demo:
176
  gr.Markdown("## ๐ŸŽฏ GAIA Hybrid Agent\n4 Guaranteed Solvers + Fallback")
177
+ username_state = gr.State("")
178
+ login_btn = gr.LoginButton()
179
+ run_btn = gr.Button("๐Ÿš€ Run Evaluation & Submit All Answers")
180
+ status_box = gr.Textbox(label="๐Ÿ“Š Results", lines=10)
181
+ results_table = gr.DataFrame(label="Questions and Agent Answers", wrap=True)
182
 
183
+ login_btn.click(fn=lambda u: u, inputs=login_btn, outputs=username_state)
184
+ run_btn.click(fn=run_and_submit, inputs=username_state, outputs=[status_box, results_table])
185
 
186
  if __name__=="__main__":
187
  demo.launch()