StudyProgram / app.py
mimoha's picture
Update app.py
3f0b6cc verified
raw
history blame
2.49 kB
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)