ll7098ll commited on
Commit
c3e5e8e
·
verified ·
1 Parent(s): 921ef15

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +59 -95
app.py CHANGED
@@ -1,113 +1,77 @@
1
  import os
2
- import time
3
-
4
  import google.generativeai as genai
5
  import gradio as gr
6
 
7
- # Google Gemini API 키 설정
8
  genai.configure(api_key=os.environ["GEMINI_API_KEY"])
9
 
10
- # 모델 설정
11
  generation_config = {
12
- "temperature": 1,
13
- "top_p": 0.95,
14
- "top_k": 64,
15
- "max_output_tokens": 15000,
16
- "response_mime_type": "text/plain",
17
  }
18
 
19
  model = genai.GenerativeModel(
20
- model_name="gemini-1.5-pro-exp-0801",
21
- generation_config=generation_config,
22
  )
23
 
24
- # 프롬프트 설정
25
- SYSTEM_PROMPT = """
26
- 당신은 교수학습 활동 설계 전문가, 교과교육 내용 전문가, 교육공학자입니다.
27
- 선생님들이 학습 주제와 사고 루틴을 입력하면, 해당 주제에 적용 가능한 사고 루틴 활동 예시를 상세하게 설명해주세요.
28
- **활동 예시 구성 요소:**
29
- 1. 학습 주제
30
- 2. 적용할 사고 루틴 및 사고 루틴에 대한 설명명
31
- 3. 활동 목표
32
- 4. 활동 단계별 안내
33
- - 각 단계별로 사고 루틴을 어떻게 활용하는지 자세하게 설명
34
- - 예시 질문 포함
35
- 5. 활동 준비물 및 기구
36
- 6. 활동을 위한 자료
37
- - 활동에 필요한 자료
38
- - 추가 추천 자료
39
- 7. 활동의 유의점
40
- - 학생 입장 유의점
41
- - 교사 입장 유의점
42
- 8. 학생에게 제공할 활동 안내 자료
43
- * 활동 안내 자료는 초등학생이 이해할 있도록 최대한 구체적이고, 단계적, 명시적으로 안내해주세요.
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
44
  """
45
 
46
- def generate_thinking_routine_example(topic, thinking_routine):
47
- """
48
- 학습 주제와 사고 루틴을 입력받아 활동 예시를 생성합니다.
49
- Args:
50
- topic (str): 학습 주제
51
- thinking_routine (str): 적용할 사고 루틴
52
- Returns:
53
- str: 생성된 활동 예시
54
- """
55
-
56
- prompt = [
57
- SYSTEM_PROMPT,
58
- f"**학습 주제:** {topic}",
59
- f"**적용할 사고 루틴:** {thinking_routine}",
60
- "**활동 예시:**",
61
- ]
62
-
63
- response = model.generate_content(prompt, stream=True)
64
- collected_text = ""
65
- for token in response:
66
- chunk = token.text
67
- collected_text += chunk
68
- yield collected_text
69
- time.sleep(0.03)
70
-
71
- # Gradio 인터페이스 설정 - 드롭다운 메뉴 추가
72
  iface = gr.Interface(
73
- fn=generate_thinking_routine_example,
74
- inputs=[
75
- gr.Textbox(lines=2, label="학습 주제 입력"),
76
- gr.Dropdown(
77
- choices=[
78
- "See-Think-Wonder (보고-생각하고-궁금해하기)",
79
- "Zoom In (확대)",
80
- "Think-Puzzle-Explore (생각-궁금-탐구)",
81
- "Chalk Talk (침묵 대화)",
82
- "321 Bridge (3-2-1 다리 짓기)",
83
- "Compass Points (나침반)",
84
- "Explanation Game (설명 게임)",
85
- "Headlines (헤드라인)",
86
- "CSI: Color, Symbol, Image (색상, 기호, 이미지)",
87
- "Generate-Sort-Connect-Elaborate-Concept Maps (개념도)",
88
- "Connect-Extend-Challenge (연결-확장-도전)",
89
- "The 4 C's (4가지 C)",
90
- "Micro Lab (미니 실험)",
91
- "I used to think…Now I think… (예전엔 … 라고 생각했지만, 지금은 … 라고 생각해)",
92
- "What makes you say that? (무엇 때문에 그렇게 생각하니?)",
93
- "Circle Viewpoints (다양한 관점)",
94
- "Step Inside (입장 바꿔 생각하기)",
95
- "Red Light, Yellow Light, Green Light (빨간불, 노란불, 초록불)",
96
- "Claim Support Question (주장-근거-질문)",
97
- "Tug of War (줄다리기)",
98
- "Word-Phrase-Sentence (단어-구-문장)",
99
- "관찰-비교대조-분류"
100
- ],
101
- label="사고 루틴 선택"
102
- ),
103
- ],
104
- outputs=gr.Textbox(lines=15, label="사고 루틴 활용 예시"),
105
- title="학습 활동 설계 도우미: 사고 루틴 활용 편",
106
- description="선생님이 학습 주제와 사고 루틴을 선택하시면, 해당 주제에 적용 가능한 사고 루틴 활동 예시를 보여줍니다.",
107
- examples=[
108
- ["광합성", "See-Think-Wonder (보고-생각하고-궁금해하기)"],
109
- ["조선 시대의 과학 기술", "Think-Puzzle-Explore (생각-궁금-탐구)"],
110
- ]
111
  )
112
 
113
  # 인터페이스 실행
 
1
  import os
 
 
2
  import google.generativeai as genai
3
  import gradio as gr
4
 
 
5
  genai.configure(api_key=os.environ["GEMINI_API_KEY"])
6
 
7
+ # Create the model
8
  generation_config = {
9
+ "temperature": 1,
10
+ "top_p": 0.95,
11
+ "top_k": 64,
12
+ "max_output_tokens": 8192,
13
+ "response_mime_type": "text/plain",
14
  }
15
 
16
  model = genai.GenerativeModel(
17
+ model_name="gemini-1.5-flash",
18
+ generation_config=generation_config,
19
  )
20
 
21
+ def generate_questions(context):
22
+ """
23
+ 학습 주제, 내용, 성취 기준을 포함한 문맥을 입력받아 질문을 생성하는 함수
24
+ """
25
+
26
+ prompt = f"""질문 수업 전문가, 학습 내용이나 목표를 입력하면
27
+ 핵심질문 1개
28
+ 출발질문 3
29
+ 전개질문 5개
30
+ 도착질문 3개
31
+
32
+ 만들어줘
33
+
34
+ 질문에 대한 설명은 아래와 같아.
35
+
36
+ 핵심 질문
37
+ 수업의 기둥이자 뼈대로 흐름을 관통하는 질문
38
+ 교육과정 재구성과 교수학습방법 선정의 기준이 되는 질문
39
+ 학습 목표 도달과 관련한 질문
40
+ 좋은 핵심 질문을 만들기 위해서는 먼저 학습목표와 내용에 대한
41
+ 교사의 깊이 있는 연구가 필요
42
+
43
+ 도입질문
44
+ 도입의 마음열기에 해당
45
+ 학생들의 흥미와 호기심을 자극하여 수업에 참여시키는 초대장 역힐
46
+ 좋은 출발 질문은 다양하고 구체적인 답변을 유도 학생 입장에서도 답하기 쉬운 질문
47
+ 주로열린 질문을 사용
48
+ 구체적으로 질문하며 학생들의 경험이나 생활 속에서 가저오는 것이 좋음
49
+
50
+ 전개질문
51
+ -생각 키우기로 본시 학습에서 다루는 학습목표와 내용에 관한 질문
52
+ -주로 지식과 이해를 묻는 수렴적 질문
53
+
54
+ 도착질문
55
+ - 생각 넓히기나 삶에 반응하기에서 배운 지식과 실제 삶을 연결하는 질문
56
+ -적용, 분석, 종합, 비판에 해당하는 발산적 질문
57
+ 학습 내용이 학생의삶과 연결하는 질문
58
+ . 수업에서 매우 중요한 부분으로 가급적 구체적으로 실천할 수 있고 확인가능한 내용의 열린 질문
59
+
60
+ input: {context}
61
+
62
+ output:
63
  """
64
 
65
+ response = model.generate_content([prompt])
66
+ return response.text
67
+
68
+ # Gradio 인터페이스 생성
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
69
  iface = gr.Interface(
70
+ fn=generate_questions,
71
+ inputs=gr.Textbox(lines=10, label="학습 주제, 내용, 성취 기준을 자유롭게 입력하세요."),
72
+ outputs=gr.Textbox(lines=20, label="생성된 질문"),
73
+ title="🧠 질문 생성기",
74
+ description="학습 정보를 입력하면 다양한 유형의 질문을 생성해줍니다.",
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
75
  )
76
 
77
  # 인터페이스 실행