ll7098ll commited on
Commit
e39486f
·
verified ·
1 Parent(s): d89b606

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +62 -34
app.py CHANGED
@@ -24,44 +24,43 @@ model = genai.GenerativeModel(
24
  # 프롬프트 설정
25
  SYSTEM_PROMPT = """
26
  당신은 교수학습 활동 설계 전문가, 교과교육 내용 전문가, 교육공학자입니다.
27
- 선생님들이 활동 컨셉 소개를 입력하면 활동을 자세하게 설명해주세요..
28
- 다음은 활동 설계에 필요한 정보입니다.
29
 
30
- **활동 구성 요소:**
31
- 1. 활동 컨셉 및 소개
32
- 2. 활동 목표
33
- 3. 활동 단계별 안내
34
- - 1단계: 1단계 활동 안내
35
- - 2단계: 2단계 활동 안내
36
- - 3단계: 3단계 활동 안내
37
- - 4단계: 4단계 활동 안내...
38
- 4. 활동 준비물 및 기구
39
- 5. 활동을 위한 자료
40
- - 활동에 필요한 자료
41
- - 추가 추천 자료
42
- 6. 활동의 유의점
43
- - 학생 입장 유의점
44
- - 교사 입장 유의점
45
- 7. 학생에게 제공할 활동 안내 자료
46
  * 활동 안내 자료는 초등학생이 이해할 수 있도록 최대한 구체적이고, 단계적, 명시적으로 안내해주세요.
47
  """
48
 
49
- def generate_curriculum(achievement_standard):
50
  """
51
- 활동 컨셉을 입력받아 활동을 생성합니다.
52
- 아웃풋을 실시간으로 출력합니다.
53
 
54
  Args:
55
- achievement_standard (str): 활동 컨셉
 
56
 
57
  Returns:
58
- str: 생성된 활동
59
  """
60
 
61
  prompt = [
62
  SYSTEM_PROMPT,
63
- f"**활동 컨셉:** {achievement_standard}",
64
- "**활동:**",
 
65
  ]
66
 
67
  response = model.generate_content(prompt, stream=True)
@@ -69,18 +68,47 @@ def generate_curriculum(achievement_standard):
69
  for token in response:
70
  chunk = token.text
71
  collected_text += chunk
72
- yield collected_text # 실시간 출력을 위해 yield 사용
73
- time.sleep(0.03) # 출력 속도 조절
74
 
75
- # Gradio 인터페이스 설정
76
  iface = gr.Interface(
77
- fn=generate_curriculum,
78
- inputs=gr.Textbox(lines=3, label="활동 컨셉 및 소개 입력"),
79
- outputs=gr.Textbox(lines=10, label="학습 활동"),
80
- title="학습 활동 설계 도우미",
81
- description="선생님이 활동의 컨셉을 입력하시면 활동을 구체적으로 설계해줍니다.",
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
82
  examples=[
83
- ["국경, 지형, 자원, 인구정보, 국가 간 관계가 표시된 지도와 시나리오를 주고, 나라 간 국경선을 정하는 활동을 시뮬레이션 게임 모형을 활용해 하고 싶어."],
 
84
  ]
85
  )
86
 
 
24
  # 프롬프트 설정
25
  SYSTEM_PROMPT = """
26
  당신은 교수학습 활동 설계 전문가, 교과교육 내용 전문가, 교육공학자입니다.
27
+ 선생님들이 학습 주제와 사고 루틴을 입력하면, 해당 주제에 적용 가능한 사고 루틴 활동 예시를 상세하게 설명해주세요.
 
28
 
29
+ **활동 예시 구성 요소:**
30
+ 1. 학습 주제
31
+ 2. 적용할 사고 루틴
32
+ 3. 활동 목표
33
+ 4. 활동 단계별 안내
34
+ - 단계별로 사고 루틴을 어떻게 활용하는지 자세하게 설명
35
+ - 예시 질문 포함
36
+ 5. 활동 준비물 기구
37
+ 6. 활동을 위한 자료
38
+ - 활동에 필요한 자료
39
+ - 추가 추천 자료
40
+ 7. 활동의 유의점
41
+ - 학생 입장 유의점
42
+ - 교사 입장 유의점
43
+ 8. 학생에게 제공할 활동 안내 자료
 
44
  * 활동 안내 자료는 초등학생이 이해할 수 있도록 최대한 구체적이고, 단계적, 명시적으로 안내해주세요.
45
  """
46
 
47
+ def generate_thinking_routine_example(topic, thinking_routine):
48
  """
49
+ 학습 주제와 사고 루틴을 입력받아 활동 예시를 생성합니다.
 
50
 
51
  Args:
52
+ topic (str): 학습 주제
53
+ thinking_routine (str): 적용할 사고 루틴
54
 
55
  Returns:
56
+ str: 생성된 활동 예시
57
  """
58
 
59
  prompt = [
60
  SYSTEM_PROMPT,
61
+ f"**학습 주제:** {topic}",
62
+ f"**적용할 사고 루틴:** {thinking_routine}",
63
+ "**활동 예시:**",
64
  ]
65
 
66
  response = model.generate_content(prompt, stream=True)
 
68
  for token in response:
69
  chunk = token.text
70
  collected_text += chunk
71
+ yield collected_text
72
+ time.sleep(0.03)
73
 
74
+ # Gradio 인터페이스 설정 - 드롭다운 메뉴 추가
75
  iface = gr.Interface(
76
+ fn=generate_thinking_routine_example,
77
+ inputs=[
78
+ gr.Textbox(lines=2, label="학습 주제 입력"),
79
+ gr.Dropdown(
80
+ choices=[
81
+ "See-Think-Wonder",
82
+ "Zoom In",
83
+ "Think-Puzzle-Explore",
84
+ "Chalk Talk",
85
+ "321 Bridge",
86
+ "Compass Points",
87
+ "Explanation Game",
88
+ "Headlines",
89
+ "CSI: Color, Symbol, Image",
90
+ "Generate-Sort-Connect-Elaborate-Concept Maps",
91
+ "Connect-Extend-Challenge",
92
+ "The 4 C's",
93
+ "Micro Lab",
94
+ "I used to think…Now I think…",
95
+ "What makes you say that?",
96
+ "Circle Viewpoints",
97
+ "Step Inside",
98
+ "Red Light, Yellow Light",
99
+ "Claim Support Question",
100
+ "Tug of War",
101
+ "Word-Phrase-Sentence"
102
+ ],
103
+ label="사고 루틴 선택"
104
+ ),
105
+ ],
106
+ outputs=gr.Textbox(lines=15, label="사고 루틴 활용 예시"),
107
+ title="학습 활동 설계 도우미: 사고 루틴 활용 편",
108
+ description="선생님이 학습 주제와 사고 루틴을 선택하시면, 해당 주제에 적용 가능한 사고 루틴 활동 예시를 보여줍니다.",
109
  examples=[
110
+ ["광합성", "See-Think-Wonder"],
111
+ ["조선 시대의 과학 기술", "Think-Puzzle-Explore"],
112
  ]
113
  )
114