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