加载中 result.jsonl 0 → 100644 +5 −0 原始行号 差异行号 差异行 {"id": 1, "query": "纯水的化学式是什么?", "answer": "H2O"} {"id": 2, "query": "一周有多少天?", "answer": "7"} {"id": 3, "query": "计算机中信息的最小单位是什么?", "answer": "计算机中信息的最小单位是比特"} {"id": 4, "query": "RGB颜色模型中的三种基本颜色是什么?", "answer": "红绿蓝"} {"id": 5, "query": "计算机网络中的OSI七层模型包括哪些层?", "answer": "OSI模型主要包括两层:应用层,是网络模型中与用户最直接相关的一层,负责处理网络应用程序及它们的接口问题;物理层,负责实现与电缆(或其他任何传输媒介)的物理连接,包括定义电缆的电气特性、传输速率、最大传输距离等。"} submit.py 0 → 100755 +65 −0 原始行号 差异行号 差异行 #!/usr/bin/env python3 import json import argparse from urllib import request, error # 提交答案服务域名或IP, 将在赛前告知 JUDGE_SERVER = "http://judge.aiops-challenge.com" # 评测服务地址 # 团队标识, 可通过界面下方权限获取, 每个ticket仅在当前赛季有效,如未注明团队标识,结果不计入成绩 TICKET = "TeamID" def submit(data, judge_server=None, ticket=None): judge_server = judge_server or JUDGE_SERVER ticket = ticket or TICKET if not judge_server or not ticket: missing = ["judge_server" if not judge_server else "", "ticket" if not ticket else ""] missing = [m for m in missing if m] print("Required fields must be provided: %s" % ', '.join(missing)) return None req_data = json.dumps({'data': data}).encode('utf-8') req = request.Request(judge_server, data=req_data, headers={'ticket': ticket, 'Content-Type': 'application/json'}) try: with request.urlopen(req) as response: response_body = response.read().decode('utf-8') return json.loads(response_body)['submission_id'] except error.HTTPError as e: msg = e.reason response_body = e.read().decode('utf-8') if response_body: try: msg = json.loads(response_body)['detail'] except: pass print("[Error %s] %s" % (e.code, msg)) except error.URLError as e: print(e.reason) return None if __name__ == "__main__": parser = argparse.ArgumentParser(description="Submit to judge server") parser.add_argument('result_path', nargs='?', default='result.jsonl', help='Path to the submission file, default is result.jsonl') parser.add_argument('-s', '--server', help='Judge server URL, if not specified, the global JUDGE_SERVER variable will be used') parser.add_argument('-k', '--ticket', help='Submission ticket, if not specified, the global TICKET variable will be used') args = parser.parse_args() try: with open(args.result_path, 'r') as file: data = [json.loads(line.strip()) for line in file if line.strip()] except Exception as e: print(e) exit(1) submission_id = submit(data, judge_server=args.server, ticket=args.ticket) if submission_id: print("Success! Your submission ID is %s." % submission_id) exit(0) else: exit(1) 加载中
result.jsonl 0 → 100644 +5 −0 原始行号 差异行号 差异行 {"id": 1, "query": "纯水的化学式是什么?", "answer": "H2O"} {"id": 2, "query": "一周有多少天?", "answer": "7"} {"id": 3, "query": "计算机中信息的最小单位是什么?", "answer": "计算机中信息的最小单位是比特"} {"id": 4, "query": "RGB颜色模型中的三种基本颜色是什么?", "answer": "红绿蓝"} {"id": 5, "query": "计算机网络中的OSI七层模型包括哪些层?", "answer": "OSI模型主要包括两层:应用层,是网络模型中与用户最直接相关的一层,负责处理网络应用程序及它们的接口问题;物理层,负责实现与电缆(或其他任何传输媒介)的物理连接,包括定义电缆的电气特性、传输速率、最大传输距离等。"}
submit.py 0 → 100755 +65 −0 原始行号 差异行号 差异行 #!/usr/bin/env python3 import json import argparse from urllib import request, error # 提交答案服务域名或IP, 将在赛前告知 JUDGE_SERVER = "http://judge.aiops-challenge.com" # 评测服务地址 # 团队标识, 可通过界面下方权限获取, 每个ticket仅在当前赛季有效,如未注明团队标识,结果不计入成绩 TICKET = "TeamID" def submit(data, judge_server=None, ticket=None): judge_server = judge_server or JUDGE_SERVER ticket = ticket or TICKET if not judge_server or not ticket: missing = ["judge_server" if not judge_server else "", "ticket" if not ticket else ""] missing = [m for m in missing if m] print("Required fields must be provided: %s" % ', '.join(missing)) return None req_data = json.dumps({'data': data}).encode('utf-8') req = request.Request(judge_server, data=req_data, headers={'ticket': ticket, 'Content-Type': 'application/json'}) try: with request.urlopen(req) as response: response_body = response.read().decode('utf-8') return json.loads(response_body)['submission_id'] except error.HTTPError as e: msg = e.reason response_body = e.read().decode('utf-8') if response_body: try: msg = json.loads(response_body)['detail'] except: pass print("[Error %s] %s" % (e.code, msg)) except error.URLError as e: print(e.reason) return None if __name__ == "__main__": parser = argparse.ArgumentParser(description="Submit to judge server") parser.add_argument('result_path', nargs='?', default='result.jsonl', help='Path to the submission file, default is result.jsonl') parser.add_argument('-s', '--server', help='Judge server URL, if not specified, the global JUDGE_SERVER variable will be used') parser.add_argument('-k', '--ticket', help='Submission ticket, if not specified, the global TICKET variable will be used') args = parser.parse_args() try: with open(args.result_path, 'r') as file: data = [json.loads(line.strip()) for line in file if line.strip()] except Exception as e: print(e) exit(1) submission_id = submit(data, judge_server=args.server, ticket=args.ticket) if submission_id: print("Success! Your submission ID is %s." % submission_id) exit(0) else: exit(1)