muaadh019 commited on
Commit
2381dd6
·
verified ·
1 Parent(s): 6d28e1c

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +11 -30
app.py CHANGED
@@ -2,14 +2,10 @@ import gradio as gr
2
  import os
3
  from groq import Groq
4
 
5
- # ======================
6
- # إعداد العميل
7
- # ======================
8
  client = Groq(api_key=os.environ["GROQ_API_KEY"])
9
 
10
  SYSTEM_PROMPT = """أنت مساعد متخصص في الأمن السيبراني باللغة العربية.
11
  اسمك "درع" وأنت خبير في:
12
-
13
  - تحليل التهديدات السيبرانية
14
  - شرح الثغرات الأمنية وكيفية الحماية منها
15
  - مفاهيم اختبار الاختراق الأخلاقي
@@ -25,17 +21,12 @@ SYSTEM_PROMPT = """أنت مساعد متخصص في الأمن السيبران
25
  - قدم معلومات تعليمية وأخلاقية فقط
26
  - لا تساعد في أي نشاط غير قانوني أو ضار
27
  - عند شرح الثغرات، ركز على الحماية وليس الاستغلال
28
- - استخدم أمثلة عملية وواضحة
29
- - قسّم إجاباتك بشكل منظم عند الحاجة"""
30
 
31
- # ======================
32
- # دالة المحادثة
33
- # ======================
34
  def chat(message, history):
35
  if not message.strip():
36
  return "", history
37
 
38
- # تحويل التاريخ لصيغة Groq
39
  messages = [{"role": "system", "content": SYSTEM_PROMPT}]
40
  for human, assistant in history:
41
  messages.append({"role": "user", "content": human})
@@ -53,13 +44,9 @@ def chat(message, history):
53
  return "", history
54
 
55
  except Exception as e:
56
- error_msg = f"❌ خطأ: {str(e)}"
57
- history.append((message, error_msg))
58
  return "", history
59
 
60
- # ======================
61
- # الواجهة
62
- # ======================
63
  css = """
64
  .gradio-container {
65
  font-family: 'Tajawal', sans-serif;
@@ -85,17 +72,8 @@ css = """
85
  footer { display: none !important; }
86
  """
87
 
88
- with gr.Blocks(
89
- title="درع - المساعد الأمني العربي",
90
- css=css,
91
- theme=gr.themes.Soft(
92
- primary_hue="green",
93
- secondary_hue="blue",
94
- neutral_hue="slate"
95
- )
96
- ) as demo:
97
 
98
- # Header
99
  gr.HTML("""
100
  <link href="https://fonts.googleapis.com/css2?family=Tajawal:wght@400;700&display=swap" rel="stylesheet">
101
  <div class="main-header">
@@ -110,12 +88,10 @@ with gr.Blocks(
110
  """)
111
 
112
  with gr.Row():
113
- # المحادثة
114
  with gr.Column(scale=3):
115
  chatbot = gr.Chatbot(
116
  label="",
117
  height=500,
118
- bubble_full_width=False,
119
  show_label=False,
120
  rtl=True,
121
  avatar_images=(
@@ -136,7 +112,6 @@ with gr.Blocks(
136
 
137
  clear_btn = gr.Button("🗑️ محادثة جديدة", variant="secondary")
138
 
139
- # الشريط الجانبي
140
  with gr.Column(scale=1):
141
  gr.Markdown("### 💡 أسئلة مقترحة")
142
  gr.HTML("""
@@ -161,7 +136,6 @@ with gr.Blocks(
161
  </div>
162
  """)
163
 
164
- # الأحداث
165
  send_btn.click(
166
  fn=chat,
167
  inputs=[msg_input, chatbot],
@@ -180,4 +154,11 @@ with gr.Blocks(
180
  )
181
 
182
  if __name__ == "__main__":
183
- demo.launch()
 
 
 
 
 
 
 
 
2
  import os
3
  from groq import Groq
4
 
 
 
 
5
  client = Groq(api_key=os.environ["GROQ_API_KEY"])
6
 
7
  SYSTEM_PROMPT = """أنت مساعد متخصص في الأمن السيبراني باللغة العربية.
8
  اسمك "درع" وأنت خبير في:
 
9
  - تحليل التهديدات السيبرانية
10
  - شرح الثغرات الأمنية وكيفية الحماية منها
11
  - مفاهيم اختبار الاختراق الأخلاقي
 
21
  - قدم معلومات تعليمية وأخلاقية فقط
22
  - لا تساعد في أي نشاط غير قانوني أو ضار
23
  - عند شرح الثغرات، ركز على الحماية وليس الاستغلال
24
+ - استخدم أمثلة عملية وواضحة"""
 
25
 
 
 
 
26
  def chat(message, history):
27
  if not message.strip():
28
  return "", history
29
 
 
30
  messages = [{"role": "system", "content": SYSTEM_PROMPT}]
31
  for human, assistant in history:
32
  messages.append({"role": "user", "content": human})
 
44
  return "", history
45
 
46
  except Exception as e:
47
+ history.append((message, f"❌ خطأ: {str(e)}"))
 
48
  return "", history
49
 
 
 
 
50
  css = """
51
  .gradio-container {
52
  font-family: 'Tajawal', sans-serif;
 
72
  footer { display: none !important; }
73
  """
74
 
75
+ with gr.Blocks(title="درع - المساعد الأمني العربي") as demo:
 
 
 
 
 
 
 
 
76
 
 
77
  gr.HTML("""
78
  <link href="https://fonts.googleapis.com/css2?family=Tajawal:wght@400;700&display=swap" rel="stylesheet">
79
  <div class="main-header">
 
88
  """)
89
 
90
  with gr.Row():
 
91
  with gr.Column(scale=3):
92
  chatbot = gr.Chatbot(
93
  label="",
94
  height=500,
 
95
  show_label=False,
96
  rtl=True,
97
  avatar_images=(
 
112
 
113
  clear_btn = gr.Button("🗑️ محادثة جديدة", variant="secondary")
114
 
 
115
  with gr.Column(scale=1):
116
  gr.Markdown("### 💡 أسئلة مقترحة")
117
  gr.HTML("""
 
136
  </div>
137
  """)
138
 
 
139
  send_btn.click(
140
  fn=chat,
141
  inputs=[msg_input, chatbot],
 
154
  )
155
 
156
  if __name__ == "__main__":
157
+ demo.launch(
158
+ css=css,
159
+ theme=gr.themes.Soft(
160
+ primary_hue="green",
161
+ secondary_hue="blue",
162
+ neutral_hue="slate"
163
+ )
164
+ )