StudyProgram / app.py
mimoha's picture
Update app.py
bacbdae verified
# 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_study_schedule(subject_names, available_days, hours_per_day):
# Check inputs
if not subject_names.strip() or not available_days.strip() or not hours_per_day.strip():
return "Please fill in all fields first."
prompt = f"""
المواد الدراسية: {subject_names}
عدد الأيام المتاحة للدراسة: {available_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 app:
gr.Markdown("## Space Study Program — Auto Study Schedule Generator")
with gr.Row():
subjects_input = gr.Textbox(
label="Subject Names",
placeholder="Example: Math, Physics, Chemistry",
lines=2
)
days_input = gr.Textbox(
label="Available Days",
placeholder="Example: 7",
lines=1
)
hours_input = gr.Textbox(
label="Study Hours per Day",
placeholder="Example: 4",
lines=1
)
schedule_output = gr.Textbox(label="Generated Study Schedule (Paragraph)", lines=10)
generate_btn = gr.Button("Generate Schedule")
generate_btn.click(
fn=generate_study_schedule,
inputs=[subjects_input, days_input, hours_input],
outputs=schedule_output
)
if __name__ == "__main__":
app.launch(share=True, show_error=True)