kawkabelaloom commited on
Commit
9d04bc3
·
verified ·
1 Parent(s): 03f7635

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +73 -19
app.py CHANGED
@@ -1,31 +1,85 @@
1
- def chat(message, history):
2
- """دالة الدردشة المعدلة"""
3
- if generator is None:
4
- return "النموذج غير متاح حالياً"
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
5
 
6
- # بناء رسالة بالصيغة الصحيحة (ChatML format)
7
- formatted_message = f"<|im_start|>user\n{message}<|im_end|>\n<|im_start|>assistant\n"
 
 
 
 
 
 
8
 
9
  try:
10
- # توليد الرد
 
 
11
  result = generator(
12
- formatted_message,
13
- max_new_tokens=200,
14
  temperature=0.7,
15
  do_sample=True,
16
- stop_strings=["<|im_end|>"]
17
  )
18
 
19
- # استخراج الرد فقط
20
- response_text = result[0]['generated_text']
21
 
22
- # إزالة prompt الأصلي
23
- if formatted_message in response_text:
24
- response_text = response_text.replace(formatted_message, "")
 
 
25
 
26
- # إزالة أي tags متبقية
27
- response_text = response_text.replace("<|im_end|>", "").strip()
28
 
29
- return response_text
30
  except Exception as e:
31
- return f"حدث خطأ: {str(e)}"
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ import gradio as gr
2
+ from transformers import pipeline
3
+ import torch
4
+
5
+ # تحميل النموذج
6
+ model_name = "kawkabelaloom/astramind"
7
+
8
+ print("🚀 جاري تهيئة النموذج...")
9
+
10
+ try:
11
+ # استخدم pipeline مع إعدادات Qwen
12
+ generator = pipeline(
13
+ "text-generation",
14
+ model=model_name,
15
+ tokenizer=model_name,
16
+ device=-1, # CPU
17
+ torch_dtype=torch.float32,
18
+ model_kwargs={
19
+ "trust_remote_code": True,
20
+ "low_cpu_mem_usage": True
21
+ }
22
+ )
23
+ print("✅ النموذج جاهز!")
24
 
25
+ except Exception as e:
26
+ print(f"❌ خطأ: {e}")
27
+ generator = None
28
+
29
+ def simple_chat(message):
30
+ """دردشة مبسطة بدون chat format"""
31
+ if not generator:
32
+ return "النموذج غير متاح"
33
 
34
  try:
35
+ # رسالة بسيطة بدون تنسيق معقد
36
+ prompt = f"المستخدم: {message}\nالمساعد:"
37
+
38
  result = generator(
39
+ prompt,
40
+ max_new_tokens=150,
41
  temperature=0.7,
42
  do_sample=True,
43
+ repetition_penalty=1.1
44
  )
45
 
46
+ # استخراج الرد
47
+ full_text = result[0]['generated_text']
48
 
49
+ # أخذ جزء المساعد فقط
50
+ if "المساعد:" in full_text:
51
+ response = full_text.split("المساعد:")[-1].strip()
52
+ else:
53
+ response = full_text.replace(prompt, "").strip()
54
 
55
+ return response
 
56
 
 
57
  except Exception as e:
58
+ return f"عذراً، حدث خطأ: {str(e)}"
59
+
60
+ # إنشاء واجهة بسيطة
61
+ interface = gr.Interface(
62
+ fn=simple_chat,
63
+ inputs=gr.Textbox(
64
+ label="اكتب رسالتك",
65
+ placeholder="السلام عليكم...",
66
+ lines=3
67
+ ),
68
+ outputs=gr.Textbox(
69
+ label="رد المساعد",
70
+ lines=5
71
+ ),
72
+ title="🤖 Astramind - مساعد عربي ذكي",
73
+ description="اسأل أي سؤال وسأحاول الإجابة عليه باللغة العربية",
74
+ examples=[
75
+ ["مرحباً، من أنت؟"],
76
+ ["كيف يمكنك مساعدتي؟"],
77
+ ["أخبرني نكتة عربية"],
78
+ ["ما هي عاصمة مصر؟"]
79
+ ],
80
+ theme="soft"
81
+ )
82
+
83
+ # تشغيل
84
+ if __name__ == "__main__":
85
+ interface.launch(debug=True, share=False)