File size: 3,951 Bytes
911f75c
 
 
 
 
 
eda13d2
 
911f75c
0b82ebe
911f75c
 
 
 
7bbc315
911f75c
f77e3d6
0b82ebe
 
f77e3d6
 
 
 
 
0b82ebe
f77e3d6
0b82ebe
 
 
f77e3d6
7d44a76
f77e3d6
7d44a76
 
f77e3d6
7d44a76
 
f77e3d6
7d44a76
 
f77e3d6
0b82ebe
 
911f75c
 
eda13d2
911f75c
 
eda13d2
911f75c
 
 
0b82ebe
7d44a76
911f75c
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
import gradio as gr
from transformers import pipeline

# تحميل نموذج التلخيص (facebook/bart-large-cnn)
summarizer = pipeline("summarization", model="facebook/bart-large-cnn")

# تحميل نموذج كتابة المقالات بالعربي (aragpt2-base)
generator = pipeline("text-generation", model="aubmindlab/aragpt2-base")

# دالة لتلخيص النص (بالإنجليزي حاليًا)
def summarize_text(text):
    summary = summarizer(text, max_length=130, min_length=30, do_sample=False)
    return summary[0]["summary_text"]

# دالة لكتابة مقال بالعربي مع تحسين التركيز
def generate_article(prompt):
    # تعليمات مفصلة مع أمثلة واضحة
    full_prompt = (
        f"اكتب مقالًا عن: {prompt}، مقسمًا إلى فقرات مع عناوين فرعية واضحة. "
        f"ابدأ بمقدمة تشرح أهمية الموضوع (مثال: 'الذكاء الاصطناعي فتح أبوابًا جديدة للربح من الإنترنت'). "
        f"ثم اكتب فقرة عن الطرق العملية (مثال: 'استخدام أدوات الذكاء الاصطناعي لإنشاء محتوى يدر دخلاً مثل كتابة المقالات أو تصميم الإعلانات'). "
        f"ثم فقرة عن النصائح (مثال: 'اختر أدوات ذكاء اصطناعي موثوقة مثل Grok أو ChatGPT وضع خطة واضحة للاستفادة منها'). "
        f"واختم بخاتمة تلخص الفائدة (مثال: 'الجمع بين التكنولوجيا والإبداع يضمن فرص ربح مستدامة'). "
        f"استخدم لغة واضحة وأمثلة عملية مرتبطة بالموضوع."
    )
    article = generator(full_prompt, max_length=1000, num_return_sequences=1, do_sample=True, temperature=0.9, top_k=50)
    raw_text = article[0]["generated_text"].replace(full_prompt, "").strip()

    # تقسيم النص وتنسيقه
    sentences = [s.strip() for s in raw_text.split(".") if s.strip()]
    formatted_text = "### مقدمة\n"
    formatted_text += f"{sentences[0] if sentences else 'الذكاء الاصطناعي يقدم فرصًا لا حدود لها للربح.'}.\n\n"

    formatted_text += "### الطرق العملية\n"
    formatted_text += f"{'.'.join(sentences[1:5] if len(sentences) > 4 else sentences[1:] if len(sentences) > 1 else ['استخدم الذكاء الاصطناعي لإنشاء محتوى يدر دخلاً'])}.\n\n"

    formatted_text += "### نصائح للتطبيق\n"
    formatted_text += f"{'.'.join(sentences[5:9] if len(sentences) > 8 else sentences[5:] if len(sentences) > 5 else ['اختر أدوات موثوقة وخطط جيدًا'])}.\n\n"

    formatted_text += "### خاتمة\n"
    formatted_text += f"{'.'.join(sentences[9:] if len(sentences) > 9 else ['الجمع بين التكنولوجيا والإبداع يفتح آفاقًا جديدة'])}.\n"

    return formatted_text

# واجهة Gradio
with gr.Blocks(title="أداة كتابة المقالات وتلخيصها") as interface:
    gr.Markdown("## أداة كتابة المقالات وتلخيصها")
    with gr.Tab("تلخيص النصوص"):
        input_text = gr.Textbox(label="أدخل النص للتلخيص (بالإنجليزي حاليًا)", lines=5)
        output_text = gr.Textbox(label="الملخص", lines=3)
        gr.Button("تلخيص").click(summarize_text, inputs=input_text, outputs=output_text)
    with gr.Tab("كتابة مقال"):
        input_prompt = gr.Textbox(label="أدخل موضوع المقال (بالعربي)", lines=2)
        output_article = gr.Textbox(label="المقال المكتوب", lines=12)
        gr.Button("اكتب مقال").click(generate_article, inputs=input_prompt, outputs=output_article)

interface.launch()