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() |