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

Upload app.py

Browse files
Files changed (1) hide show
  1. app.py +83 -80
app.py CHANGED
@@ -47,11 +47,9 @@ def get_article_template(article_type):
47
  templates = {
48
  "علمي": {
49
  "structure": [
50
- "مقدمة علمية",
51
- "الخلفية النظرية",
52
- "المنهجية والأدوات",
53
- "النتائج والمناقشة",
54
- "الاستنتاجات والتوصيات"
55
  ],
56
  "style": "أكاديمي رسمي",
57
  "transitions": [
@@ -221,31 +219,12 @@ def generate_main_content(topic, structure, transitions, min_words=800):
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}",
@@ -254,6 +233,57 @@ def generate_main_content(topic, structure, transitions, min_words=800):
254
 
255
  return sections
256
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
257
  def generate_conclusion(topic, style, min_words=200):
258
  """توليد خاتمة شاملة للمقال"""
259
  conclusion_parts = [
@@ -267,75 +297,48 @@ def generate_conclusion(topic, style, min_words=200):
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 == "أكاديمي رسمي":
341
  questions = [
 
47
  templates = {
48
  "علمي": {
49
  "structure": [
50
+ "تحليل",
51
+ "وصف",
52
+ "مناقشة"
 
 
53
  ],
54
  "style": "أكاديمي رسمي",
55
  "transitions": [
 
219
  words_per_section = min_words // len(structure)
220
 
221
  for section_type in structure:
222
+ if section_type == "تحليل":
223
+ content = generate_analysis_section(topic, words_per_section)
224
+ elif section_type == "وصف":
225
+ content = generate_description_section(topic, words_per_section)
226
+ else: # مناقشة
227
+ content = generate_discussion_section(topic, words_per_section)
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
228
 
229
  sections.append({
230
  "title": f"{section_type} {topic}",
 
233
 
234
  return sections
235
 
236
+ def generate_analysis_section(topic, target_words):
237
+ """توليد قسم التحليل"""
238
+ paragraphs = [
239
+ f"يتطلب تحليل {topic} دراسة معمقة للعوامل المختلفة المؤثرة في هذا المجال. وتشير الدراسات الحديثة إلى مجموعة من النقاط الرئيسية التي تستحق التحليل والدراسة:",
240
+
241
+ "أولاً: العوامل الرئيسية المؤثرة",
242
+ f"تتعدد العوامل المؤثرة في مجال {topic}، ويمكن تصنيفها إلى عدة فئات رئيسية. تشمل هذه العوامل الجوانب التقنية والاجتماعية والاقتصادية، حيث يؤثر كل منها بشكل مباشر على تطور وتقدم هذا المجال.",
243
+
244
+ "ثانياً: التحديات والفرص",
245
+ f"يواجه مجال {topic} مجموعة من التحديات التي تتطلب حلولاً مبتكرة. وفي نفس الوقت، تظهر فرص جديدة يمكن استثمارها لتحقيق تقدم ملموس في هذا المجال.",
246
+
247
+ "ثالثاً: الاتجاهات المستقبلية",
248
+ f"تشير التوقعات المستقبلية في مجال {topic} إلى اتجاهات واعدة تستحق الدراسة والمتابعة. وتتطلب هذه الاتجاهات تطوير استراتيجيات مناسبة للتعامل معها."
249
+ ]
250
+
251
+ return "\n\n".join(paragraphs)
252
+
253
+ def generate_description_section(topic, target_words):
254
+ """توليد قسم الوصف"""
255
+ paragraphs = [
256
+ f"يتميز {topic} بمجموعة من الخصائص والسمات الفريدة التي تجعله موضوعاً مهماً للدراسة والبحث. وفيما يلي وصف تفصيلي لأهم هذه الخصائص:",
257
+
258
+ "أولاً: السمات الأساسية",
259
+ f"يمتاز {topic} بمجموعة من السمات الأساسية التي تشكل هويته وتميزه عن غيره. وتشمل هذه السمات جوانب متعددة تستحق الدراسة والتحليل.",
260
+
261
+ "ثانياً: المكونات الرئيسية",
262
+ f"يتكون {topic} من عدة مكونات رئيسية تتفاعل فيما بينها لتشكل نظاماً متكاملاً. كل مكون له دوره وأهميته في المنظومة الكلية.",
263
+
264
+ "ثالثاً: آليات العمل",
265
+ f"تعتمد آليات العمل في {topic} على مجموعة من الأسس والمبادئ التي تضمن كفاءة وفعالية الأداء. وتتطلب هذه الآليات فهماً عميقاً لطبيعة العمل وأهدافه."
266
+ ]
267
+
268
+ return "\n\n".join(paragraphs)
269
+
270
+ def generate_discussion_section(topic, target_words):
271
+ """توليد قسم المناقشة"""
272
+ paragraphs = [
273
+ f"تثير مناقشة {topic} العديد من النقاط المهمة التي تستحق التحليل والدراسة. وفيما يلي أهم النقاط التي تمت مناقشتها:",
274
+
275
+ "أولاً: وجهات النظر المختلفة",
276
+ f"تتعدد وجهات النظر حول {topic}، حيث يقدم كل اتجاه رؤية مختلفة تستند إلى مجموعة من الأدلة والبراهين. وتسهم هذه التعددية في إثراء النقاش وتعميق الفهم.",
277
+
278
+ "ثانياً: الآراء المتباينة",
279
+ f"تختلف الآراء حول {topic} باختلاف المنطلقات الفكرية والخلفيات العلمية. ويسهم هذا التنوع في تقديم فهم أشمل وأعمق للموضوع.",
280
+
281
+ "ثالثاً: نقاط الاتفاق والاختلاف",
282
+ f"رغم تعدد الآراء حول {topic}، إلا أن هناك نقاط اتفاق مشتركة تشكل أساساً للحوار والنقاش. كما أن نقاط الاختلاف تفتح المجال لمزيد من البحث والدراسة."
283
+ ]
284
+
285
+ return "\n\n".join(paragraphs)
286
+
287
  def generate_conclusion(topic, style, min_words=200):
288
  """توليد خاتمة شاملة للمقال"""
289
  conclusion_parts = [
 
297
 
298
  def format_article(article):
299
  """تنسيق المقال بشكل منظم ومرتب"""
300
+ # تنسيق العنوان الرئيسي
301
+ formatted_text = f"""<div dir="rtl">
302
+ <h1 style="text-align: center; color: #2c3e50; margin-bottom: 30px;">{article['title']}</h1>
303
 
304
+ <div style="margin-bottom: 40px;">
305
+ <h2 style="color: #34495e; border-bottom: 2px solid #3498db; padding-bottom: 10px;">مقدمة</h2>
306
  {article['introduction']}
307
+ </div>
308
 
309
+ <div style="margin-bottom: 40px;">
310
+ <h2 style="color: #34495e; border-bottom: 2px solid #3498db; padding-bottom: 10px;">المحتوى الرئيسي</h2>
311
  """
312
 
313
  # إضافة المحتوى الرئيسي مع ترقيم الأقسام
314
  for i, section in enumerate(article['main_content'], 1):
315
+ formatted_text += f"""<div style="margin-bottom: 30px;">
316
+ <h3 style="color: #2980b9;">{i}. {section['title']}</h3>
317
  {section['content']}
318
+ </div>
319
  """
320
 
321
  # إضافة الأسئلة الشائعة
322
+ formatted_text += """<div style="margin-bottom: 40px;">
323
+ <h2 style="color: #34495e; border-bottom: 2px solid #3498db; padding-bottom: 10px;">الأسئلة الشائعة</h2>
324
  """
325
+
326
  for i, qa in enumerate(article['faq'], 1):
327
+ formatted_text += f"""<div style="margin-bottom: 20px;">
328
+ <h3 style="color: #2980b9;">سؤال {i}: {qa['question']}</h3>
329
+ <p style="margin-right: 20px;">{qa['answer']}</p>
330
+ </div>
331
  """
332
 
333
  # إضافة الخاتمة
334
+ formatted_text += f"""<div style="margin-bottom: 40px;">
335
+ <h2 style="color: #34495e; border-bottom: 2px solid #3498db; padding-bottom: 10px;">الخاتمة</h2>
336
+ {article['conclusion']}
337
+ </div>
338
+ </div>"""
339
 
340
  return formatted_text
341
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
342
  def generate_faq(topic, style):
343
  if style == "أكاديمي رسمي":
344
  questions = [