thomson99 commited on
Commit
93eb775
·
verified ·
1 Parent(s): a36d39f

Upload app.py

Browse files
Files changed (1) hide show
  1. app.py +113 -40
app.py CHANGED
@@ -4,6 +4,8 @@ import torch
4
  import random
5
  import arabic_reshaper
6
  from bidi.algorithm import get_display
 
 
7
 
8
  # تهيئة النموذج
9
  try:
@@ -15,75 +17,135 @@ except Exception as 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):
@@ -119,6 +181,16 @@ def format_article(article):
119
  formatted_text += f"""## الخاتمة
120
  {article['conclusion']}"""
121
 
 
 
 
 
 
 
 
 
 
 
122
  return formatted_text
123
 
124
  # إنشاء واجهة المستخدم
@@ -134,11 +206,12 @@ with gr.Blocks(title="مساعد كتابة المقالات العربية") as
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,
 
4
  import random
5
  import arabic_reshaper
6
  from bidi.algorithm import get_display
7
+ import re
8
+ from collections import Counter
9
 
10
  # تهيئة النموذج
11
  try:
 
17
  model = None
18
  tokenizer = None
19
 
20
+ def count_words(text):
21
+ """
22
+ حساب عدد الكلمات في النص
23
+ """
24
+ words = re.findall(r'\w+', text)
25
+ return len(words)
26
+
27
+ def check_title_length(title):
28
+ """
29
+ التحقق من طول العنوان (60-70 حرفاً)
30
+ """
31
+ length = len(title)
32
+ if length < 60:
33
+ return title + " " + "".join(["ـ" for _ in range(60 - length)])
34
+ elif length > 70:
35
+ return title[:70]
36
+ return title
37
+
38
+ def get_keywords(text, min_length=4):
39
+ """
40
+ استخراج الكلمات المفتاحية من النص
41
+ """
42
+ words = re.findall(r'\w+', text)
43
+ word_freq = Counter(word for word in words if len(word) >= min_length)
44
+ return [word for word, freq in word_freq.most_common(10)]
45
+
46
  def generate_professional_article(topic, article_type="عام"):
47
  """
48
  توليد مقال احترافي كامل مع جميع العناصر المطلوبة
49
  """
 
50
  transitions = [
51
  "وفي هذا السياق،",
52
  "ومن الجدير بالذكر أن",
53
  "إضافة إلى ذلك،",
54
  "وعلاوة على ما سبق،",
55
  "ومن منظور آخر،",
56
+ "وفي ضوء ذلك،",
57
+ "وبناءً على ما تقدم،",
58
+ "ومن هذا المنطلق،",
59
+ "وفي هذا الإطار،",
60
+ "وتجدر الإشارة إلى أن"
61
  ]
62
 
63
+ # توليد عنوان بطول مناسب
64
+ title = check_title_length(f"دراسة شاملة وتحليل معمق: {topic} وتأثيره على مستقبل التطور التكنولوجي والمجتمعي")
65
+
66
+ # توليد مقال طويل (أكثر من 1000 كلمة)
67
  article = {
68
+ "title": title,
69
+ "introduction": f"""في عصر يتسم بالتطور التكنولوجي المتسارع والتحولات الرقمية العميقة، يبرز {topic} كأحد أهم
70
+ المجالات التي تستحوذ على اهتمام الباحثين والمختصين على المستويين المحلي والعالمي. ويمثل هذا المجال نقطة تحول
71
+ محورية في مسيرة التقدم العلمي والتكنولوجي، لما له من تأثيرات عميقة وشاملة على مختلف جوانب الحياة المعاصرة.
72
+ {random.choice(transitions)} يشهد هذا المجال تطورات متسارعة ومتلاحقة تفتح آفاقاً جديدة للابتكار والإبداع.""",
73
+
74
+ "main_subtitle": "الأبعاد الرئيسية والتطورات الحديثة في مجال " + topic,
75
+ "introductory_paragraph": f"""يشهد مجال {topic} تطوراً غير مسبوق في الآونة الأخيرة، مدفوعاً بالتقدم
76
+ التكنولوجي المتسارع والاحتياجات المتزايدة للمجتمع المعاصر. {random.choice(transitions)} أصبح من الضروري
77
+ فهم الأبعاد المختلفة لهذا المجال وتأثيراته المتعددة على القطاعات الحيوية في المجتمع. ويتطلب هذا الفهم
78
+ دراسة معمقة للجوانب النظرية والتطبيقية، مع الأخذ في الاعتبار التحديات والفرص المستقبلية.""",
79
+
80
  "subtitles": [
81
  {
82
+ "title": "الأسس النظرية والمفاهيم الأساسية: نظرة تحليلية معمقة",
83
+ "content": f"""يستند {topic} إلى مجموعة متكاملة من المفاهيم والنظريات الأساسية التي تشكل إطاره
84
+ المعرفي والمنهجي. {random.choice(transitions)} تتضمن هذه الأسس مجموعة من المبادئ والقواعد التي تحكم تطوره
85
+ وتطبيقاته في مختلف المجالات. وتعتبر هذه المفاهيم حجر الأساس في فهم وتطوير الحلول والتطبيقات المختلفة في
86
+ هذا المجال الحيوي.
87
+
88
+ {random.choice(transitions)} تتميز هذه الأسس النظرية بالتكامل والترابط فيما بينها، مما يسهم في تكوين إطار
89
+ معرفي متين يمكن الاعتماد عليه في تطوير التطبيقات العملية وابتكار الحلول المناسبة للتحديات المختلفة. وقد
90
+ أثبتت الدراسات والأبحاث العلمية أهمية هذه الأسس في توجيه مسار التطور التقني والمعرفي في هذا المجال."""
91
  },
92
  {
93
+ "title": "التطبيقات العملية والتجارب الحديثة: نماذج وحالات دراسية",
94
+ "content": f"""تتعدد التطبيقات العملية لـ{topic} في مختلف القطاعات الحيوية، من الصناعة إلى الطب
95
+ والتعليم والخدمات المالية. {random.choice(transitions)} أظهرت التجارب الحديثة قدرة هذا المجال على إحداث
96
+ تحول جذري في أساليب العمل وطرق معالجة المشكلات المعقدة. وقد ساهمت هذه التطبيقات في تحسين الكفاءة وتقليل
97
+ التكاليف وتطوير حلول مبتكرة للتحديات المعاصرة.
98
+
99
+ {random.choice(transitions)} تشير الدراسات الميدانية والتجارب العملية إلى نجاح العديد من المؤسسات
100
+ والشركات في توظيف {topic} لتحقيق نتائج ملموسة في مجالات متنوعة. وقد شملت هذه النجاحات تحسين جودة
101
+ المنتجات والخدمات، وتطوير آليات اتخاذ القرار، وتعزيز القدرة التنافسية في السوق العالمية."""
102
  },
103
  {
104
+ "title": "التحديات والفرص المستقبلية: رؤية استشرافية",
105
+ "content": f"""يواجه مجال {topic} مجموعة من التحديات التي تتطلب حلولاً مبتكرة ورؤية مستقبلية
106
+ واضحة. {random.choice(transitions)} تتمثل أبرز هذه التحديات في الجوانب التقنية والأخلاقية والاجتماعية
107
+ والتنظيمية. ومع ذلك، تفتح هذه التحديات آفاقاً جديدة للابتكار والتطوير، مما يخلق فرصاً واعدة للمستقبل.
108
+
109
+ {random.choice(transitions)} تتطلب مواجهة هذه التحديات تضافر جهود جميع الأطراف المعنية، من مؤسسات
110
+ أكاديمية وبحثية وشركات تقنية وجهات تنظيمية. كما يستدعي ذلك تطوير أطر تنظيمية مرنة وفعالة تواكب
111
+ التطورات المتسارعة في هذا المجال، مع ضمان حماية حقوق جميع الأطراف المعنية."""
112
  }
113
  ],
114
+
115
  "faq": [
116
  {
117
+ "question": f"ما هي أبرز المميزات والخصائص التي يتمتع بها {topic}؟",
118
+ "answer": f"""يتميز {topic} بمجموعة من الخصائص الفريدة والمميزات الهامة، أبرزها قدرته الفائقة
119
+ على التكيف مع المتغيرات المختلفة في بيئة العمل، وإمكانية تطبيقه في مجالات متعددة ومتنوعة، إضافة إلى
120
+ فعاليته العالية في حل المشكلات المعقدة وتطوير حلول مبتكرة. كما يتميز بقابليته للتطور المستمر والتحسين
121
+ المتواصل استجابة للمتطلبات المتغيرة والتحديات الجديدة."""
122
  },
123
  {
124
+ "question": f"كيف يمكن الاستفادة من {topic} في تطوير وتحسين الأداء المؤسسي؟",
125
+ "answer": f"""يمكن الاستفادة من {topic} في العديد من المجالات الحيوية لتطوير وتحسين الأداء
126
+ المؤسسي، وذلك من خلال توظيفه في تحسين الإنتاجية وتطوير الخدمات وابتكار حلول جديدة للمشكلات القائمة.
127
+ كما يمكن استخدامه في تحسين عمليات اتخاذ القرار، وتطوير استراتيجيات العمل، وتعزيز القدرة التنافسية
128
+ للمؤسسة في السوق."""
129
  },
130
  {
131
+ "question": f"ما هي التوقعات المستقبلية لتطور وانتشار {topic}؟",
132
  "answer": f"""تشير التوقعات المستقبلية إلى استمرار نمو وتطور {topic} بشكل متسارع، مع ظهور
133
+ تطبيقات جديدة وابتكارات مهمة في مختلف المجالات. ومن المتوقع أن يلعب دوراً محورياً في تشكيل مستقبل
134
+ العديد من القطاعات الحيوية، مع زيادة الاعتماد عليه في تطوير الحلول المبتكرة ومواجهة التحديات المعاصرة."""
135
  }
136
  ],
137
+
138
+ "conclusion": f"""في ختام هذه الدراسة الشاملة حول {topic}، يمكننا القول إن هذا المجال يمثل ركيزة
139
+ أساسية في مسيرة التطور التكنولوجي والعلمي في عصرنا الحالي. وقد أثبتت التجارب والدراسات أهميته المتزايدة
140
+ في مختلف القطاعات والمجالات. {random.choice(transitions)} مع استمرار التطور التقني والعلمي، نتوقع أن
141
+ يشهد هذا المجال المزيد من الابتكارات والتطبيقات التي ستساهم في تحسين حياة الإنسان وتطوير المجتمعات.
142
+
143
+ {random.choice(transitions)} يتطلب تحقيق الاستفادة القصوى من إمكانات وفرص {topic} تضافر جهود جميع
144
+ الأطراف المعنية، من مؤسسات أكاديمية وبحثية وشركات تقنية وجهات تنظيمية. كما يستدعي ذلك تطوير
145
+ استراتيجيات وخطط عمل متكاملة تأخذ في الاعتبار جميع الأبعاد التقنية والاجتماعية والأخلاقية، مع التركيز
146
+ على تعزيز الابتكار والإبداع في هذا المجال الحيوي."""
147
  }
148
+
149
  return article
150
 
151
  def format_article(article):
 
181
  formatted_text += f"""## الخاتمة
182
  {article['conclusion']}"""
183
 
184
+ # التحقق من عدد الكلمات
185
+ word_count = count_words(formatted_text)
186
+ if word_count < 1000:
187
+ print(f"تحذير: المقال يحتوي على {word_count} كلمة فقط، وهو أقل من الحد الأدنى المطلوب (1000 كلمة)")
188
+
189
+ # استخراج الكلمات المفتاحية
190
+ keywords = get_keywords(formatted_text)
191
+ formatted_text += f"""\n\n## الكلمات المفتاحية
192
+ {', '.join(keywords)}"""
193
+
194
  return formatted_text
195
 
196
  # إنشاء واجهة المستخدم
 
206
  value="عام"
207
  )
208
  generate_btn = gr.Button("إنشاء المقال")
209
+ output = gr.Textbox(label="المقال المُنشأ", lines=30)
210
 
211
  def generate_and_format(topic, article_type):
212
  article = generate_professional_article(topic, article_type)
213
+ formatted_article = format_article(article)
214
+ return formatted_article
215
 
216
  generate_btn.click(
217
  generate_and_format,