Pisethan commited on
Commit
3eda1ab
Β·
verified Β·
1 Parent(s): 0cd513f

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +44 -40
app.py CHANGED
@@ -3,9 +3,12 @@ import gradio as gr
3
  import torch
4
  from transformers import pipeline
5
 
6
- @GPU # πŸ‘ˆ REQUIRED to activate GPU on Hugging Face ZeroGPU
7
  def main():
 
8
  device = 0 if torch.cuda.is_available() else -1
 
 
9
  pipe = pipeline(
10
  "text-generation",
11
  model="Pisethan/khmer-lesson-model-v2",
@@ -13,14 +16,14 @@ def main():
13
  device=device
14
  )
15
 
16
- # βœ… Dropdown choices
17
- grade_options = ["1", "2", "3", "4", "5", "6"]
18
- topic_options = ["Addition", "Subtraction", "Counting", "Number Recognition", "Multiplication", "Division"]
19
- level_options = ["Beginner", "Intermediate", "Advanced"]
20
 
21
- # βœ… Function: single lesson
22
- def generate_lesson(grade, topic, level):
23
- prompt = f"""Generate a Khmer math lesson plan with the following structure:
24
 
25
  Lesson Title:
26
  Objective:
@@ -32,47 +35,48 @@ Grade: {grade}
32
  Topic: {topic}
33
  TaRL Level: {level}"""
34
 
35
- output = pipe(prompt, max_new_tokens=300, temperature=0.7, do_sample=True)
36
- return output[0]['generated_text']
37
 
38
- # βœ… Function: all combinations
39
- def generate_all_lessons():
40
- results = ""
41
- for grade in grade_options:
42
- for topic in topic_options:
43
- for level in level_options:
44
- prompt = f"""Generate a Khmer math lesson plan.
45
 
46
  Grade: {grade}
47
  Topic: {topic}
48
  TaRL Level: {level}"""
49
- output = pipe(prompt, max_new_tokens=200, do_sample=True, temperature=0.7)
50
- lesson = output[0]["generated_text"]
51
- results += f"πŸ”Ή αžαŸ’αž“αžΆαž€αŸ‹ {grade} | {topic} | {level}\n{lesson}\n\n{'-'*50}\n\n"
52
- return results
53
 
54
- # βœ… Gradio UI
55
- with gr.Blocks() as demo:
56
- gr.Markdown("## πŸ€– αž’αŸ’αž“αž€αž‡αŸ†αž“αž½αž™αž”αž„αŸ’αž€αžΎαžαž˜αŸαžšαŸ€αž“αž‚αžŽαž·αžαžœαž·αž‘αŸ’αž™αžΆ")
57
- gr.Markdown("αž‡αŸ’αžšαžΎαžŸαžšαžΎαžŸαžαŸ’αž“αžΆαž€αŸ‹ αž”αŸ’αžšαž’αžΆαž“αž”αž‘ αž“αž·αž„αž€αž˜αŸ’αžšαž·αžαžŸαž·αžŸαŸ’αžŸ αžšαž½αž…αž…αž»αž…αž”αž„αŸ’αž€αžΎαžαž˜αŸαžšαŸ€αž“αŸ” αž¬αž…αž»αž…αž”αŸŠαžΌαžαž»αž„αžαžΆαž„αž€αŸ’αžšαŸ„αž˜αžŸαž˜αŸ’αžšαžΆαž”αŸ‹αž”αž„αŸ’αž€αžΎαžαž˜αŸαžšαŸ€αž“αž‘αžΆαŸ†αž„αž’αžŸαŸ‹αŸ”")
58
 
59
- with gr.Row():
60
- grade = gr.Dropdown(choices=grade_options, label="αžαŸ’αž“αžΆαž€αŸ‹ (Grade)", value="1")
61
- topic = gr.Dropdown(choices=topic_options, label="αž”αŸ’αžšαž’αžΆαž“αž”αž‘ (Topic)", value="Addition")
62
- level = gr.Dropdown(choices=level_options, label="αž€αž˜αŸ’αžšαž·αžαžŸαž·αžŸαŸ’αžŸ (TaRL Level)", value="Beginner")
63
 
64
- output_box = gr.Textbox(label="πŸ“˜ Khmer Lesson Plan", lines=12)
65
 
66
- with gr.Row():
67
- generate_btn = gr.Button("βœ… αž”αž„αŸ’αž€αžΎαžαž˜αŸαžšαŸ€αž“")
68
- generate_all_btn = gr.Button("🧠 αž”αž„αŸ’αž€αžΎαžαž˜αŸαžšαŸ€αž“αž‘αžΆαŸ†αž„αž’αžŸαŸ‹")
69
- clear_btn = gr.Button("🧹 αžŸαž˜αŸ’αž’αžΆαž")
70
 
71
- generate_btn.click(fn=generate_lesson, inputs=[grade, topic, level], outputs=output_box)
72
- generate_all_btn.click(fn=generate_all_lessons, outputs=output_box)
73
- clear_btn.click(fn=lambda: "", outputs=output_box)
74
 
75
- # βœ… Launch app with public link
76
- demo.launch(share=True)
77
 
78
- main()
 
 
3
  import torch
4
  from transformers import pipeline
5
 
6
+ @GPU # πŸ‘ˆ REQUIRED for Hugging Face ZeroGPU Spaces
7
  def main():
8
+ # βœ… Select GPU if available
9
  device = 0 if torch.cuda.is_available() else -1
10
+
11
+ # βœ… Load model pipeline
12
  pipe = pipeline(
13
  "text-generation",
14
  model="Pisethan/khmer-lesson-model-v2",
 
16
  device=device
17
  )
18
 
19
+ # βœ… Dropdown values
20
+ grade_options = ["1", "2", "3", "4", "5", "6"]
21
+ topic_options = ["Addition", "Subtraction", "Counting", "Number Recognition", "Multiplication", "Division"]
22
+ level_options = ["Beginner", "Intermediate", "Advanced"]
23
 
24
+ # βœ… Generate one lesson
25
+ def generate_lesson(grade, topic, level):
26
+ prompt = f"""Generate a Khmer math lesson plan with the following structure:
27
 
28
  Lesson Title:
29
  Objective:
 
35
  Topic: {topic}
36
  TaRL Level: {level}"""
37
 
38
+ output = pipe(prompt, max_new_tokens=300, temperature=0.7, do_sample=True)
39
+ return output[0]['generated_text']
40
 
41
+ # βœ… Generate all combinations
42
+ def generate_all_lessons():
43
+ results = ""
44
+ for grade in grade_options:
45
+ for topic in topic_options:
46
+ for level in level_options:
47
+ prompt = f"""Generate a Khmer math lesson plan.
48
 
49
  Grade: {grade}
50
  Topic: {topic}
51
  TaRL Level: {level}"""
52
+ output = pipe(prompt, max_new_tokens=200, do_sample=True, temperature=0.7)
53
+ lesson = output[0]["generated_text"]
54
+ results += f"πŸ”Ή αžαŸ’αž“αžΆαž€αŸ‹ {grade} | {topic} | {level}\n{lesson}\n\n{'-'*50}\n\n"
55
+ return results
56
 
57
+ # βœ… Gradio UI
58
+ with gr.Blocks() as demo:
59
+ gr.Markdown("## πŸ€– αž’αŸ’αž“αž€αž‡αŸ†αž“αž½αž™αž”αž„αŸ’αž€αžΎαžαž˜αŸαžšαŸ€αž“αž‚αžŽαž·αžαžœαž·αž‘αŸ’αž™αžΆ")
60
+ gr.Markdown("αž‡αŸ’αžšαžΎαžŸαžšαžΎαžŸαžαŸ’αž“αžΆαž€αŸ‹ αž”αŸ’αžšαž’αžΆαž“αž”αž‘ αž“αž·αž„αž€αž˜αŸ’αžšαž·αžαžŸαž·αžŸαŸ’αžŸ αžšαž½αž…αž…αž»αž…αž”αž„αŸ’αž€αžΎαžαž˜αŸαžšαŸ€αž“αŸ” αž¬αž…αž»αž…αž”αŸŠαžΌαžαž»αž„αžαžΆαž„αž€αŸ’αžšαŸ„αž˜αžŸαž˜αŸ’αžšαžΆαž”αŸ‹αž”αž„αŸ’αž€αžΎαžαž˜αŸαžšαŸ€αž“αž‘αžΆαŸ†αž„αž’αžŸαŸ‹αŸ”")
61
 
62
+ with gr.Row():
63
+ grade = gr.Dropdown(choices=grade_options, label="αžαŸ’αž“αžΆαž€αŸ‹ (Grade)", value="1")
64
+ topic = gr.Dropdown(choices=topic_options, label="αž”αŸ’αžšαž’αžΆαž“αž”αž‘ (Topic)", value="Addition")
65
+ level = gr.Dropdown(choices=level_options, label="αž€αž˜αŸ’αžšαž·αžαžŸαž·αžŸαŸ’αžŸ (TaRL Level)", value="Beginner")
66
 
67
+ output_box = gr.Textbox(label="πŸ“˜ Khmer Lesson Plan", lines=12)
68
 
69
+ with gr.Row():
70
+ generate_btn = gr.Button("βœ… αž”αž„αŸ’αž€αžΎαžαž˜αŸαžšαŸ€αž“")
71
+ generate_all_btn = gr.Button("🧠 αž”αž„αŸ’αž€αžΎαžαž˜αŸαžšαŸ€αž“αž‘αžΆαŸ†αž„αž’αžŸαŸ‹")
72
+ clear_btn = gr.Button("🧹 αžŸαž˜αŸ’αž’αžΆαž")
73
 
74
+ generate_btn.click(fn=generate_lesson, inputs=[grade, topic, level], outputs=output_box)
75
+ generate_all_btn.click(fn=generate_all_lessons, outputs=output_box)
76
+ clear_btn.click(fn=lambda: "", outputs=output_box)
77
 
78
+ # βœ… Run with public URL
79
+ demo.launch(share=True)
80
 
81
+ # βœ… Call main
82
+ main()