FaiziRBLX commited on
Commit
26a26d9
·
verified ·
1 Parent(s): 75d5d1e

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +52 -45
app.py CHANGED
@@ -1,46 +1,53 @@
1
- import torch
2
- import gradio as gr
3
- from transformers import AutoTokenizer
4
-
5
- # IMPORT ARSITEKTUR DARI best.py
6
- # (Sesuaikan nama class-nya dengan yang ada di best.py, misalnya 'ModelConfig' dan 'MyTransformer')
7
- from best import ModelConfig, MyTransformer # <--- Ganti MyTransformer dengan nama class modelmu
8
-
9
- # 1. Load Tokenizer (Sesuai dengan yang ada di best.py)
10
- tokenizer = AutoTokenizer.from_pretrained("indolem/indobert-base-uncased")
11
-
12
- # 2. Inisialisasi Arsitektur Model
13
- config = ModelConfig()
14
- model = MyTransformer(config) # <--- Ganti dengan inisialisasi class model aslimu
15
-
16
- # 3. Load Bobot Model (model.pt)
17
- model.load_state_dict(torch.load("model.pt", map_location=torch.device('cpu')))
18
- model.eval()
19
-
20
- # 4. Fungsi Inference (Logika saat model menerima teks)
21
- def predict(teks_input):
22
- # Ini adalah contoh, sesuaikan dengan cara modelmu men-generate teks
23
- inputs = tokenizer(teks_input, return_tensors="pt")
24
-
25
- with torch.no_grad():
26
- # Asumsi modelmu punya fungsi generate atau forward
27
- # Jika modelmu butuh max_length, tambahkan di sini
28
- outputs = model(inputs["input_ids"])
29
-
30
- # Decode output kembali menjadi teks
31
- # (Logika decode ini bergantung pada output dari class modelmu di best.py)
32
- # hasil_teks = tokenizer.decode(outputs[0], skip_special_tokens=True)
33
- hasil_teks = "Ini contoh output respons dari model."
34
-
35
- return hasil_teks
36
-
37
- # 5. Buat API dengan Gradio
38
- iface = gr.Interface(
39
- fn=predict,
40
- inputs=gr.Textbox(lines=2, placeholder="Ketik pesan di sini..."),
41
- outputs="text",
42
- title="Indonesian LLM API"
43
- )
44
-
45
- # Jalankan server
 
 
 
 
 
 
 
46
  iface.launch()
 
1
+ import torch
2
+ import gradio as gr
3
+ from transformers import AutoTokenizer
4
+
5
+ # IMPORT ARSITEKTUR DARI best.py
6
+ # (Sesuaikan nama class-nya dengan yang ada di best.py, misalnya 'ModelConfig' dan 'MyTransformer')
7
+ from best import ModelConfig, MyTransformer # <--- Ganti MyTransformer dengan nama class modelmu
8
+
9
+ # 1. Load Tokenizer (Sesuai dengan yang ada di best.py)
10
+ # 1. Load file bobotnya dulu ke dalam variabel
11
+ state_dict = torch.load("model.pt", map_location=torch.device('cpu'))
12
+
13
+ # 2. Buat kamus baru untuk menyimpan nama kunci yang sudah diperbaiki
14
+ new_state_dict = {}
15
+ for key, value in state_dict.items():
16
+ # Jika nama kuncinya berawalan 'model.', kita potong 6 huruf pertamanya
17
+ if key.startswith('model.'):
18
+ new_key = key[6:]
19
+ new_state_dict[new_key] = value
20
+ else:
21
+ new_state_dict[key] = value
22
+
23
+ # 3. Masukkan bobot yang namanya sudah diperbaiki ke dalam kerangka model
24
+ model.load_state_dict(new_state_dict)
25
+ model.eval()
26
+
27
+ # 4. Fungsi Inference (Logika saat model menerima teks)
28
+ def predict(teks_input):
29
+ # Ini adalah contoh, sesuaikan dengan cara modelmu men-generate teks
30
+ inputs = tokenizer(teks_input, return_tensors="pt")
31
+
32
+ with torch.no_grad():
33
+ # Asumsi modelmu punya fungsi generate atau forward
34
+ # Jika modelmu butuh max_length, tambahkan di sini
35
+ outputs = model(inputs["input_ids"])
36
+
37
+ # Decode output kembali menjadi teks
38
+ # (Logika decode ini bergantung pada output dari class modelmu di best.py)
39
+ # hasil_teks = tokenizer.decode(outputs[0], skip_special_tokens=True)
40
+ hasil_teks = "Ini contoh output respons dari model."
41
+
42
+ return hasil_teks
43
+
44
+ # 5. Buat API dengan Gradio
45
+ iface = gr.Interface(
46
+ fn=predict,
47
+ inputs=gr.Textbox(lines=2, placeholder="Ketik pesan di sini..."),
48
+ outputs="text",
49
+ title="Indonesian LLM API"
50
+ )
51
+
52
+ # Jalankan server
53
  iface.launch()