flamedell commited on
Commit
87606e7
·
verified ·
1 Parent(s): 7d3c859

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +28 -9
app.py CHANGED
@@ -1,28 +1,47 @@
1
  import gradio as gr
 
2
  from transformers import AutoTokenizer, AutoModelForCausalLM
3
 
4
  # Kullanacağımız modelin adı
5
  MODEL_NAME = "gorkemgoknar/gpt2-small-turkish"
6
 
7
- # Tokenizer ve modeli yükle
 
 
 
8
  tokenizer = AutoTokenizer.from_pretrained(MODEL_NAME)
9
- model = AutoModelForCausalLM.from_pretrained(MODEL_NAME)
10
 
11
  def respond(prompt: str) -> str:
12
- # Girdi metnini tokenize et
13
- inputs = tokenizer(prompt, return_tensors="pt")
14
- # Yanıt üret
15
- outputs = model.generate(**inputs, max_new_tokens=150)
16
- # Token’ları düz metne çevir ve döndür
 
 
 
 
 
 
 
 
 
 
 
 
 
 
17
  return tokenizer.decode(outputs[0], skip_special_tokens=True)
18
 
19
- # Gradio arayüzü
20
  demo = gr.Interface(
21
  fn=respond,
22
  inputs=gr.Textbox(lines=4, placeholder="Sorunuzu buraya yazın..."),
23
  outputs="text",
24
  title="AR Güneş Sistemi Asistanı",
25
- description="AR projeniz için Türkçe sohbet asistanı. Bir cümle yazıp Gönder’e tıklayın."
 
26
  )
27
 
28
  if __name__ == "__main__":
 
1
  import gradio as gr
2
+ import torch
3
  from transformers import AutoTokenizer, AutoModelForCausalLM
4
 
5
  # Kullanacağımız modelin adı
6
  MODEL_NAME = "gorkemgoknar/gpt2-small-turkish"
7
 
8
+ # Cihaz ayarı: GPU varsa cuda, yoksa CPU
9
+ device = torch.device("cuda" if torch.cuda.is_available() else "cpu")
10
+
11
+ # Tokenizer ve modeli yükle, cihaza taşı
12
  tokenizer = AutoTokenizer.from_pretrained(MODEL_NAME)
13
+ model = AutoModelForCausalLM.from_pretrained(MODEL_NAME).to(device)
14
 
15
  def respond(prompt: str) -> str:
16
+ """
17
+ Kullanıcıdan gelen prompt'u alır, modele gönderir ve yanıtı döner.
18
+ Üretilen token sayısını düşürerek ve tekrarları engelleyerek hız ve kaliteyi dengeler.
19
+ """
20
+ # Girdi metnini tokenize et ve cihaza gönder
21
+ inputs = tokenizer(prompt, return_tensors="pt").to(device)
22
+
23
+ # Yanıt üretimi
24
+ outputs = model.generate(
25
+ **inputs,
26
+ max_new_tokens=30, # Maksimum 30 token üret
27
+ no_repeat_ngram_size=2, # 2-gram tekrarını engelle
28
+ num_beams=2, # 2 ışınlı beam search
29
+ early_stopping=True, # EOS token'ı geldiğinde dur
30
+ temperature=0.8, # Hafif rastgelelik
31
+ top_p=0.9 # Nucleus sampling
32
+ )
33
+
34
+ # Token'ları metne çevir ve döndür
35
  return tokenizer.decode(outputs[0], skip_special_tokens=True)
36
 
37
+ # Gradio arayüzü tanımı
38
  demo = gr.Interface(
39
  fn=respond,
40
  inputs=gr.Textbox(lines=4, placeholder="Sorunuzu buraya yazın..."),
41
  outputs="text",
42
  title="AR Güneş Sistemi Asistanı",
43
+ description="AR projeniz için Türkçe sohbet asistanı. Bir cümle yazıp Gönder’e tıklayın.",
44
+ allow_flagging="never"
45
  )
46
 
47
  if __name__ == "__main__":