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_study_schedule(subjects, lessons, days, hours_per_day): # التحقق من الإدخالات if not subjects.strip() or not lessons.strip() or not days.strip() or not hours_per_day.strip(): return "الرجاء ملء جميع الحقول أولاً." prompt = f""" المواد الدراسية: {subjects} عدد الدروس أو الفصول لكل مادة: {lessons} عدد الأيام المتاحة للدراسة: {days} عدد الساعات المتاحة للدراسة في كل يوم: {hours_per_day} المطلوب: اقترح جدول دراسي لتغطية المعطيات السابقة اعرض النتيجة بشكل سردي وواضح فقط. اكتب فقط البرنامج بدون اي عبارات اضافية. """ 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("## جدول الدراسة — منظم تلقائي (Arabic Output)") with gr.Row(): subjects_input = gr.Textbox( label="أسماء المواد الدراسية", placeholder="مثال: رياضيات، فيزياء، كيمياء", lines=2 ) lessons_input = gr.Textbox( label="عدد الدروس أو الفصول في كل مادة", placeholder="مثال: 10، 8، 12", lines=2 ) with gr.Row(): days_input = gr.Textbox( label="عدد الأيام المتاحة للدراسة", placeholder="مثال: 7", lines=1 ) hours_input = gr.Textbox( label="عدد الساعات المتاحة للدراسة في كل يوم", placeholder="مثال: 4", lines=1 ) output = gr.Textbox(label="الجدول الناتج (باراغراف)", lines=10) submit_btn = gr.Button("إنشاء الجدول") submit_btn.click( fn=generate_study_schedule, inputs=[subjects_input, lessons_input, days_input, hours_input], outputs=output ) if __name__ == "__main__": demo.launch(share=True, show_error=True)