Pyefuri commited on
Commit
8862c6c
Β·
verified Β·
1 Parent(s): 9802cb1

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +13 -40
app.py CHANGED
@@ -16,27 +16,18 @@ model = AutoModelForCausalLM.from_pretrained(
16
  device_map="auto"
17
  )
18
 
19
- # Fungsi pembantu untuk memproses sapaan tanpa memakan kuota/resource GPU (Bebas Error ZeroGPU)
20
- def cek_sapaan(message):
21
- pesan_bersih = message.lower().strip()
22
- sapaan_id = ["halo", "hai", "selamat siang", "slamat siang", "selamat pagi", "slamat pagi", "selamat malam", "slamat malam", "apa kabar"]
23
-
24
- if any(sapaan in pesan_bersih for sapaan in sapaan_id):
25
- respon_sapaan = "Hai, selamat siang! Ada yang bisa saya bantu untuk diterjemahkan ke dalam Bahasa Biak hari ini? 😊"
26
- if "pagi" in pesan_bersih:
27
- respon_sapaan = "Hai, selamat pagi! Ada yang bisa saya bantu untuk diterjemahkan ke dalam Bahasa Biak hari ini? 😊"
28
- elif "malam" in pesan_bersih:
29
- respon_sapaan = "Hai, selamat malam! Ada yang bisa saya bantu untuk diterjemahkan ke dalam Bahasa Biak hari ini? 😊"
30
- return respon_sapaan
31
- return None
32
-
33
- # Fungsi utama penerjemah yang khusus berjalan di GPU Hugging Face
34
  @spaces.GPU
35
- def proses_gpu_translation(message, history):
 
36
  percakapan = [
37
  {
38
  "role": "system",
39
- "content": "Kamu adalah asisten AI penerjemah yang ahli. Tugasmu adalah menerjemahkan teks dari Bahasa Indonesia ke Bahasa Biak secara akurat, alami, ringkas, dan langsung."
 
 
 
 
40
  }
41
  ]
42
 
@@ -63,8 +54,8 @@ def proses_gpu_translation(message, history):
63
  generation_kwargs = dict(
64
  **inputs,
65
  streamer=streamer,
66
- max_new_tokens=128,
67
- temperature=0.1,
68
  top_p=0.85,
69
  repetition_penalty=1.2,
70
  do_sample=True,
@@ -80,43 +71,25 @@ def proses_gpu_translation(message, history):
80
  text_terjemahan += new_text
81
  yield text_terjemahan.strip()
82
 
83
- # Fungsi jembatan utama untuk mengatur alur distribusi respons
84
- def prediksi_terjemahan(message, history):
85
- # 1. Cek apakah pesan berupa sapaan ringan (di luar GPU)
86
- sapaan_terdeteksi = cek_sapaan(message)
87
- if sapaan_terdeteksi:
88
- yield sapaan_terdeteksi
89
- return
90
-
91
- # 2. Jika bukan sapaan, lempar perintah secara aman ke GPU untuk diterjemahkan
92
- for respon in proses_gpu_translation(message, history):
93
- yield respon
94
-
95
  # ========================================================
96
  # PERBAIKAN UI/UX: CUSTOM CSS PUSAT & RAPI (TIDAK MELEBAR)
97
  # ========================================================
98
  desain_kustom_css = """
99
  #wadah-lebar-chat {
100
- max-width: 800px !important; /* Membatasi lebar agar pas seperti ChatGPT */
101
- margin: 0 auto !important; /* Menjaga posisi tetap presisi di tengah layar */
102
  float: none !important;
103
  padding-top: 20px;
104
  }
105
  .judul-pusat {
106
- text-align: center !important; /* Memaksa teks judul berada di tengah layar */
107
  margin-bottom: 15px !important;
108
  }
109
  """
110
 
111
  with gr.Blocks() as demo:
112
-
113
- # SOLUSI VISUAL: Memasukkan judul dan chatbot ke dalam kolom pembatas 800px yang sama
114
  with gr.Column(elem_id="wadah-lebar-chat"):
115
-
116
- # Menyisipkan teks judul dengan kelas CSS khusus agar sejajar tegak lurus di tengah
117
  gr.Markdown("# πŸ€– AI Bahasa Indonesia-Biak", elem_classes="judul-pusat")
118
-
119
- # Kotak chatbot otomatis mengikuti lebar container 800px tepat di bawah judul
120
  gr.ChatInterface(
121
  fn=prediksi_terjemahan,
122
 
 
16
  device_map="auto"
17
  )
18
 
19
+ # Fungsi utama penerjemah dan chat yang memanfaatkan kekuatan penuh model Qwen di GPU
 
 
 
 
 
 
 
 
 
 
 
 
 
 
20
  @spaces.GPU
21
+ def prediksi_terjemahan(message, history):
22
+ # Mengubah instruksi dasar agar model Qwen bisa fleksibel mengobrol sekaligus menerjemahkan
23
  percakapan = [
24
  {
25
  "role": "system",
26
+ "content": (
27
+ "Kamu adalah asisten AI yang ramah dan ahli dalam Bahasa Indonesia dan Bahasa Biak. "
28
+ "Jawablah sapaan dan pertanyaan umum pengguna dengan luwes. Jika pengguna meminta "
29
+ "terjemahan ke Bahasa Biak, berikan hasil terjemahan yang akurat dan alami."
30
+ )
31
  }
32
  ]
33
 
 
54
  generation_kwargs = dict(
55
  **inputs,
56
  streamer=streamer,
57
+ max_new_tokens=256, # Ditingkatkan ke 256 agar jawaban obrolan umum tidak terpotong tengah jalan
58
+ temperature=0.5, # Menggunakan 0.5 agar AI bisa menjawab sapaan secara kreatif dan tidak kaku
59
  top_p=0.85,
60
  repetition_penalty=1.2,
61
  do_sample=True,
 
71
  text_terjemahan += new_text
72
  yield text_terjemahan.strip()
73
 
 
 
 
 
 
 
 
 
 
 
 
 
74
  # ========================================================
75
  # PERBAIKAN UI/UX: CUSTOM CSS PUSAT & RAPI (TIDAK MELEBAR)
76
  # ========================================================
77
  desain_kustom_css = """
78
  #wadah-lebar-chat {
79
+ max-width: 800px !important;
80
+ margin: 0 auto !important;
81
  float: none !important;
82
  padding-top: 20px;
83
  }
84
  .judul-pusat {
85
+ text-align: center !important;
86
  margin-bottom: 15px !important;
87
  }
88
  """
89
 
90
  with gr.Blocks() as demo:
 
 
91
  with gr.Column(elem_id="wadah-lebar-chat"):
 
 
92
  gr.Markdown("# πŸ€– AI Bahasa Indonesia-Biak", elem_classes="judul-pusat")
 
 
93
  gr.ChatInterface(
94
  fn=prediksi_terjemahan,
95