Uunan commited on
Commit
0917586
·
verified ·
1 Parent(s): 8c83a17

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +41 -15
app.py CHANGED
@@ -9,7 +9,9 @@ FILENAME = "qwen2.5-3b-instruct-q4_k_m.gguf"
9
  MODEL_DIR = "model"
10
  MODEL_PATH = os.path.join(MODEL_DIR, FILENAME)
11
 
12
-
 
 
13
  def download_model():
14
  print("🔽 Model indiriliyor...")
15
  os.makedirs(MODEL_DIR, exist_ok=True)
@@ -27,7 +29,6 @@ def download_model():
27
  print("✅ Model indirildi:", dst)
28
 
29
 
30
- # MODEL VAR MI?
31
  if not os.path.exists(MODEL_PATH):
32
  download_model()
33
  else:
@@ -35,41 +36,66 @@ else:
35
 
36
  print("⚙️ Model yükleniyor...")
37
 
 
 
 
38
  llm = Llama(
39
  model_path=MODEL_PATH,
40
  n_ctx=4096,
41
  n_threads=4,
 
 
 
42
  verbose=False
43
  )
44
 
45
  print("🚀 Model başarıyla yüklendi!")
46
 
47
 
48
- # CHAT FONKSİYONU
49
- def chat(message, history):
50
- formatted_history = ""
 
 
 
 
 
 
51
  for user, bot in history:
52
- formatted_history += f"User: {user}\nAssistant: {bot}\n"
 
53
 
54
- prompt = formatted_history + f"User: {message}\nAssistant:"
55
 
56
- response = llm(prompt)
57
- answer = response["choices"][0]["text"]
 
 
 
58
 
59
- return answer
 
 
 
 
 
60
 
61
 
62
- # GRADIO ARAYÜZ
 
 
63
  with gr.Blocks() as app:
64
- gr.Markdown("# 🤖 DeeDe LLM (Qwen2.5-3B)")
65
 
66
  chatbot = gr.Chatbot()
67
  msg = gr.Textbox(label="Mesajını Yaz")
68
 
69
  def respond(message, chat_history):
70
- bot_response = chat(message, chat_history)
71
- chat_history.append((message, bot_response))
72
- return "", chat_history
 
 
73
 
74
  msg.submit(respond, [msg, chatbot], [msg, chatbot])
75
 
 
9
  MODEL_DIR = "model"
10
  MODEL_PATH = os.path.join(MODEL_DIR, FILENAME)
11
 
12
+ # -----------------------
13
+ # MODEL DOWNLOAD
14
+ # -----------------------
15
  def download_model():
16
  print("🔽 Model indiriliyor...")
17
  os.makedirs(MODEL_DIR, exist_ok=True)
 
29
  print("✅ Model indirildi:", dst)
30
 
31
 
 
32
  if not os.path.exists(MODEL_PATH):
33
  download_model()
34
  else:
 
36
 
37
  print("⚙️ Model yükleniyor...")
38
 
39
+ # -----------------------
40
+ # LOAD MODEL
41
+ # -----------------------
42
  llm = Llama(
43
  model_path=MODEL_PATH,
44
  n_ctx=4096,
45
  n_threads=4,
46
+ temperature=0.7,
47
+ repeat_penalty=1.1,
48
+ max_tokens=512,
49
  verbose=False
50
  )
51
 
52
  print("🚀 Model başarıyla yüklendi!")
53
 
54
 
55
+ # -----------------------
56
+ # STREAMING CHAT FUNCTION
57
+ # -----------------------
58
+ def stream_chat(message, history):
59
+ # Qwen Chat Formatı
60
+ system_prompt = "You are a helpful AI assistant."
61
+
62
+ messages = [{"role": "system", "content": system_prompt}]
63
+
64
  for user, bot in history:
65
+ messages.append({"role": "user", "content": user})
66
+ messages.append({"role": "assistant", "content": bot})
67
 
68
+ messages.append({"role": "user", "content": message})
69
 
70
+ # Token Token Out Stream
71
+ output_stream = llm.create_chat_completion(
72
+ messages=messages,
73
+ stream=True
74
+ )
75
 
76
+ partial = ""
77
+ for chunk in output_stream:
78
+ delta = chunk["choices"][0]["delta"]
79
+ if "content" in delta:
80
+ partial += delta["content"]
81
+ yield partial # canlı yazdır
82
 
83
 
84
+ # -----------------------
85
+ # GRADIO UI
86
+ # -----------------------
87
  with gr.Blocks() as app:
88
+ gr.Markdown("# 🤖 DeeDe LLM (Qwen2.5-3B) — **STREAMING ENABLED** 🚀")
89
 
90
  chatbot = gr.Chatbot()
91
  msg = gr.Textbox(label="Mesajını Yaz")
92
 
93
  def respond(message, chat_history):
94
+ stream = stream_chat(message, chat_history)
95
+ bot_message = ""
96
+ for token in stream:
97
+ bot_message = token
98
+ yield "", chat_history + [(message, bot_message)]
99
 
100
  msg.submit(respond, [msg, chatbot], [msg, chatbot])
101