semink1224's picture
Improve local agent with media, code tools and evidence review
812a95e verified
Raw History Blame Contribute Delete
1.19 kB
import json
import argparse
from pathlib import Path
import requests
from agent import ROOT, API
from run import save
def main():
parser = argparse.ArgumentParser()
parser.add_argument('--preview',action='store_true',help='Save submission JSON without sending it')
args = parser.parse_args()
config = json.loads((ROOT/'config.json').read_text(encoding='utf-8-sig'))
records = json.loads((ROOT/'results/v2/answers.json').read_text(encoding='utf-8'))
answers = [{k:x[k] for k in ('task_id','submitted_answer')} for x in records
if not x.get('error') and x.get('submitted_answer')]
if not answers:
raise ValueError('No answers to submit')
payload = {'username':config['username'],'agent_code':config['agent_code'],'answers':answers}
save(ROOT/'results/v2/submission.json',payload)
if args.preview:
print('Prepared',len(answers),'answers for',config['username'],'without submitting')
return
response = requests.post(API+'/submit',json=payload,timeout=120)
response.raise_for_status()
save(ROOT/'results/v2/score.json',response.json())
print(response.json())
if __name__=='__main__':
main()