File size: 4,608 Bytes
1d355ad
fabb74d
 
22032f3
 
1d355ad
fabb74d
22032f3
 
fabb74d
 
b05b815
 
5fd7073
b05b815
fabb74d
 
 
 
72070b7
fabb74d
 
 
 
 
4c541d4
e39486f
 
 
4e8338d
e39486f
 
 
 
 
 
 
 
 
 
 
 
4c541d4
fabb74d
39688bd
e39486f
fabb74d
e39486f
fabb74d
e39486f
 
fabb74d
e39486f
fabb74d
217a78d
fabb74d
 
e39486f
 
 
fabb74d
feb03cf
fabb74d
 
 
 
 
e39486f
 
940b028
e39486f
940b028
e39486f
 
 
 
 
f4e7dd1
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
39aee8b
4885e65
7024632
a6d8b45
145f5b6
 
c6a3fe4
628c3ba
e39486f
 
 
 
 
 
 
3b5780b
f4e7dd1
 
3b5780b
39688bd
03d0703
fabb74d
8683182
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
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
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
import os
import time

import google.generativeai as genai
import gradio as gr

# Google Gemini API 키 설정
genai.configure(api_key=os.environ["GEMINI_API_KEY"])

# 모델 설정
generation_config = {
    "temperature": 1,
    "top_p": 0.95,
    "top_k": 40,
    "max_output_tokens": 15000,
    "response_mime_type": "text/plain",
}

model = genai.GenerativeModel(
    model_name="gemini-1.5-pro-002",
    generation_config=generation_config,
)

# 프롬프트 설정
SYSTEM_PROMPT = """
당신은 교수학습 활동 설계 전문가, 교과교육 내용 전문가, 교육공학자입니다. 
선생님들이 학습 주제와 사고 루틴을 입력하면, 해당 주제에 적용 가능한 사고 루틴 활동 예시를 상세하게 설명해주세요.
**활동 예시 구성 요소:**
1. 학습 주제
2. 적용할 사고 루틴 및 사고 루틴에 대한 설명명
3. 활동 목표
4. 활동 단계별 안내
    - 각 단계별로 사고 루틴을 어떻게 활용하는지 자세하게 설명
    - 예시 질문 포함
5. 활동 준비물 및 기구
6. 활동을 위한 자료
    - 활동에 필요한 자료
    - 추가 추천 자료
7. 활동의 유의점
    - 학생 입장 유의점
    - 교사 입장 유의점
8. 학생에게 제공할 활동 안내 자료
* 활동 안내 자료는 초등학생이 이해할 수 있도록 최대한 구체적이고, 단계적, 명시적으로 안내해주세요.
"""

def generate_thinking_routine_example(topic, thinking_routine):
    """
    학습 주제와 사고 루틴을 입력받아 활동 예시를 생성합니다.
    Args:
        topic (str): 학습 주제
        thinking_routine (str): 적용할 사고 루틴
    Returns:
        str: 생성된 활동 예시
    """

    prompt = [
        SYSTEM_PROMPT,
        f"**학습 주제:** {topic}",
        f"**적용할 사고 루틴:** {thinking_routine}",
        "**활동 예시:**",
    ]

    response = model.generate_content(prompt, stream=True)
    collected_text = ""
    for token in response:
        chunk = token.text
        collected_text += chunk
        yield collected_text
        time.sleep(0.03)

# Gradio 인터페이스 설정 - 드롭다운 메뉴 추가
iface = gr.Interface(
    fn=generate_thinking_routine_example,
    inputs=[
        gr.Textbox(lines=2, label="학습 주제 입력"),
        gr.Dropdown(
            choices=[
                "See-Think-Wonder (보고-생각하고-궁금해하기)",
                "Zoom In (확대)",
                "Think-Puzzle-Explore (생각-궁금-탐구)",
                "Chalk Talk (침묵 대화)",
                "321 Bridge (3-2-1 다리 짓기)",
                "Compass Points (나침반)",
                "Explanation Game (설명 게임)",
                "Headlines (헤드라인)",
                "CSI: Color, Symbol, Image (색상, 기호, 이미지)",
                "Generate-Sort-Connect-Elaborate-Concept Maps (개념도)",
                "Connect-Extend-Challenge (연결-확장-도전)",
                "The 4 C's (4가지 C)",
                "Micro Lab (미니 실험)",
                "I used to think…Now I think… (예전엔 … 라고 생각했지만, 지금은 … 라고 생각해)",
                "What makes you say that? (무엇 때문에 그렇게 생각하니?)",
                "Circle Viewpoints (다양한 관점)",
                "Step Inside (입장 바꿔 생각하기)",
                "Red Light, Yellow Light, Green Light (빨간불, 노란불, 초록불)",
                "Claim Support Question (주장-근거-질문)",
                "Tug of War (줄다리기)",
                "Word-Phrase-Sentence (단어-구-문장)",
                "Think Aloud (사고 구술)",
                "관찰-비교대조-분류",
                "관찰하기",
                "무리 짓기",
                "예상하기",
                "관계망 그리기",
                "도구 사용의 방법 및 절차(순서 단계적으로 제시)"
            ],
            label="사고 루틴 선택"
        ),
    ],
    outputs=gr.Textbox(lines=15, label="사고 루틴 활용 예시"),
    title="학습 활동 설계 도우미: 사고 루틴 활용 편",
    description="선생님이 학습 주제와 사고 루틴을 선택하시면, 해당 주제에 적용 가능한 사고 루틴 활동 예시를 보여줍니다.",
    examples=[
        ["광합성", "See-Think-Wonder (보고-생각하고-궁금해하기)"],
        ["조선 시대의 과학 기술", "Think-Puzzle-Explore (생각-궁금-탐구)"],
    ]
)

# 인터페이스 실행
iface.launch()