Pisethan commited on
Commit
ce4e9ec
Β·
verified Β·
1 Parent(s): 2d18165

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +44 -15
app.py CHANGED
@@ -1,14 +1,19 @@
1
  import gradio as gr
2
  from transformers import pipeline
3
 
4
- # Load the hosted model and tokenizer from Hugging Face Hub
5
  pipe = pipeline(
6
  "text-generation",
7
  model="Pisethan/khmer-lesson-model",
8
  tokenizer="Pisethan/khmer-lesson-model"
9
  )
10
 
11
- # Generation function
 
 
 
 
 
12
  def generate_lesson(grade, topic, level):
13
  prompt = f"""Generate a Khmer math lesson plan.
14
 
@@ -18,17 +23,41 @@ TaRL Level: {level}"""
18
  output = pipe(prompt, max_new_tokens=200, do_sample=True, temperature=0.7)
19
  return output[0]['generated_text']
20
 
21
- # Gradio UI
22
- iface = gr.Interface(
23
- fn=generate_lesson,
24
- inputs=[
25
- gr.Dropdown(["1", "2", "3", "4", "5", "6"], label="αžαŸ’αž“αžΆαž€αŸ‹ (Grade)"),
26
- gr.Dropdown(["Addition", "Subtraction", "Counting", "Number Recognition", "Multiplication", "Division"], label="αž”αŸ’αžšαž’αžΆαž“αž”αž‘ (Topic)"),
27
- gr.Dropdown(["Beginner", "Intermediate", "Advanced"], label="αž€αž˜αŸ’αžšαž·αžαžŸαž·αžŸαŸ’αžŸ (TaRL Level)")
28
- ],
29
- outputs=gr.Textbox(label="Khmer Lesson Plan"),
30
- title="πŸ€– αž’αŸ’αž“αž€αž‡αŸ†αž“αž½αž™αž”αž„αŸ’αž€αžΎαžαž˜αŸαžšαŸ€αž“αž‚αžŽαž·αžαžœαž·αž‘αŸ’αž™αžΆ",
31
- description="αž‡αŸ’αžšαžΎαžŸαžšαžΎαžŸαžαŸ’αž“αžΆαž€αŸ‹ αž”αŸ’αžšαž’αžΆαž“αž”αž‘ αž“αž·αž„αž€αž˜αŸ’αžšαž·αžαžŸαž·αžŸαŸ’αžŸ αžšαž½αž…αž…αž»αž…αž”αž„αŸ’αž€αžΎαžαž˜αŸαžšαŸ€αž“αŸ” αž“αŸαŸ‡αž‡αžΆαž˜αŸ‰αžΌαžŒαŸ‚αž›αž€αŸ‚αžŸαž˜αŸ’αžšαž½αž›αž‡αžΆαžŸαž€αž›αžŸαž˜αŸ’αžšαžΆαž”αŸ‹αž”αž„αŸ’αžšαŸ€αž“αž‚αžŽαž·αžαž‡αžΆαž—αžΆαžŸαžΆαžαŸ’αž˜αŸ‚αžšαŸ”"
32
- )
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
33
 
34
- iface.launch()
 
1
  import gradio as gr
2
  from transformers import pipeline
3
 
4
+ # Load model from Hugging Face Hub
5
  pipe = pipeline(
6
  "text-generation",
7
  model="Pisethan/khmer-lesson-model",
8
  tokenizer="Pisethan/khmer-lesson-model"
9
  )
10
 
11
+ # Define dropdown options
12
+ grade_options = ["1", "2", "3", "4", "5", "6"]
13
+ topic_options = ["Addition", "Subtraction", "Counting", "Number Recognition", "Multiplication", "Division"]
14
+ level_options = ["Beginner", "Intermediate", "Advanced"]
15
+
16
+ # Function: single lesson
17
  def generate_lesson(grade, topic, level):
18
  prompt = f"""Generate a Khmer math lesson plan.
19
 
 
23
  output = pipe(prompt, max_new_tokens=200, do_sample=True, temperature=0.7)
24
  return output[0]['generated_text']
25
 
26
+ # Function: auto generate all combinations
27
+ def generate_all_lessons():
28
+ results = ""
29
+ for grade in grade_options:
30
+ for topic in topic_options:
31
+ for level in level_options:
32
+ prompt = f"""Generate a Khmer math lesson plan.
33
+
34
+ Grade: {grade}
35
+ Topic: {topic}
36
+ TaRL Level: {level}"""
37
+ output = pipe(prompt, max_new_tokens=200, do_sample=True, temperature=0.7)
38
+ lesson = output[0]["generated_text"]
39
+ results += f"πŸ”Ή αžαŸ’αž“αžΆαž€αŸ‹ {grade} | {topic} | {level}\n{lesson}\n\n{'-'*50}\n\n"
40
+ return results
41
+
42
+ # Gradio UI layout
43
+ with gr.Blocks() as demo:
44
+ gr.Markdown("## πŸ€– αž’αŸ’αž“αž€αž‡αŸ†αž“αž½αž™αž”αž„αŸ’αž€αžΎαžαž˜αŸαžšαŸ€αž“αž‚αžŽαž·αžαžœαž·αž‘αŸ’αž™αžΆ")
45
+ gr.Markdown("αž‡αŸ’αžšαžΎαžŸαžšαžΎαžŸαžαŸ’αž“αžΆαž€αŸ‹ αž”αŸ’αžšαž’αžΆαž“αž”αž‘ αž“αž·αž„αž€αž˜αŸ’αžšαž·αžαžŸαž·αžŸαŸ’αžŸ αžšαž½αž…αž…αž»αž…αž”αž„αŸ’αž€αžΎαžαž˜αŸαžšαŸ€αž“αŸ” αž¬αž…αž»αž…αž”αŸŠαžΌαžαž»αž„αžαžΆαž„αž€αŸ’αžšαŸ„αž˜αžŸαž˜αŸ’αžšαžΆαž”αŸ‹αž”αž„αŸ’αž€αžΎαžαž˜αŸαžšαŸ€αž“αž‘αžΆαŸ†αž„αž’αžŸαŸ‹αŸ”")
46
+
47
+ with gr.Row():
48
+ grade = gr.Dropdown(choices=grade_options, label="αžαŸ’αž“αžΆαž€αŸ‹ (Grade)", value="1")
49
+ topic = gr.Dropdown(choices=topic_options, label="αž”αŸ’αžšαž’αžΆαž“αž”αž‘ (Topic)", value="Addition")
50
+ level = gr.Dropdown(choices=level_options, label="αž€αž˜αŸ’αžšαž·αžαžŸαž·αžŸαŸ’αžŸ (TaRL Level)", value="Beginner")
51
+
52
+ output_box = gr.Textbox(label="πŸ“˜ Khmer Lesson Plan", lines=12)
53
+
54
+ with gr.Row():
55
+ generate_btn = gr.Button("βœ… αž”αž„αŸ’αž€αžΎαžαž˜αŸαžšαŸ€αž“")
56
+ generate_all_btn = gr.Button("🧠 αž”αž„αŸ’αž€αžΎαžαž˜αŸαžšαŸ€αž“αž‘αžΆαŸ†αž„αž’αžŸαŸ‹")
57
+ clear_btn = gr.Button("🧹 αžŸαž˜αŸ’αž’αžΆαž")
58
+
59
+ generate_btn.click(fn=generate_lesson, inputs=[grade, topic, level], outputs=output_box)
60
+ generate_all_btn.click(fn=generate_all_lessons, outputs=output_box)
61
+ clear_btn.click(fn=lambda: "", outputs=output_box)
62
 
63
+ demo.launch()