lwant commited on
Commit
e378764
Β·
1 Parent(s): 5336c20

Refactor `prepare_submission_data` in `hf_submission_api.py` to fix answer extraction and improve payload handling

Browse files
src/gaia_solving_agent/hf_submission_api.py CHANGED
@@ -150,19 +150,20 @@ async def run_agent(agent, questions_data, additional_files):
150
 
151
  def prepare_submission_data(username:str, agent_code: str, answers_payload: list[dict]):
152
  def extract_answer(answer: str) -> str | int:
153
- pattern = r"FINAL ANSWER:\s*(.*)"
154
  search = re.search(pattern, answer)
155
- extracted_answer = search.group(1) if search else ""
156
  try:
157
  return eval(extracted_answer)
158
  except:
159
  return extracted_answer
160
 
161
- for answer in answers_payload:
 
162
  answer["submitted_answer"] = extract_answer(str(answer["submitted_answer"]))
163
 
164
- submission_data = {"username": username.strip(), "agent_code": agent_code, "answers": answers_payload}
165
- status_update = f"Agent finished. Preparing {len(answers_payload)} answers to submit for user '{username}'..."
166
  print(status_update)
167
  return submission_data
168
 
 
150
 
151
  def prepare_submission_data(username:str, agent_code: str, answers_payload: list[dict]):
152
  def extract_answer(answer: str) -> str | int:
153
+ pattern = r"FINAL ANSWER:\s*(.*)\s+"
154
  search = re.search(pattern, answer)
155
+ extracted_answer = search.group(1).strip() if search else ""
156
  try:
157
  return eval(extracted_answer)
158
  except:
159
  return extracted_answer
160
 
161
+ _answers_payload = [{k:v for k,v in answer.items()} for answer in answers_payload]
162
+ for answer in _answers_payload:
163
  answer["submitted_answer"] = extract_answer(str(answer["submitted_answer"]))
164
 
165
+ submission_data = {"username": username.strip(), "agent_code": agent_code, "answers": _answers_payload}
166
+ status_update = f"Agent finished. Preparing {len(_answers_payload)} answers to submit for user '{username}'..."
167
  print(status_update)
168
  return submission_data
169