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() |