import os import gradio as gr import datetime from groq import Groq from docx import Document from docx.shared import Pt from tempfile import NamedTemporaryFile # ✅ Groq API Key GROQ_API_KEY = os.getenv("GROQ_API_KEY") client = Groq(api_key=GROQ_API_KEY) # ✅ Function to generate lesson plan def generate_lesson_plan(language, class_, subject, topic, students, duration, date, teacher, theme): if language == "Urdu": model_name = "openai/gpt-oss-120b" else: model_name = "llama-3.1-8b-instant" # ✅ Prompt templates if language == "English": prompt = f""" You are an expert lesson plan designer. Create a complete **BOPPPS Model Lesson Plan** in English with the following sections: 1. Bridge-in 2. Pre-Assessment 3. Learning Outcomes 4. Participatory Learning Activities 5. Post-Assessment 6. Summary 7. Home Assignment aligned with SLOs Make it logical, creative, and suitable for grade level. Do not repeat input details in body text. Include only one concise header table of details. Class: {class_} Subject: {subject} Topic: {topic} Students: {students} Duration: {duration} Date: {date} Teacher: {teacher} """ else: prompt = f""" آپ ایک ماہر استاد ہیں۔ درج ذیل معلومات کی بنیاد پر **BOPPPS ماڈل** کے مطابق ایک مکمل روزانہ کا تدریسی منصوبہ اردو زبان میں تیار کریں۔ انگریزی حروف استعمال نہ کریں، صرف اردو رسم الخط استعمال کریں۔ درج ذیل حصے لازمی شامل ہوں: ۱۔ ابتدائی تعارف (Bridge-in) ۲۔ ابتدائی تشخیص (Pre-Assessment) ۳۔ تعلیمی مقاصد (Learning Outcomes) ۴۔ شراکتی تعلیمی سرگرمیاں (Participatory Learning Activities) ۵۔ بعد از تدریس تشخیص (Post-Assessment) ۶۔ خلاصہ (Summary) ۷۔ گھریلو کام (SLOs کے مطابق) جماعت: {class_} مضمون: {subject} عنوان: {topic} طلباء کی تعداد: {students} دورانیہ: {duration} تاریخ: {date} معلم: {teacher} """ # ✅ Generate text response = client.chat.completions.create( model=model_name, messages=[{"role": "user", "content": prompt}], temperature=0.7, ) lesson_text = response.choices[0].message.content.strip() # ✅ ENGLISH VERSION — create .docx if language == "English": doc = Document() doc.add_heading("BOPPPS Lesson Plan", level=1) table = doc.add_table(rows=7, cols=2) table.style = "Table Grid" headers = ["Class", "Subject", "Topic", "Students", "Duration", "Date", "Teacher"] values = [class_, subject, topic, students, duration, date, teacher] for i in range(7): table.cell(i, 0).text = headers[i] table.cell(i, 1).text = str(values[i]) doc.add_paragraph("\n" + lesson_text) doc.add_paragraph("\nDeveloped by Najaf Ali Sharqi") temp_file = NamedTemporaryFile(delete=False, suffix=".docx") doc.save(temp_file.name) final_text = f"✅ English lesson plan generated successfully for {subject} (Grade {class_})." file_output = temp_file.name # ✅ URDU VERSION — create .md else: urdu_md = f"""