Arif571 commited on
Commit
0af23fa
·
verified ·
1 Parent(s): 86d975f

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +41 -14
app.py CHANGED
@@ -5,19 +5,47 @@ import gradio as gr
5
  import graphviz
6
 
7
  # --- SETUP API KEY ---
8
- # Menggunakan API Key Anda
9
  MY_API_KEY = "AIzaSyAY4KmX9Xf1xZ4bnme7c1mw61QWn4nNLDI"
 
10
 
11
- # --- PERBAIKAN DI SINI ---
12
- # Kita gunakan 'gemini-pro' karena lebih stabil dan pasti ada.
13
- try:
14
- genai.configure(api_key=MY_API_KEY)
15
- model = genai.GenerativeModel('gemini-pro')
16
- except Exception as e:
17
- print(f"Error Setup: {e}")
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
18
 
19
  # --- LOGIKA INSINYUR ---
20
  def engineer_mode(deskripsi_user):
 
 
 
 
 
 
 
21
  if not deskripsi_user:
22
  return "⚠️ Mohon isi deskripsi mesin dulu.", None
23
 
@@ -37,13 +65,11 @@ def engineer_mode(deskripsi_user):
37
  """
38
 
39
  try:
40
- # Generate konten
41
- response = model.generate_content(final_prompt)
42
  text = response.text
43
 
44
  # Ekstraksi Diagram
45
  dot_code = ""
46
- # Mencari pola digraph G { ... }
47
  if "digraph G {" in text:
48
  s = text.find("digraph G {")
49
  e = text.rfind("}") + 1
@@ -60,15 +86,16 @@ def engineer_mode(deskripsi_user):
60
  return text, None
61
 
62
  except Exception as e:
63
- return f"Error AI: {str(e)}", None
64
 
65
  # --- TAMPILAN (UI) ---
66
  with gr.Blocks(theme=gr.themes.Soft()) as app:
67
- gr.Markdown("# 🏭 AI Perancang Mesin (Versi Stabil)")
 
68
 
69
  with gr.Row():
70
  inp = gr.Textbox(lines=4, label="Deskripsi Mesin", placeholder="Jelaskan mesin yang mau dibuat...")
71
- btn = gr.Button("🚀 RANCANG (GEMINI PRO)", variant="primary")
72
 
73
  with gr.Row():
74
  out_txt = gr.Markdown(label="Dokumen Teknis")
 
5
  import graphviz
6
 
7
  # --- SETUP API KEY ---
 
8
  MY_API_KEY = "AIzaSyAY4KmX9Xf1xZ4bnme7c1mw61QWn4nNLDI"
9
+ genai.configure(api_key=MY_API_KEY)
10
 
11
+ # --- FUNGSI AUTO-DETECT MODEL (Solusi Error 404) ---
12
+ def get_working_model():
13
+ # Daftar semua kemungkinan nama model dari Google
14
+ daftar_model = [
15
+ 'gemini-1.5-flash',
16
+ 'gemini-1.5-pro',
17
+ 'gemini-1.0-pro',
18
+ 'gemini-pro',
19
+ 'models/gemini-1.5-flash',
20
+ 'models/gemini-pro'
21
+ ]
22
+
23
+ print("Sedang mencari model yang aktif...")
24
+ for nama in daftar_model:
25
+ try:
26
+ # Test koneksi ringan
27
+ model = genai.GenerativeModel(nama)
28
+ model.generate_content("test")
29
+ print(f"✅ BERHASIL! Menggunakan model: {nama}")
30
+ return model
31
+ except Exception as e:
32
+ print(f"❌ {nama} gagal, mencoba yang lain...")
33
+ continue
34
+
35
+ return None
36
+
37
+ # Inisialisasi Model saat aplikasi nyala
38
+ model_aktif = get_working_model()
39
 
40
  # --- LOGIKA INSINYUR ---
41
  def engineer_mode(deskripsi_user):
42
+ # Cek lagi jika model belum ketemu
43
+ global model_aktif
44
+ if model_aktif is None:
45
+ model_aktif = get_working_model()
46
+ if model_aktif is None:
47
+ return "⚠️ SEMUA MODEL GAGAL DIHUBUNGI. Cek API Key atau Server Google sedang down.", None
48
+
49
  if not deskripsi_user:
50
  return "⚠️ Mohon isi deskripsi mesin dulu.", None
51
 
 
65
  """
66
 
67
  try:
68
+ response = model_aktif.generate_content(final_prompt)
 
69
  text = response.text
70
 
71
  # Ekstraksi Diagram
72
  dot_code = ""
 
73
  if "digraph G {" in text:
74
  s = text.find("digraph G {")
75
  e = text.rfind("}") + 1
 
86
  return text, None
87
 
88
  except Exception as e:
89
+ return f"Error saat generate: {str(e)}", None
90
 
91
  # --- TAMPILAN (UI) ---
92
  with gr.Blocks(theme=gr.themes.Soft()) as app:
93
+ gr.Markdown("# 🏭 AI Perancang Mesin (Auto-Fix Version)")
94
+ gr.Markdown("Versi ini otomatis mencari jalur server Google yang aktif.")
95
 
96
  with gr.Row():
97
  inp = gr.Textbox(lines=4, label="Deskripsi Mesin", placeholder="Jelaskan mesin yang mau dibuat...")
98
+ btn = gr.Button("🚀 RANCANG SEKARANG", variant="primary")
99
 
100
  with gr.Row():
101
  out_txt = gr.Markdown(label="Dokumen Teknis")