File size: 2,029 Bytes
880879e
 
 
 
14cf237
880879e
2df4785
2e6648e
fe221f0
880879e
57d2be4
880879e
432130e
880879e
 
432130e
880879e
 
432130e
7191826
d500dc8
7191826
 
 
 
 
 
 
 
 
 
 
 
 
880879e
 
 
 
 
14cf237
fe221f0
880879e
 
432130e
57d2be4
fe221f0
 
 
 
 
 
 
432130e
fe221f0
 
 
880879e
 
 
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
58
59
60
# app.py
from google import genai
import gradio as gr

API_KEY = "AIzaSyB4JKubDJd7nLx1NqPhDfMGeVWeQ7kqClY"

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


def generate_main_question_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("## MainQuestion — Basic Question Generator (Arabic Output)")
    
    with gr.Row():
        paragraph = gr.Textbox(
            label="Paragraph (Input text)", 
            lines=8, 
            placeholder="Paste the paragraph here..."
        )
    
    output = gr.Textbox(label="Generated Question (Arabic)", lines=3)

    submit_btn = gr.Button("Submit")
    submit_btn.click(fn=generate_main_question_gemini, inputs=paragraph, outputs=output)

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