Pisethan commited on
Commit
07f129c
Β·
verified Β·
1 Parent(s): cd0448f

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +40 -23
app.py CHANGED
@@ -1,7 +1,7 @@
1
  import gradio as gr
2
- from transformers import pipeline
3
  import torch
4
- import spaces # required!
5
 
6
  # Define dropdown options
7
  grade_options = ["1", "2", "3", "4", "5", "6"]
@@ -11,10 +11,11 @@ level_options = ["Beginner", "Intermediate", "Advanced"]
11
  @spaces.GPU
12
  def generate_lesson(grade, topic, level):
13
  device = 0 if torch.cuda.is_available() else -1
 
14
  pipe = pipeline(
15
  "text-generation",
16
  model="Pisethan/khmer-lesson-model-v2",
17
- tokenizer="Pisethan/khmer-lesson-model",
18
  device=device
19
  )
20
 
@@ -34,24 +35,25 @@ Topic: {topic}
34
  TaRL Level: {level}
35
  """
36
 
37
-
38
  output = pipe(
39
- prompt,
40
- max_new_tokens=300,
41
- temperature=0.7,
42
- do_sample=True,
43
- eos_token_id=tokenizer.eos_token_id # helps terminate early
44
- )
45
 
46
  return output[0]['generated_text']
47
 
 
48
  @spaces.GPU
49
  def generate_all_lessons():
50
  device = 0 if torch.cuda.is_available() else -1
 
51
  pipe = pipeline(
52
  "text-generation",
53
  model="Pisethan/khmer-lesson-model-v2",
54
- tokenizer="Pisethan/khmer-lesson-model",
55
  device=device
56
  )
57
 
@@ -59,15 +61,32 @@ def generate_all_lessons():
59
  for grade in grade_options:
60
  for topic in topic_options:
61
  for level in level_options:
62
- prompt = f"""Generate a Khmer math lesson plan.
 
 
 
 
 
 
 
 
 
63
 
64
  Grade: {grade}
65
  Topic: {topic}
66
- TaRL Level: {level}"""
67
- output = pipe(prompt, max_new_tokens=200, temperature=0.7, do_sample=True)
 
 
 
 
 
 
 
68
  results += f"πŸ”Ή αžαŸ’αž“αžΆαž€αŸ‹ {grade} | {topic} | {level}\n{output[0]['generated_text']}\n\n{'-'*50}\n\n"
69
  return results
70
 
 
71
  # Gradio Interface
72
  with gr.Blocks() as demo:
73
  gr.Markdown("## πŸ€– αž’αŸ’αž“αž€αž‡αŸ†αž“αž½αž™αž”αž„αŸ’αž€αžΎαžαž˜αŸαžšαŸ€αž“αž‚αžŽαž·αžαžœαž·αž‘αŸ’αž™αžΆ")
@@ -79,14 +98,12 @@ with gr.Blocks() as demo:
79
  level = gr.Dropdown(choices=level_options, label="αž€αž˜αŸ’αžšαž·αžαžŸαž·αžŸαŸ’αžŸ (TaRL Level)", value="Beginner")
80
 
81
  output_box = gr.Textbox(
82
- label="πŸ“˜ Khmer Lesson Plan",
83
- lines=20,
84
- max_lines=200,
85
- show_copy_button=True,
86
- autoscroll=True
87
- )
88
-
89
-
90
 
91
  with gr.Row():
92
  gen_btn = gr.Button("βœ… αž”αž„αŸ’αž€αžΎαžαž˜αŸαžšαŸ€αž“")
@@ -97,5 +114,5 @@ with gr.Blocks() as demo:
97
  gen_all_btn.click(fn=generate_all_lessons, outputs=output_box)
98
  clear_btn.click(fn=lambda: "", outputs=output_box)
99
 
100
- demo.queue() # Required for @spaces.GPU
101
  demo.launch()
 
1
  import gradio as gr
2
+ from transformers import pipeline, AutoTokenizer
3
  import torch
4
+ import spaces # required for ZeroGPU
5
 
6
  # Define dropdown options
7
  grade_options = ["1", "2", "3", "4", "5", "6"]
 
11
  @spaces.GPU
12
  def generate_lesson(grade, topic, level):
13
  device = 0 if torch.cuda.is_available() else -1
14
+ tokenizer = AutoTokenizer.from_pretrained("Pisethan/khmer-lesson-model")
15
  pipe = pipeline(
16
  "text-generation",
17
  model="Pisethan/khmer-lesson-model-v2",
18
+ tokenizer=tokenizer,
19
  device=device
20
  )
21
 
 
35
  TaRL Level: {level}
36
  """
37
 
 
38
  output = pipe(
39
+ prompt,
40
+ max_new_tokens=300,
41
+ temperature=0.7,
42
+ do_sample=True,
43
+ eos_token_id=tokenizer.eos_token_id
44
+ )
45
 
46
  return output[0]['generated_text']
47
 
48
+
49
  @spaces.GPU
50
  def generate_all_lessons():
51
  device = 0 if torch.cuda.is_available() else -1
52
+ tokenizer = AutoTokenizer.from_pretrained("Pisethan/khmer-lesson-model")
53
  pipe = pipeline(
54
  "text-generation",
55
  model="Pisethan/khmer-lesson-model-v2",
56
+ tokenizer=tokenizer,
57
  device=device
58
  )
59
 
 
61
  for grade in grade_options:
62
  for topic in topic_options:
63
  for level in level_options:
64
+ prompt = f"""
65
+ You are a lesson planning assistant. Return only one structured Khmer math lesson plan with these fields:
66
+
67
+ Lesson Title:
68
+ Objective:
69
+ Activity:
70
+ Instruction (Khmer):
71
+ Materials:
72
+
73
+ Please follow the structure exactly.
74
 
75
  Grade: {grade}
76
  Topic: {topic}
77
+ TaRL Level: {level}
78
+ """
79
+ output = pipe(
80
+ prompt,
81
+ max_new_tokens=300,
82
+ temperature=0.7,
83
+ do_sample=True,
84
+ eos_token_id=tokenizer.eos_token_id
85
+ )
86
  results += f"πŸ”Ή αžαŸ’αž“αžΆαž€αŸ‹ {grade} | {topic} | {level}\n{output[0]['generated_text']}\n\n{'-'*50}\n\n"
87
  return results
88
 
89
+
90
  # Gradio Interface
91
  with gr.Blocks() as demo:
92
  gr.Markdown("## πŸ€– αž’αŸ’αž“αž€αž‡αŸ†αž“αž½αž™αž”αž„αŸ’αž€αžΎαžαž˜αŸαžšαŸ€αž“αž‚αžŽαž·αžαžœαž·αž‘αŸ’αž™αžΆ")
 
98
  level = gr.Dropdown(choices=level_options, label="αž€αž˜αŸ’αžšαž·αžαžŸαž·αžŸαŸ’αžŸ (TaRL Level)", value="Beginner")
99
 
100
  output_box = gr.Textbox(
101
+ label="πŸ“˜ Khmer Lesson Plan",
102
+ lines=20,
103
+ max_lines=200,
104
+ show_copy_button=True,
105
+ autoscroll=True
106
+ )
 
 
107
 
108
  with gr.Row():
109
  gen_btn = gr.Button("βœ… αž”αž„αŸ’αž€αžΎαžαž˜αŸαžšαŸ€αž“")
 
114
  gen_all_btn.click(fn=generate_all_lessons, outputs=output_box)
115
  clear_btn.click(fn=lambda: "", outputs=output_box)
116
 
117
+ demo.queue() # Required for ZeroGPU
118
  demo.launch()