Spaces:
				
			
			
	
			
			
		Runtime error
		
	
	
	
			
			
	
	
	
	
		
		
		Runtime error
		
	| import json | |
| import os | |
| from typing import List, List, Tuple, Any, Dict | |
| from huggingface_hub import snapshot_download | |
| from collections import defaultdict | |
| import requests | |
| from src.envs import EVAL_REQUESTS_PATH, QUEUE_REPO | |
| def webhook_bot(msg: str): | |
| bot_url = os.environ.get("DISCORD_WEBHOOK_URL", "") | |
| if bot_url != "": | |
| requests.post(bot_url, json={"content": msg}) | |
| def read_all_pending_model(EVAL_REQUESTS_PATH: str) -> Dict[str, List[Tuple[Any, str]]]: | |
| depth = 1 | |
| alls = defaultdict(list) | |
| for root, _, files in os.walk(EVAL_REQUESTS_PATH): | |
| current_depth = root.count(os.sep) - EVAL_REQUESTS_PATH.count(os.sep) | |
| if current_depth == depth: | |
| for file in files: | |
| if not file.endswith(".json"): | |
| continue | |
| file_abs_path = os.path.join(root, file) | |
| with open(file_abs_path, "r") as f: | |
| info = json.load(f) | |
| alls[info['model']].append((info, file_abs_path)) | |
| pendings = {} | |
| for k in alls.keys(): | |
| is_pending = False | |
| for stat in alls[k]: | |
| info_dict = stat[0] | |
| if info_dict['status'] == "PENDING": | |
| is_pending = True | |
| if is_pending: | |
| pendings[k] = alls[k] | |
| return pendings | |
| def watch_submit_queue(): | |
| try: | |
| snapshot_download( | |
| repo_id=QUEUE_REPO, | |
| local_dir=EVAL_REQUESTS_PATH, | |
| repo_type="dataset", | |
| tqdm_class=None, | |
| etag_timeout=30, | |
| ) | |
| alls = read_all_pending_model(EVAL_REQUESTS_PATH) | |
| pending_model = [] | |
| for model_name in alls.keys(): | |
| for request_row in alls[model_name]: | |
| info, filepath = request_row | |
| status = info["status"] | |
| model_name = info["model"] | |
| if status == "PENDING": | |
| pending_model.append(model_name) | |
| pending_model = list(set(pending_model)) | |
| pending_model_str = '\n'.join(pending_model) | |
| webhook_bot(f'Leaderboard model pending: {len(pending_model)}\n### Models\n{pending_model_str}') | |
| except Exception as e: | |
| print(f'Watch submit queue error: {e}') | |
| pass |