thomson99 commited on
Commit
bb9a333
·
verified ·
1 Parent(s): c2291b4

Upload app.py

Browse files
Files changed (1) hide show
  1. app.py +167 -205
app.py CHANGED
@@ -204,92 +204,137 @@ def generate_title(topic, style):
204
  else:
205
  return f"{topic}: رؤية ثقافية معاصرة"
206
 
207
- def generate_introduction(topic, style, transitions):
208
- if style == "أكاديمي رسمي":
209
- return f"""في إطار التطورات العلمية المتسارعة في مجال {topic}، تبرز أهمية دراسة وتحليل
210
- الأبعاد المختلفة لهذا المجال الحيوي. {random.choice(transitions)} تهدف هذه الدراسة إلى تقديم
211
- تحليل منهجي معمق للجوانب النظرية والتطبيقية، مع التركيز على الإسهامات العلمية الحديثة في هذا المجال.
 
 
 
 
 
212
 
213
- {random.choice(transitions)} يستند هذا البحث إلى مجموعة من الدراسات والأبحاث العلمية المحكمة،
214
- التي تناولت مختلف جوانب {topic} وتطبيقاته المتنوعة. وتكتسب هذه الدراسة أهمية خاصة في ظل
215
- التحولات العميقة التي يشهدها هذا المجال على المستويين النظري والتطبيقي."""
216
- elif style == "إخباري موضوعي":
217
- return f"""في تطور لافت يشهده مجال {topic}، تتسارع وتيرة التغيرات والمستجدات التي تؤثر
218
- على مختلف القطاعات والمجالات. {random.choice(transitions)} كشفت مصادر مطلعة عن مجموعة من
219
- التطورات الجديدة التي من شأنها إحداث تحول جذري في طريقة التعامل مع هذا المجال الحيوي.
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
220
 
221
- {random.choice(transitions)} وفي تصريحات خاصة، أكد خبراء ومختصون أن هذه التطورات تمثل نقلة
222
- نوعية في مسيرة تطور {topic}، مشيرين إلى أن تأثيراتها ستمتد لتشمل مختلف جوانب الحياة اليومية."""
223
- elif style == "تقني تفصيلي":
224
- return f"""يشهد مجال {topic} تطوراً تقنياً متسارعاً يفتح آفاقاً جديدة للابتكار والتطوير.
225
- {random.choice(transitions)} تتميز التقنيات الحديثة في هذا المجال بمجموعة من الخصائص والمميزات
226
- التي تجعلها أكثر كفاءة وفعالية في معالجة التحديات المعاصرة.
 
 
 
 
227
 
228
- {random.choice(transitions)} يركز هذا التحليل التقني على أحدث التطورات والابتكارات في مجال
229
- {topic}، مع التركيز على المواصفات التقنية والتطبيقات العملية التي تميز هذه الحلول المتقدمة."""
230
- elif style == "تعليمي تفاعلي":
231
- return f"""دعونا نتعرف على مجال {topic} من خلال هذا الدليل التعليمي الشامل. {random.choice(transitions)}
232
- ستتعرف في هذا المقال على المفاهيم الأساسية والأهداف التعليمية التي تهدف إلى تعزيز فهمك لهذا المجال."""
233
- elif style == "تسويقي مقنع":
234
- return f"""هل تعاني من تحديات في مجال {topic}؟ {random.choice(transitions)} نقدم لك الحل الأمثل
235
- لتحدياتك من خلال هذا المقال التسويقي الذي يركز على تقديم الحلول الفعالة والمميزات التي تتميز بها
236
- منتجاتنا أو خدماتنا."""
237
- elif style == "اجتماعي تحليلي":
238
- return f"""يشهد مجال {topic} تحولات اجتماعية عميقة تؤثر على مختلف جوانب الحياة. {random.choice(transitions)}
239
- في هذا المقال، سنقوم بتحليل الظواهر الاجتماعية والتأثيرات التي تنتج عنها، مع التركيز على الحلول
240
- الممكنة والتحديات التي تواجهها."""
241
- elif style == "تحليلي نقدي":
242
- return f"""في هذا المقال، سنقوم بتحليل نقدي لمجال {topic} من خلال دراسة وتحليل مختلف
243
- الجوانب والآراء. {random.choice(transitions)} سنقوم بتقديم رؤية نقدية شاملة لهذا المجال، مع التركيز على
244
- النقاط القوية والضعف."""
245
- else:
246
- return f"""يشهد مجال {topic} تطوراً ثقافياً متسارعاً يفتح آفاقاً جديدة للابتكار والتفاعل.
247
- {random.choice(transitions)} في هذا المقال، سنقوم بتحليل التأثيرات الثقافية والتفاعلات التي تنتج عنها،
248
- مع التركيز على الحلول الممكنة والتحديات التي تواجهها."""
249
 
250
- def generate_main_content(topic, structure, transitions):
251
- content = []
252
- for section in structure:
253
- content.append({
254
- "title": section,
255
- "content": f"""يتناول هذا القسم {section} في مجال {topic} من خلال تحليل معمق
256
- للجوانب المختلفة. {random.choice(transitions)} تشير الدراسات والتحليلات إلى أهمية هذا الجانب
257
- في تطوير وتحسين الأداء العام.
258
 
259
- {random.choice(transitions)} تتضمن النقاط الرئيسية في هذا المحور:
260
- 1. تحليل الوضع الراهن والتحديات القائمة
261
- 2. دراسة الفرص المتاحة والإمكانات المستقبلية
262
- 3. تقييم الأثر والنتائج المتوقعة
263
- 4. تحديد آليات التطوير والتحسين المستمر
264
- 5. وضع التوصيات والمقترحات العملية"""
265
- })
266
- return content
267
 
268
- def generate_conclusion(topic, style):
269
- if style == "أكاديمي رسمي":
270
- return f"""في ختام هذه الدراسة العلمية حول {topic}، يمكن استخلاص مجموعة من النتائج
271
- والتوصيات الهامة. وتؤكد هذه النتائج على أهمية مواصلة البحث والتطوير في هذا المجال الحيوي."""
272
- elif style == "إخباري موضوعي":
273
- return f"""وفي الختام، تشير التطورات الأخيرة في مجال {topic} إلى بداية مرحلة جديدة
274
- من التقدم والابتكار. ويتوقع الخبراء المزيد من التطورات الإيجابية في المستقبل القريب."""
275
- elif style == "تقني تفصيلي":
276
- return f"""يتضح مما سبق أن التطورات التقنية في مجال {topic} تفتح آفاقاً واعدة للمستقبل.
277
- ومع استمرار التطور التقني، نتوقع المزيد من الابتكارات والحلول المتقدمة."""
278
- elif style == "تعليمي تفاعلي":
279
- return f"""في ختام هذا الدليل التعليمي، نأمل أن تكون قد اكتسبت فهمًا أعمق لمجال {topic}.
280
- وتذكر دائمًا أن التعليم والتطوير المستمر هما المفتاح للنجاح في هذا المجال."""
281
- elif style == "تسويقي مقنع":
282
- return f"""لا تفوت هذه الفرصة لتحسين أدائك في مجال {topic}. اتصل بنا الآن للاستفادة
283
- من الحلول الفعالة والمميزات التي نقدمها."""
284
- elif style == "اجتماعي تحليلي":
285
- return f"""في الختام، نأمل أن تكون هذه الدراسة قد ساهمت في تعزيز فهمك لمجال {topic}
286
- وما يحيط به من تحديات وفرص. وتذكر دائمًا أن التغيير الإيجابي يبدأ من داخلنا."""
287
- elif style == "تحليلي نقدي":
288
- return f"""في ختام هذا التحليل النقدي، نأمل أن تكون قد اكتسبت رؤية شاملة لمجال {topic}
289
- وما يحيط به من نقاط قوة وضعف. وتذكر دائمًا أن النقد البناء هو المفتاح للتحسين المستمر."""
290
- else:
291
- return f"""يتضح مما سبق أن مجال {topic} يحتاج إلى مزيد من الابتكار والتفاعل.
292
- وتذكر دائمًا أن التطور الثقافي هو المفتاح للتقدم والنجاح في هذا المجال."""
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
293
 
294
  def generate_faq(topic, style):
295
  if style == "أكاديمي رسمي":
@@ -454,49 +499,6 @@ def check_grammar_and_style(text):
454
 
455
  return text
456
 
457
- def generate_article(topic, article_type, word_count=1500, formality="رسمي"):
458
- template = get_article_template(article_type)
459
- structure = template["structure"]
460
- style = template["style"]
461
- transitions = template["transitions"]
462
-
463
- # تعديل الأسلوب حسب مستوى الرسمية
464
- if formality == "رسمي":
465
- style = "أكاديمي رسمي"
466
- elif formality == "شبه رسمي":
467
- style = "إخباري موضوعي"
468
- else: # عادي
469
- style = "تعليمي تفاعلي"
470
-
471
- # إنشاء المقال الأساسي
472
- article = {
473
- "title": generate_title(topic, style),
474
- "introduction": generate_introduction(topic, style, transitions),
475
- "main_content": generate_main_content(topic, structure, transitions),
476
- "conclusion": generate_conclusion(topic, style),
477
- "faq": generate_faq(topic, style)
478
- }
479
-
480
- # تنسيق المقال
481
- formatted_text = format_article(article)
482
-
483
- # تحسين المحتوى
484
- enhanced_text = enhance_text_variation(formatted_text)
485
- humanized_text = add_human_touch(enhanced_text)
486
- final_text = check_grammar_and_style(humanized_text)
487
-
488
- # ضبط عدد الكلمات
489
- current_word_count = len(final_text.split())
490
- if current_word_count < word_count:
491
- # إضافة محتوى إضافي
492
- additional_content = generate_additional_content(topic, style, word_count - current_word_count)
493
- final_text = insert_additional_content(final_text, additional_content)
494
- elif current_word_count > word_count:
495
- # تقليص المحتوى مع الحفاظ على التماسك
496
- final_text = trim_content(final_text, word_count)
497
-
498
- return final_text
499
-
500
  def generate_additional_content(topic, style, words_needed):
501
  """توليد محتوى إضافي للوصول إلى عدد الكلمات المطلوب"""
502
  sections = [
@@ -532,94 +534,54 @@ def insert_additional_content(text, additional_content):
532
  paragraphs.insert(-2, additional_content)
533
  return "\n\n".join(paragraphs)
534
 
535
- def format_article(article):
536
- """تنسيق المقال بشكل جميل"""
537
- formatted_text = f"""# {article['title']}
538
-
539
- ## مقدمة
540
- {article['introduction']}
541
-
542
- """
543
 
544
- for section in article['main_content']:
545
- formatted_text += f"""### {section['title']}
546
- {section['content']}
547
-
548
- """
 
 
549
 
550
- formatted_text += """## الأسئلة الشائعة
551
- """
 
 
 
552
 
553
- for qa in article['faq']:
554
- formatted_text += f"""### {qa['question']}
555
- {qa['answer']}
556
-
557
- """
 
 
 
558
 
559
- formatted_text += f"""## الخاتمة
560
- {article['conclusion']}"""
561
 
562
- return formatted_text
563
-
564
- def generate_faq(topic, style):
565
- if style == "أكاديمي رسمي":
566
- questions = [
567
- f"ما هي الأسس النظرية التي يقوم عليها {topic}؟",
568
- f"كيف يمكن تطوير منهجية البحث في مجال {topic}؟",
569
- f"ما هي أبرز التحديات البحثية في مجال {topic}؟"
570
- ]
571
- elif style == "إخباري موضوعي":
572
- questions = [
573
- f"ما هي أحدث التطورات في مجال {topic}؟",
574
- f"كيف يؤثر {topic} على القطاعات المختلفة؟",
575
- f"ما هي توقعات الخبراء لمستقبل {topic}؟"
576
- ]
577
- elif style == "تقني تفصيلي":
578
- questions = [
579
- f"ما هي المميزات التقنية الرئيسية لـ{topic}؟",
580
- f"كيف يمكن تطبيق {topic} في المشاريع العملية؟",
581
- f"ما هي متطلبات تنفيذ حلول {topic}؟"
582
- ]
583
- elif style == "تعليمي تفاعلي":
584
- questions = [
585
- f"ما هي المفاهيم الأساسية التي يجب فهمها في مجال {topic}؟",
586
- f"كيف يمكن تعزيز فهمك لمجال {topic}؟",
587
- f"ما هي الأهداف التعليمية التي يجب تحقيقها في مجال {topic}؟"
588
- ]
589
- elif style == "تسويقي مقنع":
590
- questions = [
591
- f"ما هي الحلول الفعالة التي نقدمها لمجال {topic}؟",
592
- f"كيف يمكن تحسين أدائك في مجال {topic}؟",
593
- f"ما هي المميزات التي تتميز بها منتجاتنا أو خدماتنا في مجال {topic}؟"
594
- ]
595
- elif style == "اجتماعي تحليلي":
596
- questions = [
597
- f"ما هي الظواهر الاجتماعية التي تؤثر على مجال {topic}؟",
598
- f"كيف يمكن تحليل التأثيرات الاجتماعية في مجال {topic}؟",
599
- f"ما هي الحلول الممكنة للتحديات الاجتماعية في مجال {topic}؟"
600
- ]
601
- elif style == "تحليلي نقدي":
602
- questions = [
603
- f"ما هي النقاط القوية والضعف في مجال {topic}؟",
604
- f"كيف يمكن تقييم الأداء في مجال {topic}؟",
605
- f"ما هي التوصيات التي يمكن تقديمها لتحسين أداء مجال {topic}؟"
606
- ]
607
- else:
608
- questions = [
609
- f"ما هي التأثيرات الثقافية التي تؤثر على مجال {topic}؟",
610
- f"كيف يمكن تحليل التفاعلات الثقافية في مجال {topic}؟",
611
- f"ما هي الحلول الممكنة للتحديات الثقافية في مجال {topic}؟"
612
- ]
613
 
614
- faq = []
615
- for q in questions:
616
- faq.append({
617
- "question": q,
618
- "answer": f"""يمكن الإجابة على هذا السؤال من خلال تحليل معمق للجوانب المختلفة
619
- المتعلقة بـ{topic}. وتشير الدراسات والتجارب العملية إلى مجموعة من النقاط الهامة التي
620
- تساعد في فهم وتطوير هذا المجال."""
621
- })
622
- return faq
 
 
623
 
624
  # إنشاء واجهة المستخدم
625
  with gr.Blocks(title="مساعد كتابة المقالات العربية") as demo:
 
204
  else:
205
  return f"{topic}: رؤية ثقافية معاصرة"
206
 
207
+ def generate_introduction(topic, style, transitions, min_words=200):
208
+ """توليد مقدمة شاملة للمقال"""
209
+ intro_parts = [
210
+ f"يعد موضوع {topic} من المواضيع الهامة التي تستحق الدراسة والبحث المعمق. حيث يشهد هذا المجال تطورات متسارعة ومتغيرات مستمرة تجعل من دراسته أمراً ضرورياً لفهم أبعاده المختلفة.",
211
+ f"وفي ظل التطورات العلمية والتكنولوجية المتسارعة، أصبح {topic} محور اهتمام الباحثين والمختصين. حيث تتعدد جوانب دراسته وتتنوع مجالات تطبيقه.",
212
+ f"ومن خلال هذا المقال، سنقوم بتحليل ودراسة {topic} من مختلف الجوانب، مع التركيز على أهم النقاط والعناصر التي تشكل أساس فهمه وتطويره.",
213
+ f"كما سنتناول بالتفصيل مختلف التحديات والفرص التي يقدمها {topic}، مع تقديم تحليل معمق للواقع الحالي والتوقعات المستقبلية."
214
+ ]
215
+
216
+ return "\n\n".join(intro_parts)
217
 
218
+ def generate_main_content(topic, structure, transitions, min_words=800):
219
+ """توليد المحتوى الرئيسي للمقال مع ضمان حد أدنى من الكلمات"""
220
+ sections = []
221
+ words_per_section = min_words // len(structure)
222
+
223
+ for section_type in structure:
224
+ content = ""
225
+ current_words = 0
226
+
227
+ while current_words < words_per_section:
228
+ if section_type == "تحليل":
229
+ paragraphs = [
230
+ f"يتطلب تحليل {topic} دراسة معمقة للعوامل المختلفة المؤثرة في هذا المجال. حيث تشير الدراسات الحديثة إلى وجود عدة عناصر رئيسية تستحق التحليل والدراسة.",
231
+ f"وعند النظر بعمق في {topic}، نجد أن هناك العديد من الجوانب التي تستحق الدراسة والتحليل. فمن خلال البحث والتقصي، يمكن تحديد العديد من النقاط المهمة.",
232
+ f"كما أن التحليل المعمق لـ {topic} يكشف عن وجود علاقات متداخلة بين مختلف العناصر المكونة له. وهذا يتطلب دراسة كل عنصر على حدة وفهم تأثيره على المنظومة ككل."
233
+ ]
234
+ elif section_type == "وصف":
235
+ paragraphs = [
236
+ f"يتميز {topic} بمجموعة من الخصائص والسمات الفريدة التي تميزه عن غيره. ومن خلال الدراسة والبحث، يمكن تحديد هذه الخصائص وفهم دورها وأهميتها.",
237
+ f"وعند وصف {topic} بشكل تفصيلي، نجد أنه يتكون من عدة عناصر أساسية تتفاعل فيما بينها لتشكل نظاماً متكاملاً. كل عنصر له دوره وأهميته في المنظومة ككل.",
238
+ f"كما يمتاز {topic} بقدرته على التكيف والتطور مع المتغيرات المختلفة. وهذا ما يجعله موضوعاً مثيراً للدراسة والبحث."
239
+ ]
240
+ else: # مناقشة
241
+ paragraphs = [
242
+ f"تثير دراسة {topic} العديد من النقاط الجديرة بالمناقشة والتحليل. فمن خلال البحث والدراسة، تظهر العديد من الآراء والوجهات النظر المختلفة.",
243
+ f"وعند مناقشة {topic} بشكل معمق، نجد أن هناك العديد من الجوانب التي تحتاج إلى دراسة وتحليل. كل جانب يقدم رؤية مختلفة وفهماً جديداً للموضوع.",
244
+ f"كما أن المناقشة المعمقة لـ {topic} تكشف عن وجود تحديات وفرص مختلفة. وهذا ما يجعل دراسته وتحليله أمراً ضرورياً لفهم أبعاده المختلفة."
245
+ ]
246
+
247
+ content += "\n\n".join(paragraphs) + "\n\n"
248
+ current_words = len(content.split())
249
+
250
+ sections.append({
251
+ "title": f"{section_type} {topic}",
252
+ "content": content
253
+ })
254
+
255
+ return sections
256
 
257
+ def generate_conclusion(topic, style, min_words=200):
258
+ """توليد خاتمة شاملة للمقال"""
259
+ conclusion_parts = [
260
+ f"وفي ختام هذا المقال حول {topic}، يمكننا القول أن هذا الموضوع يمثل مجالاً خصباً للدراسة والبحث. حيث تتعدد جوانبه وتتنوع تطبيقاته.",
261
+ f"كما أظهرت الدراسة أن {topic} يواجه العديد من التحديات التي تتطلب مزيداً من البحث والتطوير. وفي نفس الوقت، هناك فرص واعدة يمكن استثمارها وتطويرها.",
262
+ f"ومن خلال ما تم عرضه، يتضح أن مستقبل {topic} يحمل الكثير من الإمكانات والفرص. وهذا ما يجعل الاستمرار في دراسته وتطويره أمراً ضرورياً.",
263
+ f"وأخيراً، نؤكد على أهمية مواصلة البحث والدراسة في مجال {topic}، مع الأخذ بعين الاعتبار المتغيرات المستمرة والتطورات المتسارعة في هذا المجال."
264
+ ]
265
+
266
+ return "\n\n".join(conclusion_parts)
267
 
268
+ def format_article(article):
269
+ """تنسيق المقال بشكل منظم ومرتب"""
270
+ formatted_text = f"""# {article['title']}
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
271
 
272
+ ## مقدمة
273
+ {article['introduction']}
 
 
 
 
 
 
274
 
275
+ ## المحتوى الرئيسي
276
+ """
277
+
278
+ # إضافة المحتوى الرئيسي مع ترقيم الأقسام
279
+ for i, section in enumerate(article['main_content'], 1):
280
+ formatted_text += f"""### {i}. {section['title']}
281
+ {section['content']}
 
282
 
283
+ """
284
+
285
+ # إضافة الأسئلة الشائعة
286
+ formatted_text += """## الأسئلة الشائعة
287
+ """
288
+ for i, qa in enumerate(article['faq'], 1):
289
+ formatted_text += f"""### سؤال {i}: {qa['question']}
290
+ {qa['answer']}
291
+
292
+ """
293
+
294
+ # إضافة الخاتمة
295
+ formatted_text += f"""## الخاتمة
296
+ {article['conclusion']}"""
297
+
298
+ return formatted_text
299
+
300
+ def generate_article(topic, article_type, word_count=1500, formality="رسمي"):
301
+ template = get_article_template(article_type)
302
+ structure = template["structure"]
303
+ style = template["style"]
304
+ transitions = template["transitions"]
305
+
306
+ # تعديل الأسلوب حسب مستوى الرسمية
307
+ if formality == "رسمي":
308
+ style = "أكاديمي رسمي"
309
+ elif formality == "شبه رسمي":
310
+ style = "إخباري موضوعي"
311
+ else: # عادي
312
+ style = "تعليمي تفاعلي"
313
+
314
+ # حساب عدد الكلمات المطلوب لكل قسم
315
+ main_content_words = int(word_count * 0.6) # 60% للمحتوى الرئيسي
316
+ intro_words = int(word_count * 0.15) # 15% للمقدمة
317
+ conclusion_words = int(word_count * 0.15) # 15% للخاتمة
318
+ faq_words = int(word_count * 0.1) # 10% للأسئلة الشائعة
319
+
320
+ # إنشاء المقال
321
+ article = {
322
+ "title": generate_title(topic, style),
323
+ "introduction": generate_introduction(topic, style, transitions, intro_words),
324
+ "main_content": generate_main_content(topic, structure, transitions, main_content_words),
325
+ "conclusion": generate_conclusion(topic, style, conclusion_words),
326
+ "faq": generate_faq(topic, style)
327
+ }
328
+
329
+ # تنسيق المقال
330
+ formatted_text = format_article(article)
331
+
332
+ # تحسين المحتوى
333
+ enhanced_text = enhance_text_variation(formatted_text)
334
+ humanized_text = add_human_touch(enhanced_text)
335
+ final_text = check_grammar_and_style(humanized_text)
336
+
337
+ return final_text
338
 
339
  def generate_faq(topic, style):
340
  if style == "أكاديمي رسمي":
 
499
 
500
  return text
501
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
502
  def generate_additional_content(topic, style, words_needed):
503
  """توليد محتوى إضافي للوصول إلى عدد الكلمات المطلوب"""
504
  sections = [
 
534
  paragraphs.insert(-2, additional_content)
535
  return "\n\n".join(paragraphs)
536
 
537
+ def generate_article(topic, article_type, word_count=1500, formality="رسمي"):
538
+ template = get_article_template(article_type)
539
+ structure = template["structure"]
540
+ style = template["style"]
541
+ transitions = template["transitions"]
 
 
 
542
 
543
+ # تعديل الأسلوب حسب مستوى الرسمية
544
+ if formality == "رسمي":
545
+ style = "أكاديمي رسمي"
546
+ elif formality == "شبه رسمي":
547
+ style = "إخباري موضوعي"
548
+ else: # عادي
549
+ style = "تعليمي تفاعلي"
550
 
551
+ # حساب عدد الكلمات المطلوب لكل قسم
552
+ main_content_words = int(word_count * 0.6) # 60% للمحتوى الرئيسي
553
+ intro_words = int(word_count * 0.15) # 15% للمقدمة
554
+ conclusion_words = int(word_count * 0.15) # 15% للخاتمة
555
+ faq_words = int(word_count * 0.1) # 10% للأسئلة الشائعة
556
 
557
+ # إنشاء المقال
558
+ article = {
559
+ "title": generate_title(topic, style),
560
+ "introduction": generate_introduction(topic, style, transitions, intro_words),
561
+ "main_content": generate_main_content(topic, structure, transitions, main_content_words),
562
+ "conclusion": generate_conclusion(topic, style, conclusion_words),
563
+ "faq": generate_faq(topic, style)
564
+ }
565
 
566
+ # تنسيق المقال
567
+ formatted_text = format_article(article)
568
 
569
+ # تحسين المحتوى
570
+ enhanced_text = enhance_text_variation(formatted_text)
571
+ humanized_text = add_human_touch(enhanced_text)
572
+ final_text = check_grammar_and_style(humanized_text)
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
573
 
574
+ # ضبط عدد الكلمات
575
+ current_word_count = len(final_text.split())
576
+ if current_word_count < word_count:
577
+ # إضافة محتوى إضافي
578
+ additional_content = generate_additional_content(topic, style, word_count - current_word_count)
579
+ final_text = insert_additional_content(final_text, additional_content)
580
+ elif current_word_count > word_count:
581
+ # تقليص المحتوى مع الحفاظ على التماسك
582
+ final_text = trim_content(final_text, word_count)
583
+
584
+ return final_text
585
 
586
  # إنشاء واجهة المستخدم
587
  with gr.Blocks(title="مساعد كتابة المقالات العربية") as demo: