Download app.py from Alkoptan/ArticleWriterSummarizer: direct link, hf CLI and curl.
- Browser
- Download file 3.95 kB
-
https://huggingface.co/spaces/Alkoptan/ArticleWriterSummarizer/resolve/main/app.py
- Command line
-
hf download hf://spaces/Alkoptan/ArticleWriterSummarizer/app.py
-
curl -L -o app.py https://huggingface.co/spaces/Alkoptan/ArticleWriterSummarizer/resolve/main/app.py
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() |