Spaces:
Running
Running
Ron Au
commited on
Commit
·
42422ba
1
Parent(s):
d047305
feat(endpoint): Change `create/task` from GET to POST
Browse files- app.py +9 -4
- static/js/network.js +7 -1
app.py
CHANGED
|
@@ -4,6 +4,7 @@ from statistics import mean
|
|
| 4 |
from fastapi import BackgroundTasks, FastAPI
|
| 5 |
from fastapi.staticfiles import StaticFiles
|
| 6 |
from fastapi.responses import FileResponse
|
|
|
|
| 7 |
|
| 8 |
from modules.details import rand_details
|
| 9 |
from modules.inference import generate_image
|
|
@@ -15,6 +16,10 @@ app.mount("/static", StaticFiles(directory="static"), name="static")
|
|
| 15 |
tasks = {}
|
| 16 |
|
| 17 |
|
|
|
|
|
|
|
|
|
|
|
|
|
| 18 |
def get_place_in_queue(task_id):
|
| 19 |
queued_tasks = list(task for task in tasks.values()
|
| 20 |
if task["status"] == "queued" or task["status"] == "processing")
|
|
@@ -78,16 +83,16 @@ def generate_details():
|
|
| 78 |
return rand_details()
|
| 79 |
|
| 80 |
|
| 81 |
-
@app.
|
| 82 |
-
def create_task(background_tasks: BackgroundTasks,
|
| 83 |
created_at = time()
|
| 84 |
|
| 85 |
-
task_id = f"{str(created_at)}_{prompt}"
|
| 86 |
|
| 87 |
tasks[task_id] = {
|
| 88 |
"task_id": task_id,
|
| 89 |
"created_at": created_at,
|
| 90 |
-
"prompt": prompt,
|
| 91 |
"status": "queued",
|
| 92 |
"poll_count": 0,
|
| 93 |
}
|
|
|
|
| 4 |
from fastapi import BackgroundTasks, FastAPI
|
| 5 |
from fastapi.staticfiles import StaticFiles
|
| 6 |
from fastapi.responses import FileResponse
|
| 7 |
+
from pydantic import BaseModel
|
| 8 |
|
| 9 |
from modules.details import rand_details
|
| 10 |
from modules.inference import generate_image
|
|
|
|
| 16 |
tasks = {}
|
| 17 |
|
| 18 |
|
| 19 |
+
class NewTask(BaseModel):
|
| 20 |
+
prompt = "покемон"
|
| 21 |
+
|
| 22 |
+
|
| 23 |
def get_place_in_queue(task_id):
|
| 24 |
queued_tasks = list(task for task in tasks.values()
|
| 25 |
if task["status"] == "queued" or task["status"] == "processing")
|
|
|
|
| 83 |
return rand_details()
|
| 84 |
|
| 85 |
|
| 86 |
+
@app.post('/task/create')
|
| 87 |
+
def create_task(background_tasks: BackgroundTasks, new_task: NewTask):
|
| 88 |
created_at = time()
|
| 89 |
|
| 90 |
+
task_id = f"{str(created_at)}_{new_task.prompt}"
|
| 91 |
|
| 92 |
tasks[task_id] = {
|
| 93 |
"task_id": task_id,
|
| 94 |
"created_at": created_at,
|
| 95 |
+
"prompt": new_task.prompt,
|
| 96 |
"status": "queued",
|
| 97 |
"poll_count": 0,
|
| 98 |
}
|
static/js/network.js
CHANGED
|
@@ -13,7 +13,13 @@ const generateDetails = async () => {
|
|
| 13 |
};
|
| 14 |
|
| 15 |
const createTask = async (prompt) => {
|
| 16 |
-
const taskResponse = await fetch(pathFor(
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 17 |
const task = await taskResponse.json();
|
| 18 |
|
| 19 |
return task;
|
|
|
|
| 13 |
};
|
| 14 |
|
| 15 |
const createTask = async (prompt) => {
|
| 16 |
+
const taskResponse = await fetch(pathFor('task/create'), {
|
| 17 |
+
method: 'POST',
|
| 18 |
+
headers: {
|
| 19 |
+
'Content-Type': 'application/json',
|
| 20 |
+
},
|
| 21 |
+
body: JSON.stringify({ prompt }),
|
| 22 |
+
});
|
| 23 |
const task = await taskResponse.json();
|
| 24 |
|
| 25 |
return task;
|