2ba commited on
Commit
14e2188
·
verified ·
1 Parent(s): 31c6a1a

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +26 -21
app.py CHANGED
@@ -28,31 +28,36 @@ def load_llm():
28
  SYSTEM_PROMPT = "به فارسی، روشن و کوتاه پاسخ بده (حداکثر ۲ جمله)."
29
 
30
  def respond(message, history):
31
- # message می‌تواند dict یا str باشد
32
  user_text = message.get("content", "") if isinstance(message, dict) else str(message or "")
33
 
34
- # history می‌تواند tuples یا messages باشد
35
- msgs = [{"role": "system", "content": SYSTEM_PROMPT}]
36
- if history and isinstance(history[0], dict) and "role" in history[0]:
37
- msgs.extend(history)
38
- else:
39
- for user, assistant in (history or []):
40
- msgs.append({"role": "user", "content": user})
41
- msgs.append({"role": "assistant", "content": assistant})
42
- msgs.append({"role": "user", "content": user_text})
43
 
44
  llm = load_llm()
45
- print(">> gen start (non-stream)")
46
- out = llm.create_chat_completion(
47
- messages=msgs,
48
- max_tokens=64,
49
- temperature=0.4,
50
- top_p=0.9,
51
- stream=False,
52
- )
53
- text = out["choices"][0]["message"]["content"]
54
- print(">> gen done (non-stream)")
55
- return text
 
 
 
 
 
 
 
 
 
56
 
57
 
58
  demo = gr.ChatInterface(
 
28
  SYSTEM_PROMPT = "به فارسی، روشن و کوتاه پاسخ بده (حداکثر ۲ جمله)."
29
 
30
  def respond(message, history):
31
+ # پیام فعلی را به متن ساده تبدیل کن (messages یا string)
32
  user_text = message.get("content", "") if isinstance(message, dict) else str(message or "")
33
 
34
+ # تاریخچه را فعلاً نادیده می‌گیریم تا پرامپت خیلی کوتاه بماند
35
+ msgs = [
36
+ {"role": "system", "content": SYSTEM_PROMPT},
37
+ {"role": "user", "content": user_text},
38
+ ]
 
 
 
 
39
 
40
  llm = load_llm()
41
+ print(">> gen start (stream minimal)")
42
+ partial = ""
43
+ try:
44
+ for chunk in llm.create_chat_completion(
45
+ messages=msgs,
46
+ max_tokens=48, # کوتاه برای سرعت
47
+ temperature=0.3,
48
+ top_p=0.95,
49
+ stop=["<|im_end|>", "</s>"], # مطابق تمپلیت مدل
50
+ stream=True,
51
+ ):
52
+ delta = chunk["choices"][0]["delta"].get("content", "")
53
+ if delta:
54
+ partial += delta
55
+ yield partial
56
+ print(">> gen done (stream minimal)")
57
+ except Exception as e:
58
+ print(">> exception:", repr(e))
59
+ yield "یه خطای داخلی رخ داد؛ لطفاً دوباره تلاش کن."
60
+
61
 
62
 
63
  demo = gr.ChatInterface(