Pisethan commited on
Commit
c9fec7f
Β·
verified Β·
1 Parent(s): e6a070e

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +15 -10
app.py CHANGED
@@ -1,13 +1,15 @@
1
  import gradio as gr
2
  from transformers import pipeline
3
  import torch
 
4
 
5
- # Dropdown values
6
  grade_options = ["1", "2", "3", "4", "5", "6"]
7
  topic_options = ["Addition", "Subtraction", "Counting", "Number Recognition", "Multiplication", "Division"]
8
  level_options = ["Beginner", "Intermediate", "Advanced"]
9
 
10
- def load_pipeline():
 
11
  device = 0 if torch.cuda.is_available() else -1
12
  pipe = pipeline(
13
  "text-generation",
@@ -15,11 +17,7 @@ def load_pipeline():
15
  tokenizer="Pisethan/khmer-lesson-model",
16
  device=device
17
  )
18
- return pipe
19
 
20
- # Function: generate one
21
- def generate_lesson(grade, topic, level):
22
- pipe = load_pipeline()
23
  prompt = f"""Generate a Khmer math lesson plan with the following structure:
24
 
25
  Lesson Title:
@@ -35,9 +33,16 @@ TaRL Level: {level}"""
35
  output = pipe(prompt, max_new_tokens=300, temperature=0.7, do_sample=True)
36
  return output[0]['generated_text']
37
 
38
- # Function: generate all combos
39
  def generate_all_lessons():
40
- pipe = load_pipeline()
 
 
 
 
 
 
 
41
  results = ""
42
  for grade in grade_options:
43
  for topic in topic_options:
@@ -51,7 +56,7 @@ TaRL Level: {level}"""
51
  results += f"πŸ”Ή αžαŸ’αž“αžΆαž€αŸ‹ {grade} | {topic} | {level}\n{output[0]['generated_text']}\n\n{'-'*50}\n\n"
52
  return results
53
 
54
- # Gradio UI
55
  with gr.Blocks() as demo:
56
  gr.Markdown("## πŸ€– αž’αŸ’αž“αž€αž‡αŸ†αž“αž½αž™αž”αž„αŸ’αž€αžΎαžαž˜αŸαžšαŸ€αž“αž‚αžŽαž·αžαžœαž·αž‘αŸ’αž™αžΆ")
57
  gr.Markdown("αž‡αŸ’αžšαžΎαžŸαžšαžΎαžŸαžαŸ’αž“αžΆαž€αŸ‹ αž”αŸ’αžšαž’αžΆαž“αž”αž‘ αž“αž·αž„αž€αž˜αŸ’αžšαž·αžαžŸαž·αžŸαŸ’αžŸ αžšαž½αž…αž…αž»αž…αž”αž„αŸ’αž€αžΎαžαž˜αŸαžšαŸ€αž“αŸ” αž¬αž…αž»αž…αž”αŸŠαžΌαžαž»αž„αžαžΆαž„αž€αŸ’αžšαŸ„αž˜αžŸαž˜αŸ’αžšαžΆαž”αŸ‹αž”αž„αŸ’αž€αžΎαžαž˜αŸαžšαŸ€αž“αž‘αžΆαŸ†αž„αž’αžŸαŸ‹αŸ”")
@@ -72,5 +77,5 @@ with gr.Blocks() as demo:
72
  gen_all_btn.click(fn=generate_all_lessons, outputs=output_box)
73
  clear_btn.click(fn=lambda: "", outputs=output_box)
74
 
75
- # ❌ Don't use share=True inside HF Space
76
  demo.launch()
 
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"]
8
  topic_options = ["Addition", "Subtraction", "Counting", "Number Recognition", "Multiplication", "Division"]
9
  level_options = ["Beginner", "Intermediate", "Advanced"]
10
 
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",
 
17
  tokenizer="Pisethan/khmer-lesson-model",
18
  device=device
19
  )
 
20
 
 
 
 
21
  prompt = f"""Generate a Khmer math lesson plan with the following structure:
22
 
23
  Lesson Title:
 
33
  output = pipe(prompt, max_new_tokens=300, temperature=0.7, do_sample=True)
34
  return output[0]['generated_text']
35
 
36
+ @spaces.GPU
37
  def generate_all_lessons():
38
+ device = 0 if torch.cuda.is_available() else -1
39
+ pipe = pipeline(
40
+ "text-generation",
41
+ model="Pisethan/khmer-lesson-model-v2",
42
+ tokenizer="Pisethan/khmer-lesson-model",
43
+ device=device
44
+ )
45
+
46
  results = ""
47
  for grade in grade_options:
48
  for topic in topic_options:
 
56
  results += f"πŸ”Ή αžαŸ’αž“αžΆαž€αŸ‹ {grade} | {topic} | {level}\n{output[0]['generated_text']}\n\n{'-'*50}\n\n"
57
  return results
58
 
59
+ # Gradio Interface
60
  with gr.Blocks() as demo:
61
  gr.Markdown("## πŸ€– αž’αŸ’αž“αž€αž‡αŸ†αž“αž½αž™αž”αž„αŸ’αž€αžΎαžαž˜αŸαžšαŸ€αž“αž‚αžŽαž·αžαžœαž·αž‘αŸ’αž™αžΆ")
62
  gr.Markdown("αž‡αŸ’αžšαžΎαžŸαžšαžΎαžŸαžαŸ’αž“αžΆαž€αŸ‹ αž”αŸ’αžšαž’αžΆαž“αž”αž‘ αž“αž·αž„αž€αž˜αŸ’αžšαž·αžαžŸαž·αžŸαŸ’αžŸ αžšαž½αž…αž…αž»αž…αž”αž„αŸ’αž€αžΎαžαž˜αŸαžšαŸ€αž“αŸ” αž¬αž…αž»αž…αž”αŸŠαžΌαžαž»αž„αžαžΆαž„αž€αŸ’αžšαŸ„αž˜αžŸαž˜αŸ’αžšαžΆαž”αŸ‹αž”αž„αŸ’αž€αžΎαžαž˜αŸαžšαŸ€αž“αž‘αžΆαŸ†αž„αž’αžŸαŸ‹αŸ”")
 
77
  gen_all_btn.click(fn=generate_all_lessons, outputs=output_box)
78
  clear_btn.click(fn=lambda: "", outputs=output_box)
79
 
80
+ demo.queue() # Required for @spaces.GPU
81
  demo.launch()