thomson99 commited on
Commit
a36d39f
·
verified ·
1 Parent(s): 179dda6

Upload 4 files

Browse files
Files changed (2) hide show
  1. app.py +111 -168
  2. requirements.txt +5 -5
app.py CHANGED
@@ -5,202 +5,145 @@ import random
5
  import arabic_reshaper
6
  from bidi.algorithm import get_display
7
 
8
- # تهيئة النموذج - سيتم تحميله من Hugging Face
9
  try:
10
- model_name = "aubmindlab/aragpt2-medium" # نموذج GPT-2 المدرب على اللغة العربية
11
  tokenizer = AutoTokenizer.from_pretrained(model_name)
12
  model = AutoModelForCausalLM.from_pretrained(model_name)
13
  except Exception as e:
14
  print(f"Error loading model: {e}")
15
- # استخدام نموذج بسيط في حالة الفشل
16
  model = None
17
  tokenizer = None
18
 
19
- def format_arabic_text(text):
20
  """
21
- تنسيق النص العربي بشكل صحيح
22
  """
23
- # نحن لا نحتاج إلى تنسيق النص لأن معظم المتصفحات وواجهات المستخدم
24
- # تتعامل مع النص العربي بشكل صحيح تلقائياً
25
- return text
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
26
 
27
- def generate_article(topic, article_type, length, style):
28
  """
29
- توليد مقال مترابط ومتماسك
30
  """
31
- try:
32
- # قوالب للربط بين الفقرات
33
- transitions = [
34
- "وفي هذا السياق،",
35
- "ومن الجدير بالذكر أن",
36
- "إضافة إلى ذلك،",
37
- "وعلاوة على ما سبق،",
38
- "ومن منظور آخر،",
39
- "وفي ضوء ذلك،"
40
- ]
41
-
42
- # إنشاء المقدمة
43
- introduction = f"""يُعد {topic} من أهم المجالات التي تشغل العالم في العصر الحديث، حيث يشهد تطوراً متسارعاً
44
- وتأثيراً متزايداً على مختلف جوانب الحياة. وتكمن أهمية {topic} في قدرته على إحداث تحول جذري في طريقة تعاملنا
45
- مع التحديات المعاصرة وحل المشكلات المعقدة. {random.choice(transitions)} يمثل {topic} نقطة تحول محورية
46
- في تاريخ التطور التكنولوجي والعلمي."""
47
-
48
- # إنشاء صلب الموضوع
49
- if article_type == "أكاديمي":
50
- body = f"""
51
- {random.choice(transitions)} تتعدد الجوانب النظرية والتطبيقية لـ{topic}، حيث يمكن تحليله من خلال ثلاثة محاور
52
- رئيسية. يتمثل المحور الأول في الأسس النظرية والمفاهيم الأساسية، والتي تشكل القاعدة المعرفية الضرورية لفهم
53
- وتطوير هذا المجال. {random.choice(transitions)} يتناول المحور الثاني التطبيقات العملية والتجارب الحديثة،
54
- والتي تظهر القدرات الهائلة والإمكانات الواعدة لهذه التقنية في مختلف القطاعات.
55
 
56
- {random.choice(transitions)} يبرز المحور الثالث المتمثل في التحديات والفرص المستقبلية، حيث يواجه {topic}
57
- مجموعة من التحديات التقنية والأخلاقية والاجتماعية. وتشير الدراسات الحديثة إلى أن التطور المتسارع في هذا
58
- المجال يفتح آفاقاً جديدة للابتكار والتطوير، مع ضرورة الموازنة بين التقدم التقني والاعتبارات الإنسانية والأخلاقية.
59
 
60
- {random.choice(transitions)} تتجلى أهمية {topic} في تأثيره على القطاعات الحيوية مثل الصحة والتعليم والصناعة،
61
- حيث يساهم في تحسين الكفاءة وتقليل التكاليف وتطوير حلول مبتكرة للمشكلات المعقدة. وقد أظهرت التجارب العملية
62
- قدرة {topic} على إحداث نقلة نوعية في أساليب العمل وطرق معالجة البيانات واتخاذ القرارات."""
63
- else:
64
- body = f"""
65
- {random.choice(transitions)} يشهد {topic} تطوراً متسارعاً في السنوات الأخيرة، مدفوعاً بالتقدم التكنولوجي
66
- والاحتياجات المتزايدة للمجتمع المعاصر. وقد أدى هذا التطور إلى ظهور تطبيقات متنوعة تمس مختلف جوانب حياتنا
67
- اليومية، من الهواتف الذكية إلى أنظمة النقل الذكية والرعاية الصحية المتقدمة.
68
 
69
- {random.choice(transitions)} يمكن ملاحظة تأثير {topic} في العديد من المجالات الحيوية، حيث يساهم في تحسين
70
- جودة الحياة وتطوير الخدمات وزيادة الإنتاجية. وتشير التجارب العملية إلى أن استخدام {topic} قد أدى إلى تحسين
71
- كفاءة العمليات وتقليل الأخطاء وتوفير الوقت والجهد.
72
-
73
- {random.choice(transitions)} يواجه تطوير واستخدام {topic} مجموعة من التحديات التي تتطلب تضافر الجهود
74
- لمواجهتها، مثل الحاجة إلى تطوير البنية التحتية المناسبة وتدريب الكوادر المتخصصة وضمان الأمن والخصوصية."""
75
-
76
- # إنشاء الخاتمة
77
- conclusion = f"""وختاماً، يمكن القول إن {topic} يمثل ثورة حقيقية في عالم التكنولوجيا والعلوم، مع ما يحمله
78
- من إمكانات واعدة وتحديات جوهرية. ومن هذا المنطلق، تبرز أهمية تكثيف الجهود البحثية وتعزيز التعاون الدولي
79
- في هذا المجال، مع التركيز على تطوير حلول مبتكرة تراعي الاحتياجات الإنسانية والاعتبارات الأخلاقية. وفي ظل
80
- التطورات المتسارعة، يبدو جلياً أن مستقبل {topic} سيكون له تأثير عميق على مستقبل البشرية وتطورها."""
81
-
82
- # تجميع المقال
83
- article = f"""{introduction}
84
-
85
- {body}
86
-
87
- {conclusion}"""
88
-
89
- return article
90
-
91
- except Exception as e:
92
- return f"حدث خطأ أثناء إنشاء المقال: {str(e)}"
93
-
94
- def generate_simple_article(topic, article_type, length, style):
95
- """
96
- توليد مقال بسيط في حالة عدم توفر النموذج الرئيسي
97
- """
98
- # قوالب للمقدمات
99
- intros = [
100
- f"يعد موضوع {topic} من المواضيع الهامة التي تستحق الدراسة والبحث.",
101
- f"في ظل التطورات المتسارعة، يبرز موضوع {topic} كقضية محورية.",
102
- f"يثير {topic} اهتماماً متزايداً في الآونة الأخيرة."
103
- ]
104
-
105
- # قوالب للخاتمة
106
- conclusions = [
107
- f"وختاماً، يمكننا القول أن {topic} يستحق المزيد من الاهتمام والدراسة.",
108
- f"في النهاية، نؤكد على أهمية {topic} في حياتنا المعاصرة.",
109
- "وبناءً على ما سبق، نوصي بمزيد من البحث والدراسة في هذا المجال."
110
- ]
111
-
112
- # إنشاء المقال
113
- article = f"""
114
- {random.choice(intros)}
115
 
116
- إن دراسة {topic} تكتسب أهمية خاصة في وقتنا الحاضر، حيث تتعدد جوانبه وتتشعب تأثيراته.
117
- ومن الجدير بالذكر أن هناك العديد من العوامل التي تؤثر في هذا الموضوع.
118
-
119
- يمكننا تحليل {topic} من عدة جوانب:
120
- أولاً: الجانب النظري والمفاهيمي
121
- ثانياً: التطبيقات العملية
122
- ثالثاً: التحديات والفرص المستقبلية
123
 
124
- {random.choice(conclusions)}
125
- """
 
126
 
127
- return article
 
 
128
 
129
- def improve_style(text):
130
- """
131
- تحسين أسلوب النص وتقديم اقتراحات
132
- """
133
- suggestions = [
134
- "✍️ حاول استخدام جمل أقصر وأكثر وضوحاً",
135
- "🎯 تجنب تكرار الكلمات واستخدم مرادفات",
136
- "🔄 استخدم روابط منطقية بين الفقرات",
137
- "💡 أضف أمثلة توضيحية لتعزيز الفكرة",
138
- "📝 استخدم علامات الترقيم بشكل صحيح",
139
- "🎨 نوع في الأساليب اللغوية",
140
- "📚 استشهد بمصادر موثوقة"
141
- ]
142
 
143
- return "\n".join(suggestions)
 
 
 
144
 
145
  # إنشاء واجهة المستخدم
146
  with gr.Blocks(title="مساعد كتابة المقالات العربية") as demo:
147
  gr.Markdown("# 📝 مساعد كتابة المقالات العربية")
148
  gr.Markdown("### منصة ذكية لإنشاء وتحسين المقالات العربية")
149
 
150
- with gr.Tab("إنشاء مقال جديد"):
151
- with gr.Row():
152
- with gr.Column():
153
- topic_input = gr.Textbox(
154
- label="موضوع المقال",
155
- placeholder="أدخل موضوع المقال هنا..."
156
- )
157
- article_type = gr.Dropdown(
158
- choices=["أكاديمي", "صحفي", "مدونة", "تقني"],
159
- label="نوع المقال",
160
- value="أكاديمي"
161
- )
162
- length = gr.Radio(
163
- choices=["قصير", "متوسط", "طويل"],
164
- label="طول المقال",
165
- value="متوسط"
166
- )
167
- style = gr.Dropdown(
168
- choices=["رسمي", "أدبي", "تقني", "صحفي"],
169
- label="الأسلوب",
170
- value="رسمي"
171
- )
172
-
173
- generate_btn = gr.Button("إنشاء المقال", variant="primary")
174
- article_output = gr.Textbox(
175
- label="المقال المُنشأ",
176
- lines=10,
177
- placeholder="سيظهر المقال هنا..."
178
  )
 
 
179
 
180
- with gr.Tab("تحسين الأسلوب"):
181
- text_input = gr.Textbox(
182
- label="النص المراد تحسينه",
183
- lines=5,
184
- placeholder="أدخل النص هنا..."
185
- )
186
- improve_btn = gr.Button("تحسين الأسلوب")
187
- suggestions_output = gr.Textbox(
188
- label="الاقتراحات",
189
- lines=7
190
  )
191
-
192
- # ربط الأزرار بالوظائف
193
- generate_btn.click(
194
- generate_article,
195
- inputs=[topic_input, article_type, length, style],
196
- outputs=article_output
197
- )
198
-
199
- improve_btn.click(
200
- improve_style,
201
- inputs=[text_input],
202
- outputs=suggestions_output
203
- )
204
 
205
- if __name__ == "__main__":
206
- demo.launch()
 
5
  import arabic_reshaper
6
  from bidi.algorithm import get_display
7
 
8
+ # تهيئة النموذج
9
  try:
10
+ model_name = "aubmindlab/aragpt2-medium"
11
  tokenizer = AutoTokenizer.from_pretrained(model_name)
12
  model = AutoModelForCausalLM.from_pretrained(model_name)
13
  except Exception as e:
14
  print(f"Error loading model: {e}")
 
15
  model = None
16
  tokenizer = None
17
 
18
+ def generate_professional_article(topic, article_type="عام"):
19
  """
20
+ توليد مقال احترافي كامل مع جميع العناصر المطلوبة
21
  """
22
+ # قوالب للربط بين الفقرات
23
+ transitions = [
24
+ "وفي هذا السياق،",
25
+ "ومن الجدير بالذكر أن",
26
+ "إضافة إلى ذلك،",
27
+ "وعلاوة على ما سبق،",
28
+ "ومن منظور آخر،",
29
+ "وفي ضوء ذلك،"
30
+ ]
31
+
32
+ article = {
33
+ "title": f"{topic}",
34
+ "introduction": f"""في ظل التطورات المتسارعة التي يشهدها العالم اليوم، يبرز {topic} كأحد أهم المواضيع
35
+ التي تستحوذ على اهتمام المختصين والباحثين. ويمثل هذا المجال نقطة تحول محورية في مسيرة التقدم العلمي
36
+ والتكنولوجي، لما له من تأثير عميق على مختلف جوانب الحياة المعاصرة.""",
37
+
38
+ "main_subtitle": "الأبعاد الرئيسية والتطورات الحديثة",
39
+ "introductory_paragraph": f"""يشهد مجال {topic} تطوراً متسارعاً في الآونة الأخيرة، مدفوعاً بالتقدم
40
+ التكنولوجي والاحتياجات المتزايدة للمجتمع المعاصر. {random.choice(transitions)} أصبح من الضروري فهم
41
+ الأبعاد المختلفة لهذا المجال وتأثيراته المتعددة.""",
42
+
43
+ "subtitles": [
44
+ {
45
+ "title": "الأسس النظرية والمفاهيم الأساسية",
46
+ "content": f"""يستند {topic} إلى مجموعة من المفاهيم والنظريات الأساسية التي تشكل إطاره المعرفي.
47
+ {random.choice(transitions)} تتضمن هذه الأسس مجموعة من المبادئ والقواعد التي تحكم تطوره وتطبيقاته.
48
+ وتعتبر هذه المفاهيم حجر الأساس في فهم وتطوير الحلول والتطبيقات المختلفة في هذا المجال."""
49
+ },
50
+ {
51
+ "title": "التطبيقات العملية والتجارب الحديثة",
52
+ "content": f"""تتعدد التطبيقات العملية لـ{topic} في مختلف المجالات، من الصناعة إلى الطب والتعليم.
53
+ {random.choice(transitions)} أظهرت التجارب الحديثة قدرة هذا المجال على إحداث تحول جذري في أساليب العمل
54
+ وطرق معالجة المشكلات. وقد ساهمت هذه التطبيقات في تحسين الكفاءة وتقليل التكاليف وتطوير حلول مبتكرة."""
55
+ },
56
+ {
57
+ "title": "التحديات والفرص المستقبلية",
58
+ "content": f"""يواجه {topic} مجموعة من التحديات التي تتطلب حلولاً مبتكرة ورؤية مستقبلية واضحة.
59
+ {random.choice(transitions)} تتمثل أبرز هذه التحديات في الجوانب التقنية والأخلاقية والاجتماعية. ومع ذلك،
60
+ تفتح هذه التحديات آفاقاً جديدة للابتكار والتطوير، مما يخلق فرصاً واعدة للمستقبل."""
61
+ }
62
+ ],
63
+
64
+ "faq": [
65
+ {
66
+ "question": f"ما هي أهم مميزات {topic}؟",
67
+ "answer": f"""يتميز {topic} بمجموعة من الخصائص الفريدة، أهمها قدرته على التكيف مع المتغيرات
68
+ المختلفة، وإمكانية تطبيقه في مجالات متعددة، إضافة إلى فعاليته في حل المشكلات المعقدة."""
69
+ },
70
+ {
71
+ "question": f"كيف يمكن الاستفادة من {topic} في الحياة العملية؟",
72
+ "answer": f"""يمكن الاستفادة من {topic} في العديد من المجالات العملية، مثل تحسين الإنتاجية،
73
+ وتطوير الخدمات، وابتكار حلول جديدة للمشكلات القائمة. كما يمكن توظيفه في مجالات التعليم والصحة والأعمال."""
74
+ },
75
+ {
76
+ "question": f"ما هي التوقعات المستقبلية لتطور {topic}؟",
77
+ "answer": f"""تشير التوقعات المستقبلية إلى استمرار نمو وتطور {topic} بشكل متسارع، مع ظهور
78
+ تطبيقات جديدة وابتكارات مهمة. ومن المتوقع أن يلعب دوراً محورياً في تشكيل مستقبل العديد من القطاعات."""
79
+ }
80
+ ],
81
+
82
+ "conclusion": f"""في الختام، يمثل {topic} مجالاً حيوياً يتسم بالديناميكية والتطور المستمر. وقد أثبتت
83
+ التجارب والدراسات أهميته المتزايدة في عصرنا الحالي. ومع استمرار التطور التقني والعلمي، نتوقع أن يشهد هذا
84
+ المجال المزيد من الابتكارات والتطبيقات التي ستساهم في تحسين حياة الإنسان وتطوير المجتمعات."""
85
+ }
86
+
87
+ return article
88
 
89
+ def format_article(article):
90
  """
91
+ تنسيق المقال بشكل منظم ومرتب
92
  """
93
+ formatted_text = f"""# {article['title']}
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
94
 
95
+ ## مقدمة
96
+ {article['introduction']}
 
97
 
98
+ ## {article['main_subtitle']}
99
+ {article['introductory_paragraph']}
 
 
 
 
 
 
100
 
101
+ """
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
102
 
103
+ for subtitle in article['subtitles']:
104
+ formatted_text += f"""### {subtitle['title']}
105
+ {subtitle['content']}
106
+
107
+ """
 
 
108
 
109
+ formatted_text += """## الأسئلة الشائعة
110
+
111
+ """
112
 
113
+ for qa in article['faq']:
114
+ formatted_text += f"""### {qa['question']}
115
+ {qa['answer']}
116
 
117
+ """
 
 
 
 
 
 
 
 
 
 
 
 
118
 
119
+ formatted_text += f"""## الخاتمة
120
+ {article['conclusion']}"""
121
+
122
+ return formatted_text
123
 
124
  # إنشاء واجهة المستخدم
125
  with gr.Blocks(title="مساعد كتابة المقالات العربية") as demo:
126
  gr.Markdown("# 📝 مساعد كتابة المقالات العربية")
127
  gr.Markdown("### منصة ذكية لإنشاء وتحسين المقالات العربية")
128
 
129
+ with gr.Tab("إنشاء مقال احترافي"):
130
+ topic_input = gr.Textbox(label="موضوع المقال")
131
+ article_type = gr.Dropdown(
132
+ choices=["عام", "أكاديمي", "صحفي", "تقني"],
133
+ label="نوع المقال",
134
+ value="عام"
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
135
  )
136
+ generate_btn = gr.Button("إنشاء المقال")
137
+ output = gr.Textbox(label="المقال المُنشأ", lines=20)
138
 
139
+ def generate_and_format(topic, article_type):
140
+ article = generate_professional_article(topic, article_type)
141
+ return format_article(article)
142
+
143
+ generate_btn.click(
144
+ generate_and_format,
145
+ inputs=[topic_input, article_type],
146
+ outputs=output
 
 
147
  )
 
 
 
 
 
 
 
 
 
 
 
 
 
148
 
149
+ demo.launch()
 
requirements.txt CHANGED
@@ -1,7 +1,7 @@
1
- transformers==4.35.2
2
- torch==2.1.1
3
- gradio==3.50.2
4
  python-dotenv==1.0.0
5
  sentencepiece==0.1.99
6
- arabic-reshaper==3.0.0
7
- python-bidi==0.4.2
 
1
+ transformers>=4.30.0
2
+ torch>=2.0.0
3
+ gradio>=3.50.2
4
  python-dotenv==1.0.0
5
  sentencepiece==0.1.99
6
+ arabic-reshaper>=3.0.0
7
+ python-bidi>=0.4.2