File size: 1,740 Bytes
1695b3c
 
 
06f4eb0
1695b3c
 
 
 
 
b87828f
1695b3c
 
 
 
 
 
 
 
 
 
643db1b
1695b3c
 
 
 
 
 
 
 
 
b87828f
1695b3c
 
 
 
 
 
 
 
b87828f
1695b3c
b87828f
 
1695b3c
 
b87828f
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
from google import genai
import gradio as gr

API_KEY = "AIzaSyDLblBapnjXjcTiSHuRWQ-FpGoba_h-n_w" 

client = genai.Client(api_key=API_KEY)
MODEL_NAME = "gemini-2.5-flash"


def generate_summarization_gemini(paragraph: str):
    if not paragraph or paragraph.strip() == "":
        return "الرجاء إدخال فقرة أولاً."

    prompt = f"""
الفقرة التالية:
{paragraph}
المطلوب:

اقرأ النص الآتي بتمعّن، ثم أعد صياغته في ملخّص واضح ومركّز، يبيّن الأفكار الأساسية والمفاهيم العامة الواردة فيه.
يجب أن يكون التلخيص بلغة عربية فصحى سليمة، خالية من الحشو والتفاصيل الثانوية، وأن يعبّر عن جوهر الدرس أو الفقرة بأسلوب مبسّط وسلس يساعد الطالب على الفهم السريع.
 وركّز على النقاط الجوهرية فقط.
"""
    try:
        response = client.models.generate_content(model=MODEL_NAME, contents=prompt)
        return response.text.strip()
    except Exception as e:
        return f" Error while connecting to API: {e}"


with gr.Blocks() as demo:
    gr.Markdown("## Summarization — Arabic Text Summarizer")
    
    with gr.Row():
        paragraph = gr.Textbox(
            label="Paragraph (Input text)", 
            lines=8, 
            placeholder="Paste the paragraph here..."
        )
    
    output = gr.Textbox(label="Generated Summary (Arabic)", lines=5)

    submit_btn = gr.Button("Summarize")
    submit_btn.click(fn=generate_summarization_gemini, inputs=paragraph, outputs=output)

if __name__ == "__main__":
    demo.launch(share=True, show_error=True)