Alkoptan's picture
Upload 2 files
f77e3d6 verified
Raw History Blame Contribute Delete
3.95 kB
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()