MLADI / utils.py
AMR-KELEG's picture
Fix another bug in the results handling
d956a72
import re
import json
import time
from huggingface_hub import HfApi
def current_seconds_time():
return round(time.time())
def form_file_name(model_name, commit_id, inference_function):
return f"predictions_{re.sub('/', '_', model_name)}_{commit_id}_{inference_function}.json"
def update_model_queue(repo_id, model_name, commit_id, inference_function, status):
assert status in ["queued", "in_progress", "failed (online)"]
api = HfApi()
timestamp = current_seconds_time()
predictions_filename = form_file_name(model_name, commit_id, inference_function)
predictions_object = {
"model_name": model_name,
"predictions": [[""]],
"commit_id": commit_id,
"inference_function": inference_function,
"last_updated_timestamp": timestamp,
"status": status,
}
with open(predictions_filename, "w") as f:
json.dump(predictions_object, f)
future = api.upload_file(
path_or_fileobj=predictions_filename,
path_in_repo=predictions_filename,
repo_id=repo_id,
repo_type="dataset",
run_as_future=True,
)
def upload_predictions(repo_id, predictions, model_name, commit_id, inference_function):
api = HfApi()
timestamp = current_seconds_time()
predictions_filename = form_file_name(model_name, commit_id, inference_function)
predictions_object = {
"model_name": model_name,
"predictions": predictions,
"commit_id": commit_id,
"inference_function": inference_function,
"last_updated_timestamp": timestamp,
"status": "completed",
}
with open(predictions_filename, "w") as f:
json.dump(predictions_object, f)
future = api.upload_file(
path_or_fileobj=predictions_filename,
path_in_repo=predictions_filename,
repo_id=repo_id,
repo_type="dataset",
run_as_future=True,
)