Add missing datetime import:
Browse files
app.py
CHANGED
@@ -6,6 +6,7 @@ import pandas as pd
|
|
6 |
import os
|
7 |
import logging
|
8 |
import json
|
|
|
9 |
|
10 |
from src.core.evaluation import EvaluationManager, EvaluationRequest
|
11 |
from src.core.queue_manager import QueueManager
|
@@ -31,13 +32,13 @@ from src.display.utils import (
|
|
31 |
Precision
|
32 |
)
|
33 |
from src.envs import (
|
34 |
-
API,
|
35 |
CACHE_PATH,
|
36 |
-
EVAL_REQUESTS_PATH,
|
37 |
-
EVAL_RESULTS_PATH,
|
38 |
-
QUEUE_REPO,
|
39 |
-
REPO_ID,
|
40 |
-
RESULTS_REPO,
|
41 |
TOKEN
|
42 |
)
|
43 |
from src.populate import get_evaluation_queue_df, get_leaderboard_df
|
@@ -120,7 +121,7 @@ def process_evaluation_queue():
|
|
120 |
if not request:
|
121 |
logger.info("No more requests in the queue")
|
122 |
break
|
123 |
-
|
124 |
try:
|
125 |
logger.info(f"Processing request for model: {request.model_id}")
|
126 |
# Convert queue request to evaluation request
|
@@ -131,20 +132,20 @@ def process_evaluation_queue():
|
|
131 |
weight_type="Safetensors",
|
132 |
submitted_time=request.timestamp
|
133 |
)
|
134 |
-
|
135 |
# Run evaluation
|
136 |
results = evaluation_manager.run_evaluation(eval_request)
|
137 |
logger.info(f"Evaluation complete for {request.model_id}")
|
138 |
-
|
139 |
# Save results to stacklok/results
|
140 |
save_results_to_repo(results, RESULTS_REPO)
|
141 |
-
|
142 |
# Mark request as complete
|
143 |
queue_manager.mark_complete(request.request_id)
|
144 |
-
|
145 |
# Update leaderboard
|
146 |
update_leaderboard()
|
147 |
-
|
148 |
except Exception as e:
|
149 |
logger.error(f"Evaluation failed for {request.model_id}: {str(e)}", exc_info=True)
|
150 |
# Move failed request back to pending queue
|
@@ -159,10 +160,10 @@ def save_results_to_repo(results, repo):
|
|
159 |
api = HfApi()
|
160 |
model_id = results['model_id'].replace('/', '_')
|
161 |
filename = f"{model_id}_results.json"
|
162 |
-
|
163 |
# Convert results to JSON string
|
164 |
json_results = json.dumps(results, indent=2)
|
165 |
-
|
166 |
# Save results to the repository
|
167 |
api.upload_file(
|
168 |
path_or_fileobj=json_results.encode(),
|
@@ -171,7 +172,7 @@ def save_results_to_repo(results, repo):
|
|
171 |
repo_type="dataset",
|
172 |
token=TOKEN
|
173 |
)
|
174 |
-
|
175 |
logger.info(f"Saved results for {results['model_id']} to {repo}/{filename}")
|
176 |
except Exception as e:
|
177 |
logger.error(f"Failed to save results to {repo}: {str(e)}", exc_info=True)
|
@@ -211,7 +212,7 @@ def init_leaderboard(df):
|
|
211 |
|
212 |
# Select only the columns we want to display
|
213 |
df = df[COLS]
|
214 |
-
|
215 |
logger.info(f"Final leaderboard columns: {df.columns.tolist()}")
|
216 |
logger.debug(f"Leaderboard data:\n{df}")
|
217 |
|
@@ -339,7 +340,7 @@ with demo:
|
|
339 |
"""Handle new model submission."""
|
340 |
try:
|
341 |
logger.info(f"New submission received for {model}")
|
342 |
-
|
343 |
# Prepare request data
|
344 |
request_data = {
|
345 |
"model_id": model,
|
@@ -351,7 +352,7 @@ with demo:
|
|
351 |
"status": "PENDING",
|
352 |
"timestamp": datetime.now().isoformat()
|
353 |
}
|
354 |
-
|
355 |
# Add to queue in QUEUE_REPO
|
356 |
api = HfApi()
|
357 |
filename = f"{model.replace('/', '_')}_request.json"
|
@@ -362,15 +363,15 @@ with demo:
|
|
362 |
repo_type="dataset",
|
363 |
token=TOKEN
|
364 |
)
|
365 |
-
|
366 |
logger.info(f"Added request for {model} to {QUEUE_REPO}")
|
367 |
-
|
368 |
# Get updated pending evaluations
|
369 |
_, _, pending_eval_queue_df = get_evaluation_queue_df(EVAL_REQUESTS_PATH, EVAL_COLS)
|
370 |
-
|
371 |
# Start processing queue in background
|
372 |
scheduler.add_job(process_evaluation_queue, id='process_queue_job', replace_existing=True)
|
373 |
-
|
374 |
return gr.Markdown("Submission successful! Your model has been added to the evaluation queue. Please check the 'Pending Evaluation Queue' for status updates."), pending_eval_queue_df
|
375 |
except Exception as e:
|
376 |
logger.error(f"Submission failed: {str(e)}", exc_info=True)
|
|
|
6 |
import os
|
7 |
import logging
|
8 |
import json
|
9 |
+
from datetime import datetime
|
10 |
|
11 |
from src.core.evaluation import EvaluationManager, EvaluationRequest
|
12 |
from src.core.queue_manager import QueueManager
|
|
|
32 |
Precision
|
33 |
)
|
34 |
from src.envs import (
|
35 |
+
API,
|
36 |
CACHE_PATH,
|
37 |
+
EVAL_REQUESTS_PATH,
|
38 |
+
EVAL_RESULTS_PATH,
|
39 |
+
QUEUE_REPO,
|
40 |
+
REPO_ID,
|
41 |
+
RESULTS_REPO,
|
42 |
TOKEN
|
43 |
)
|
44 |
from src.populate import get_evaluation_queue_df, get_leaderboard_df
|
|
|
121 |
if not request:
|
122 |
logger.info("No more requests in the queue")
|
123 |
break
|
124 |
+
|
125 |
try:
|
126 |
logger.info(f"Processing request for model: {request.model_id}")
|
127 |
# Convert queue request to evaluation request
|
|
|
132 |
weight_type="Safetensors",
|
133 |
submitted_time=request.timestamp
|
134 |
)
|
135 |
+
|
136 |
# Run evaluation
|
137 |
results = evaluation_manager.run_evaluation(eval_request)
|
138 |
logger.info(f"Evaluation complete for {request.model_id}")
|
139 |
+
|
140 |
# Save results to stacklok/results
|
141 |
save_results_to_repo(results, RESULTS_REPO)
|
142 |
+
|
143 |
# Mark request as complete
|
144 |
queue_manager.mark_complete(request.request_id)
|
145 |
+
|
146 |
# Update leaderboard
|
147 |
update_leaderboard()
|
148 |
+
|
149 |
except Exception as e:
|
150 |
logger.error(f"Evaluation failed for {request.model_id}: {str(e)}", exc_info=True)
|
151 |
# Move failed request back to pending queue
|
|
|
160 |
api = HfApi()
|
161 |
model_id = results['model_id'].replace('/', '_')
|
162 |
filename = f"{model_id}_results.json"
|
163 |
+
|
164 |
# Convert results to JSON string
|
165 |
json_results = json.dumps(results, indent=2)
|
166 |
+
|
167 |
# Save results to the repository
|
168 |
api.upload_file(
|
169 |
path_or_fileobj=json_results.encode(),
|
|
|
172 |
repo_type="dataset",
|
173 |
token=TOKEN
|
174 |
)
|
175 |
+
|
176 |
logger.info(f"Saved results for {results['model_id']} to {repo}/{filename}")
|
177 |
except Exception as e:
|
178 |
logger.error(f"Failed to save results to {repo}: {str(e)}", exc_info=True)
|
|
|
212 |
|
213 |
# Select only the columns we want to display
|
214 |
df = df[COLS]
|
215 |
+
|
216 |
logger.info(f"Final leaderboard columns: {df.columns.tolist()}")
|
217 |
logger.debug(f"Leaderboard data:\n{df}")
|
218 |
|
|
|
340 |
"""Handle new model submission."""
|
341 |
try:
|
342 |
logger.info(f"New submission received for {model}")
|
343 |
+
|
344 |
# Prepare request data
|
345 |
request_data = {
|
346 |
"model_id": model,
|
|
|
352 |
"status": "PENDING",
|
353 |
"timestamp": datetime.now().isoformat()
|
354 |
}
|
355 |
+
|
356 |
# Add to queue in QUEUE_REPO
|
357 |
api = HfApi()
|
358 |
filename = f"{model.replace('/', '_')}_request.json"
|
|
|
363 |
repo_type="dataset",
|
364 |
token=TOKEN
|
365 |
)
|
366 |
+
|
367 |
logger.info(f"Added request for {model} to {QUEUE_REPO}")
|
368 |
+
|
369 |
# Get updated pending evaluations
|
370 |
_, _, pending_eval_queue_df = get_evaluation_queue_df(EVAL_REQUESTS_PATH, EVAL_COLS)
|
371 |
+
|
372 |
# Start processing queue in background
|
373 |
scheduler.add_job(process_evaluation_queue, id='process_queue_job', replace_existing=True)
|
374 |
+
|
375 |
return gr.Markdown("Submission successful! Your model has been added to the evaluation queue. Please check the 'Pending Evaluation Queue' for status updates."), pending_eval_queue_df
|
376 |
except Exception as e:
|
377 |
logger.error(f"Submission failed: {str(e)}", exc_info=True)
|