Spaces:
Running
Running
Ron Au
commited on
Commit
•
3750ff9
1
Parent(s):
2d460b1
fix(eta): Base ETA on original place in queue
Browse files
app.py
CHANGED
@@ -16,6 +16,29 @@ def index():
|
|
16 |
tasks = {}
|
17 |
|
18 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
19 |
@app.route('/task/create')
|
20 |
def create_task():
|
21 |
prompt = request.args.get('prompt') or "покемон"
|
@@ -28,10 +51,14 @@ def create_task():
|
|
28 |
"task_id": task_id,
|
29 |
"created_at": created_at,
|
30 |
"prompt": prompt,
|
|
|
31 |
"status": "pending",
|
32 |
"poll_count": 0,
|
33 |
}
|
34 |
|
|
|
|
|
|
|
35 |
return jsonify(tasks[task_id])
|
36 |
|
37 |
|
|
|
16 |
tasks = {}
|
17 |
|
18 |
|
19 |
+
def place_in_queue(task_id):
|
20 |
+
|
21 |
+
pending_tasks = list(task for task in tasks.values()
|
22 |
+
if task["status"] == "pending")
|
23 |
+
|
24 |
+
try:
|
25 |
+
return pending_tasks.index(task_id) + 1
|
26 |
+
except:
|
27 |
+
return 0
|
28 |
+
|
29 |
+
|
30 |
+
def calculate_eta(task_id):
|
31 |
+
total_durations = list(task["completed_at"] - task["created_at"]
|
32 |
+
for task in tasks.values() if "completed_at" in task)
|
33 |
+
|
34 |
+
place = tasks[task_id]["initial_place_in_queue"] or 1
|
35 |
+
|
36 |
+
if len(total_durations):
|
37 |
+
return sum(total_durations) / len(total_durations) * place
|
38 |
+
else:
|
39 |
+
return 40 * place
|
40 |
+
|
41 |
+
|
42 |
@app.route('/task/create')
|
43 |
def create_task():
|
44 |
prompt = request.args.get('prompt') or "покемон"
|
|
|
51 |
"task_id": task_id,
|
52 |
"created_at": created_at,
|
53 |
"prompt": prompt,
|
54 |
+
"initial_place_in_queue": place_in_queue(task_id),
|
55 |
"status": "pending",
|
56 |
"poll_count": 0,
|
57 |
}
|
58 |
|
59 |
+
print("Place in queue: ", place_in_queue(task_id))
|
60 |
+
print("ETA: ", calculate_eta(task_id))
|
61 |
+
|
62 |
return jsonify(tasks[task_id])
|
63 |
|
64 |
|