Spaces:
Build error
Build error
Update app.py
Browse files
app.py
CHANGED
|
@@ -5,20 +5,36 @@ import re
|
|
| 5 |
from huggingface_hub import InferenceClient
|
| 6 |
|
| 7 |
# ======================================================
|
| 8 |
-
#
|
|
|
|
|
|
|
|
|
|
| 9 |
# ======================================================
|
| 10 |
-
# Kita mengambil token dari "Secrets" yang baru Anda buat
|
| 11 |
-
# Jadi tidak ada kode rahasia yang terlihat di sini.
|
| 12 |
-
hf_token = os.getenv("HF_TOKEN")
|
| 13 |
|
| 14 |
-
#
|
| 15 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 16 |
|
| 17 |
def engineer_mode(deskripsi_user):
|
|
|
|
|
|
|
|
|
|
|
|
|
| 18 |
if not deskripsi_user:
|
| 19 |
return "⚠️ Mohon isi deskripsi mesin dulu.", None
|
| 20 |
|
| 21 |
-
# Prompt Insinyur
|
| 22 |
prompt_system = """
|
| 23 |
PERAN: Senior Industrial Automation Engineer (20+ Tahun).
|
| 24 |
TUGAS: Terjemahkan ide user menjadi Dokumen Teknis Siap Rakit.
|
|
@@ -68,7 +84,6 @@ def engineer_mode(deskripsi_user):
|
|
| 68 |
else:
|
| 69 |
dot_code = 'digraph G { Error -> "Diagram Tidak Tergenerate"; }'
|
| 70 |
|
| 71 |
-
# Render Gambar
|
| 72 |
try:
|
| 73 |
src = graphviz.Source(dot_code)
|
| 74 |
output_path = src.render("diagram_output", format="png")
|
|
@@ -77,12 +92,12 @@ def engineer_mode(deskripsi_user):
|
|
| 77 |
return response_text, None
|
| 78 |
|
| 79 |
except Exception as e:
|
| 80 |
-
return f"⚠️ ERROR
|
| 81 |
|
| 82 |
# Tampilan UI
|
| 83 |
with gr.Blocks(theme=gr.themes.Soft()) as app:
|
| 84 |
gr.Markdown("# 🏭 AI Insinyur (Secure Version)")
|
| 85 |
-
gr.Markdown("Model: **Qwen 2.5 (72B)** | Status: **
|
| 86 |
|
| 87 |
with gr.Row():
|
| 88 |
inp = gr.Textbox(lines=4, label="Deskripsi Mesin", placeholder="Jelaskan kebutuhan mesin Anda...")
|
|
|
|
| 5 |
from huggingface_hub import InferenceClient
|
| 6 |
|
| 7 |
# ======================================================
|
| 8 |
+
# CARA BERSIH (AMBIL DARI SETTINGS)
|
| 9 |
+
# ======================================================
|
| 10 |
+
# Kita tidak menulis token disini. Kita minta komputer
|
| 11 |
+
# mengambilnya dari menu Settings > Secrets.
|
| 12 |
# ======================================================
|
|
|
|
|
|
|
|
|
|
| 13 |
|
| 14 |
+
# Mengambil token dari brankas Hugging Face
|
| 15 |
+
my_token = os.getenv("HF_TOKEN")
|
| 16 |
+
|
| 17 |
+
# Logika darurat jika token tidak terbaca
|
| 18 |
+
if my_token is None:
|
| 19 |
+
# Fallback manual jika user lupa setting secrets (tapi jangan tulis full di sini)
|
| 20 |
+
print("⚠️ WARNING: Token tidak ditemukan di Settings!")
|
| 21 |
+
client = None
|
| 22 |
+
else:
|
| 23 |
+
# Inisialisasi Model Qwen 2.5
|
| 24 |
+
try:
|
| 25 |
+
client = InferenceClient("Qwen/Qwen2.5-72B-Instruct", token=my_token)
|
| 26 |
+
except Exception as e:
|
| 27 |
+
print(f"Error Client: {e}")
|
| 28 |
+
client = None
|
| 29 |
|
| 30 |
def engineer_mode(deskripsi_user):
|
| 31 |
+
# Cek apakah client berhasil dibuat
|
| 32 |
+
if client is None:
|
| 33 |
+
return "❌ ERROR FATAL: Token HF_TOKEN belum dipasang di menu Settings > Secrets. Mohon pasang dulu.", None
|
| 34 |
+
|
| 35 |
if not deskripsi_user:
|
| 36 |
return "⚠️ Mohon isi deskripsi mesin dulu.", None
|
| 37 |
|
|
|
|
| 38 |
prompt_system = """
|
| 39 |
PERAN: Senior Industrial Automation Engineer (20+ Tahun).
|
| 40 |
TUGAS: Terjemahkan ide user menjadi Dokumen Teknis Siap Rakit.
|
|
|
|
| 84 |
else:
|
| 85 |
dot_code = 'digraph G { Error -> "Diagram Tidak Tergenerate"; }'
|
| 86 |
|
|
|
|
| 87 |
try:
|
| 88 |
src = graphviz.Source(dot_code)
|
| 89 |
output_path = src.render("diagram_output", format="png")
|
|
|
|
| 92 |
return response_text, None
|
| 93 |
|
| 94 |
except Exception as e:
|
| 95 |
+
return f"⚠️ ERROR KONEKSI: {str(e)}\nCoba refresh Space ini.", None
|
| 96 |
|
| 97 |
# Tampilan UI
|
| 98 |
with gr.Blocks(theme=gr.themes.Soft()) as app:
|
| 99 |
gr.Markdown("# 🏭 AI Insinyur (Secure Version)")
|
| 100 |
+
gr.Markdown("Model: **Qwen 2.5 (72B)** | Status: **Secrets Activated**")
|
| 101 |
|
| 102 |
with gr.Row():
|
| 103 |
inp = gr.Textbox(lines=4, label="Deskripsi Mesin", placeholder="Jelaskan kebutuhan mesin Anda...")
|