|
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, |
|
) |
|
|