Freddolin commited on
Commit
d3eacbd
·
verified ·
1 Parent(s): e258602

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +37 -31
app.py CHANGED
@@ -1,3 +1,4 @@
 
1
  import os
2
  import gradio as gr
3
  import requests
@@ -6,6 +7,8 @@ from agent import GaiaAgent
6
 
7
  DEFAULT_API_URL = "https://agents-course-unit4-scoring.hf.space"
8
 
 
 
9
  def run_and_submit_all(profile: gr.OAuthProfile | None):
10
  space_id = os.getenv("SPACE_ID")
11
 
@@ -21,13 +24,7 @@ def run_and_submit_all(profile: gr.OAuthProfile | None):
21
  submit_url = f"{api_url}/submit"
22
 
23
  try:
24
- agent = GaiaAgent()
25
- except Exception as e:
26
- return f"Error initializing agent: {e}", None
27
-
28
- agent_code = f"https://huggingface.co/spaces/{space_id}/tree/main"
29
-
30
- try:
31
  response = requests.get(questions_url, timeout=15)
32
  response.raise_for_status()
33
  questions_data = response.json()
@@ -45,14 +42,9 @@ def run_and_submit_all(profile: gr.OAuthProfile | None):
45
  continue
46
  try:
47
  final_answer, trace = agent(question_text)
48
-
49
- print("\n--- QUESTION ---")
50
- print(f"Task ID: {task_id}")
51
- print(f"Question: {question_text}")
52
- print("\n--- REASONING TRACE ---")
53
- print(trace)
54
- print("\n--- FINAL ANSWER (SUBMITTED) ---")
55
- print(final_answer)
56
 
57
  answers_payload.append({
58
  "task_id": task_id,
@@ -83,25 +75,39 @@ def run_and_submit_all(profile: gr.OAuthProfile | None):
83
  f"({result_data.get('correct_count', '?')}/{result_data.get('total_attempted', '?')} correct)\n"
84
  f"Message: {result_data.get('message', 'No message received.')}"
85
  )
86
- results_df = pd.DataFrame(results_log)
87
- return final_status, results_df
88
  except Exception as e:
89
  return f"Submission Failed: {e}", pd.DataFrame(results_log)
90
 
 
 
 
 
 
 
 
91
 
92
- with gr.Blocks() as demo:
93
- gr.Markdown("# GAIA Agent Submission Interface")
94
- gr.Markdown("""
95
- Logga in och kör agenten.\n
96
- Du behöver INTE en OpenAI API-nyckel längre. Agenten kör en lokal modell.
97
- """)
98
- gr.LoginButton()
99
-
100
- run_button = gr.Button("Run Evaluation & Submit All Answers")
101
- status_output = gr.Textbox(label="Submission Result")
102
- results_table = gr.DataFrame(label="Answers")
103
 
104
- run_button.click(fn=run_and_submit_all, outputs=[status_output, results_table])
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
105
 
106
  if __name__ == "__main__":
107
  print("\n" + "-"*30 + " App Starting " + "-"*30)
@@ -119,10 +125,10 @@ if __name__ == "__main__":
119
  print(f" Repo URL: https://huggingface.co/spaces/{space_id_startup}")
120
  print(f" Repo Tree URL: https://huggingface.co/spaces/{space_id_startup}/tree/main")
121
  else:
122
- print("ℹ️ SPACE_ID environment variable not found (running locally?). Repo URL cannot be determined.")
123
 
124
  print("-"*(60 + len(" App Starting ")) + "\n")
125
 
126
  print("Launching Gradio Interface for Basic Agent Evaluation...")
127
  demo.launch(debug=True, share=False)
128
-
 
1
+ # --- app.py ---
2
  import os
3
  import gradio as gr
4
  import requests
 
7
 
8
  DEFAULT_API_URL = "https://agents-course-unit4-scoring.hf.space"
9
 
10
+ agent = GaiaAgent()
11
+
12
  def run_and_submit_all(profile: gr.OAuthProfile | None):
13
  space_id = os.getenv("SPACE_ID")
14
 
 
24
  submit_url = f"{api_url}/submit"
25
 
26
  try:
27
+ agent_code = f"https://huggingface.co/spaces/{space_id}/tree/main"
 
 
 
 
 
 
28
  response = requests.get(questions_url, timeout=15)
29
  response.raise_for_status()
30
  questions_data = response.json()
 
42
  continue
43
  try:
44
  final_answer, trace = agent(question_text)
45
+ print(f"\n--- QUESTION ---\nTask ID: {task_id}\nQuestion: {question_text}")
46
+ print(f"\n--- REASONING TRACE ---\n{trace}")
47
+ print(f"\n--- FINAL ANSWER (SUBMITTED) ---\n{final_answer}")
 
 
 
 
 
48
 
49
  answers_payload.append({
50
  "task_id": task_id,
 
75
  f"({result_data.get('correct_count', '?')}/{result_data.get('total_attempted', '?')} correct)\n"
76
  f"Message: {result_data.get('message', 'No message received.')}"
77
  )
78
+ return final_status, pd.DataFrame(results_log)
 
79
  except Exception as e:
80
  return f"Submission Failed: {e}", pd.DataFrame(results_log)
81
 
82
+ def evaluate(question, files):
83
+ uploaded_files = {}
84
+ if files:
85
+ for file in files:
86
+ file_path = file.name
87
+ file.save(file_path)
88
+ uploaded_files[file.name] = file_path
89
 
90
+ prediction, reasoning = agent(question, uploaded_files)
91
+ return prediction, reasoning
 
 
 
 
 
 
 
 
 
92
 
93
+ with gr.Blocks() as demo:
94
+ gr.Markdown("# GAIA Agent Interface")
95
+ gr.Markdown("Logga in och kör agenten på alla frågor eller testa enskilda.")
96
+
97
+ with gr.Tab("✅ Run Full Evaluation"):
98
+ gr.LoginButton()
99
+ run_button = gr.Button("Run Evaluation & Submit All Answers")
100
+ status_output = gr.Textbox(label="Submission Result")
101
+ results_table = gr.DataFrame(label="Answers")
102
+ run_button.click(fn=run_and_submit_all, outputs=[status_output, results_table])
103
+
104
+ with gr.Tab("🔍 Test Manual Question"):
105
+ question = gr.Textbox(label="Question")
106
+ files = gr.File(label="Optional files (mp3, wav, xlsx)", file_types=['.mp3', '.wav', '.xlsx'], type="file", file_count="multiple")
107
+ submit = gr.Button("Run Agent")
108
+ answer = gr.Textbox(label="Answer")
109
+ reasoning = gr.Textbox(label="Reasoning Trace")
110
+ submit.click(fn=evaluate, inputs=[question, files], outputs=[answer, reasoning])
111
 
112
  if __name__ == "__main__":
113
  print("\n" + "-"*30 + " App Starting " + "-"*30)
 
125
  print(f" Repo URL: https://huggingface.co/spaces/{space_id_startup}")
126
  print(f" Repo Tree URL: https://huggingface.co/spaces/{space_id_startup}/tree/main")
127
  else:
128
+ print("ℹ️ SPACE_ID environment variable not found (running locally?).")
129
 
130
  print("-"*(60 + len(" App Starting ")) + "\n")
131
 
132
  print("Launching Gradio Interface for Basic Agent Evaluation...")
133
  demo.launch(debug=True, share=False)
134
+