Spaces:
Runtime error
Runtime error
Update app.py
Browse files
app.py
CHANGED
|
@@ -1,14 +1,12 @@
|
|
| 1 |
# app.py
|
| 2 |
import gradio as gr
|
| 3 |
import json
|
| 4 |
-
import os
|
| 5 |
from datetime import datetime
|
| 6 |
from pathlib import Path
|
| 7 |
|
| 8 |
# ============================
|
| 9 |
# USER ACCESS LIST
|
| 10 |
# ============================
|
| 11 |
-
# Daftar username HuggingFace yang punya akses premium/super premium
|
| 12 |
PREMIUM_USERS = ["Akhmad123", "user_premium_1"]
|
| 13 |
SUPER_USERS = ["Akhmad123", "user_super_1"]
|
| 14 |
|
|
@@ -110,7 +108,7 @@ def generate_variants(kind, goal, tone, audience, length, constraints, language,
|
|
| 110 |
|
| 111 |
return variants
|
| 112 |
|
| 113 |
-
def
|
| 114 |
goal = normalize(goal, "Describe the task clearly.")
|
| 115 |
tone = normalize(tone, "neutral")
|
| 116 |
audience = normalize(audience, "general")
|
|
@@ -125,26 +123,23 @@ def generate(goal, kind, tone, audience, length, constraints, language, n, tier=
|
|
| 125 |
kind, goal, tone, audience, length, constraints, language, n, tier
|
| 126 |
)
|
| 127 |
|
| 128 |
-
|
| 129 |
-
|
| 130 |
-
|
| 131 |
-
|
| 132 |
-
|
| 133 |
-
|
| 134 |
-
|
| 135 |
-
|
| 136 |
|
| 137 |
-
return
|
| 138 |
|
| 139 |
# ============================
|
| 140 |
# MAIN HANDLER (LOGIN)
|
| 141 |
# ============================
|
| 142 |
-
def main_handler(request: gr.Request, goal
|
| 143 |
-
length=None, constraints=None, language=None, n=None):
|
| 144 |
-
|
| 145 |
username = request.username or "anonymous"
|
| 146 |
|
| 147 |
-
# Tentukan tier user
|
| 148 |
if username in SUPER_USERS:
|
| 149 |
tier = "super"
|
| 150 |
elif username in PREMIUM_USERS:
|
|
@@ -152,23 +147,19 @@ def main_handler(request: gr.Request, goal=None, kind=None, tone=None, audience=
|
|
| 152 |
else:
|
| 153 |
tier = "free"
|
| 154 |
|
| 155 |
-
return
|
| 156 |
|
| 157 |
# ============================
|
| 158 |
# UI
|
| 159 |
# ============================
|
| 160 |
with gr.Blocks() as demo:
|
| 161 |
|
| 162 |
-
gr.Markdown("#
|
|
|
|
| 163 |
|
| 164 |
-
gr.Markdown(
|
| 165 |
-
|
| 166 |
-
|
| 167 |
-
- **Free** β User biasa
|
| 168 |
-
- **Premium** β User terdaftar
|
| 169 |
-
- **Super Premium** β User VIP
|
| 170 |
-
"""
|
| 171 |
-
)
|
| 172 |
|
| 173 |
goal = gr.Textbox(label="Goal")
|
| 174 |
kind = gr.Radio(["text", "image", "code"], value="text")
|
|
@@ -179,9 +170,9 @@ with gr.Blocks() as demo:
|
|
| 179 |
language = gr.Textbox(label="Language", value="Indonesian")
|
| 180 |
n = gr.Slider(1, 20, value=3, step=1, label="Jumlah Varian")
|
| 181 |
|
| 182 |
-
btn = gr.Button("π Generate
|
| 183 |
-
out = gr.Textbox(label="
|
| 184 |
-
copy_btn = gr.Button("Copy")
|
| 185 |
|
| 186 |
btn.click(
|
| 187 |
main_handler,
|
|
@@ -193,7 +184,7 @@ with gr.Blocks() as demo:
|
|
| 193 |
None,
|
| 194 |
None,
|
| 195 |
None,
|
| 196 |
-
js="navigator.clipboard.writeText(document.getElementById('
|
| 197 |
)
|
| 198 |
|
| 199 |
# ============================
|
|
@@ -203,5 +194,5 @@ demo.launch(
|
|
| 203 |
server_name="0.0.0.0",
|
| 204 |
server_port=7860,
|
| 205 |
theme=gr.themes.Soft(),
|
| 206 |
-
auth_message="Silakan login untuk
|
| 207 |
)
|
|
|
|
| 1 |
# app.py
|
| 2 |
import gradio as gr
|
| 3 |
import json
|
|
|
|
| 4 |
from datetime import datetime
|
| 5 |
from pathlib import Path
|
| 6 |
|
| 7 |
# ============================
|
| 8 |
# USER ACCESS LIST
|
| 9 |
# ============================
|
|
|
|
| 10 |
PREMIUM_USERS = ["Akhmad123", "user_premium_1"]
|
| 11 |
SUPER_USERS = ["Akhmad123", "user_super_1"]
|
| 12 |
|
|
|
|
| 108 |
|
| 109 |
return variants
|
| 110 |
|
| 111 |
+
def generate_json(username, goal, kind, tone, audience, length, constraints, language, n, tier):
|
| 112 |
goal = normalize(goal, "Describe the task clearly.")
|
| 113 |
tone = normalize(tone, "neutral")
|
| 114 |
audience = normalize(audience, "general")
|
|
|
|
| 123 |
kind, goal, tone, audience, length, constraints, language, n, tier
|
| 124 |
)
|
| 125 |
|
| 126 |
+
data = {
|
| 127 |
+
"generated_at": datetime.utcnow().isoformat() + "Z",
|
| 128 |
+
"user": username,
|
| 129 |
+
"tier": tier,
|
| 130 |
+
"kind": kind,
|
| 131 |
+
"goal": goal,
|
| 132 |
+
"variants": variants
|
| 133 |
+
}
|
| 134 |
|
| 135 |
+
return json.dumps(data, ensure_ascii=False, indent=2)
|
| 136 |
|
| 137 |
# ============================
|
| 138 |
# MAIN HANDLER (LOGIN)
|
| 139 |
# ============================
|
| 140 |
+
def main_handler(request: gr.Request, goal, kind, tone, audience, length, constraints, language, n):
|
|
|
|
|
|
|
| 141 |
username = request.username or "anonymous"
|
| 142 |
|
|
|
|
| 143 |
if username in SUPER_USERS:
|
| 144 |
tier = "super"
|
| 145 |
elif username in PREMIUM_USERS:
|
|
|
|
| 147 |
else:
|
| 148 |
tier = "free"
|
| 149 |
|
| 150 |
+
return generate_json(username, goal, kind, tone, audience, length, constraints, language, n, tier)
|
| 151 |
|
| 152 |
# ============================
|
| 153 |
# UI
|
| 154 |
# ============================
|
| 155 |
with gr.Blocks() as demo:
|
| 156 |
|
| 157 |
+
gr.Markdown("# π Login Required")
|
| 158 |
+
gr.Markdown("Silakan login dengan akun HuggingFace Anda untuk melanjutkan.")
|
| 159 |
|
| 160 |
+
gr.Markdown("---")
|
| 161 |
+
|
| 162 |
+
gr.Markdown("# π AIPromptLab β JSON Output Edition")
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 163 |
|
| 164 |
goal = gr.Textbox(label="Goal")
|
| 165 |
kind = gr.Radio(["text", "image", "code"], value="text")
|
|
|
|
| 170 |
language = gr.Textbox(label="Language", value="Indonesian")
|
| 171 |
n = gr.Slider(1, 20, value=3, step=1, label="Jumlah Varian")
|
| 172 |
|
| 173 |
+
btn = gr.Button("π Generate JSON")
|
| 174 |
+
out = gr.Textbox(label="Output JSON", lines=25, elem_id="json-output")
|
| 175 |
+
copy_btn = gr.Button("Copy JSON")
|
| 176 |
|
| 177 |
btn.click(
|
| 178 |
main_handler,
|
|
|
|
| 184 |
None,
|
| 185 |
None,
|
| 186 |
None,
|
| 187 |
+
js="navigator.clipboard.writeText(document.getElementById('json-output').value)"
|
| 188 |
)
|
| 189 |
|
| 190 |
# ============================
|
|
|
|
| 194 |
server_name="0.0.0.0",
|
| 195 |
server_port=7860,
|
| 196 |
theme=gr.themes.Soft(),
|
| 197 |
+
auth_message="Silakan login untuk menggunakan AIPromptLab."
|
| 198 |
)
|