From c417a13434cdf592b35cee5fcb60bf7750bb6787 Mon Sep 17 00:00:00 2001 From: Renato Rosa Date: Wed, 19 Aug 2026 22:13:31 -0300 Subject: [PATCH] Atualizar app/app.py --- app/app.py | 51 +++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 51 insertions(+) diff --git a/app/app.py b/app/app.py index 1e157d6..bfd8436 100644 --- a/app/app.py +++ b/app/app.py @@ -55,6 +55,8 @@ def queue_admin_generate(): # ================ # DECORATORS # ================ + + def enforce_plan_limits(f): @wraps(f) def wrapper(*args, **kwargs): @@ -1113,6 +1115,27 @@ def queue_generate(): return jsonify({"task_id": task.id}) +@app.route("/api/generate", methods=["POST"]) +@login_required +def generate(): + data = request.json + cid = data["conversation_id"] + model = data["model"] + prompt = data["prompt"] + + db = SessionLocal() + email = session["user"]["email"] if app.config["AUTH_MODE"] == "oauth" else session["db_user"]["email"] + user = db.query(User).filter_by(email=email).first() + db.close() + + task = enqueue_by_priority(user, cid, model, prompt) + + return jsonify({"task_id": task.id}) + + + + + from celery_app import celery @app.route("/api/queue/status/") @@ -1127,6 +1150,34 @@ def queue_status(task_id): +def enqueue_by_priority(user, cid, model, prompt): + if user.priority == "system_admin": + return system_admin_generate.delay(cid, model, prompt) + + if user.priority == "corp_admin": + return corp_admin_generate.delay(cid, model, prompt) + + return user_generate.delay(cid, model, prompt) + + +def enqueue_task(model, prompt, cid, user): + db = SessionLocal() + plan = db.query(Plan).filter_by(id=user.plan_id).first() + db.close() + + queue = plan.priority_queue # default, premium, admin + + if queue == "admin": + return admin_generate.delay(cid, model, prompt) + if queue == "premium": + return premium_generate.delay(cid, model, prompt) + return generate_task.delay(cid, model, prompt) + + + + + + # *** import json