forti2026 commited on
Commit
67254a9
·
verified ·
1 Parent(s): 6084588

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +6 -19
app.py CHANGED
@@ -2,49 +2,36 @@ import gradio as gr
2
  from transformers import AutoModelForCausalLM, AutoTokenizer
3
  import torch
4
 
5
- # --- NAMA MODEL YANG BARU KAMU UPLOAD TADI ---
6
  model_id = "forti2026/gemma-3-1b-chatbot-skripsi"
7
 
8
- print(f"Sedang mendownload model: {model_id}")
9
 
10
- # Load Tokenizer
11
  tokenizer = AutoTokenizer.from_pretrained(model_id)
12
 
13
- # Load Model (CPU Mode)
14
- # Kita pakai float32 karena CPU Free Tier kadang error kalau dipaksa float16/4bit
15
- # Di app.py
16
  model = AutoModelForCausalLM.from_pretrained(
17
  model_id,
18
- torch_dtype=torch.float32,
19
  low_cpu_mem_usage=True
20
  )
21
 
22
  def chat_logic(message):
23
- # Format Prompt Khusus Gemma (PENTING!)
24
- # Ini supaya model tau mana user mana sistem
25
  input_text = f"<start_of_turn>user\n{message}<end_of_turn>\n<start_of_turn>model\n"
26
 
27
- # Ubah teks jadi angka
28
  inputs = tokenizer(input_text, return_tensors="pt")
29
 
30
- # Proses Generate Jawaban
31
  outputs = model.generate(
32
  **inputs,
33
- max_new_tokens=250, # Maksimal panjang jawaban
34
- do_sample=True, # Biar jawaban bervariasi dikit (kreatif)
35
- temperature=0.7, # Tingkat 'kreativitas' (0.7 itu pas)
36
  top_k=50,
37
  top_p=0.95
38
  )
39
 
40
- # Terjemahkan angka balik ke teks
41
  response = tokenizer.decode(outputs[0], skip_special_tokens=True)
42
-
43
- # Ambil hanya bagian jawaban si model (buang prompt user di atasnya)
44
  clean_response = response.split("model\n")[-1].strip()
45
-
46
  return clean_response
47
 
48
- # Bikin Interface API
49
  iface = gr.Interface(fn=chat_logic, inputs="text", outputs="text")
50
  iface.launch()
 
2
  from transformers import AutoModelForCausalLM, AutoTokenizer
3
  import torch
4
 
 
5
  model_id = "forti2026/gemma-3-1b-chatbot-skripsi"
6
 
7
+ print(f"Sedang mendownload model baru: {model_id}")
8
 
 
9
  tokenizer = AutoTokenizer.from_pretrained(model_id)
10
 
 
 
 
11
  model = AutoModelForCausalLM.from_pretrained(
12
  model_id,
13
+ torch_dtype=torch.float32,
14
  low_cpu_mem_usage=True
15
  )
16
 
17
  def chat_logic(message):
 
 
18
  input_text = f"<start_of_turn>user\n{message}<end_of_turn>\n<start_of_turn>model\n"
19
 
 
20
  inputs = tokenizer(input_text, return_tensors="pt")
21
 
22
+ # Generate
23
  outputs = model.generate(
24
  **inputs,
25
+ max_new_tokens=250,
26
+ do_sample=True,
27
+ temperature=0.7,
28
  top_k=50,
29
  top_p=0.95
30
  )
31
 
 
32
  response = tokenizer.decode(outputs[0], skip_special_tokens=True)
 
 
33
  clean_response = response.split("model\n")[-1].strip()
 
34
  return clean_response
35
 
 
36
  iface = gr.Interface(fn=chat_logic, inputs="text", outputs="text")
37
  iface.launch()