| import os |
| import time |
| import gradio as gr |
| import google.generativeai as genai |
|
|
| genai.configure(api_key=os.environ["GEMINI_API_KEY"]) |
|
|
| |
| generation_config = { |
| "temperature": 1, |
| "top_p": 0.95, |
| "top_k": 40, |
| "max_output_tokens": 8192, |
| "response_mime_type": "text/plain", |
| } |
|
|
| model = genai.GenerativeModel( |
| model_name="gemini-1.5-pro-002", |
| generation_config=generation_config, |
| ) |
|
|
| def generate_lesson_plan(grade, subject, concept, achievement_standard, key_question, lesson_number): |
| """ |
| 학년, 수업 주제, 개념, 성취기준, 핵심 질문, 차시를 입력받아 6단계 질문 중심 수업 지도안을 생성하는 함수 |
| """ |
| |
| grade_mapping = { |
| "초등학교 3학년": 3, |
| "초등학교 4학년": 4, |
| "초등학교 5학년": 5, |
| "초등학교 6학년": 6 |
| } |
|
|
| |
| grade_number = grade_mapping.get(grade, 3) |
|
|
| |
| grade_prompts = { |
| 3: "초등학교 3학년 수준에 맞는 내용과 활동으로 구성해주세요.", |
| 4: "초등학교 4학년 수준에 맞는 내용과 활동으로 구성해주세요.", |
| 5: "초등학교 5학년 수준에 맞는 내용과 활동으로 구성해주세요.", |
| 6: "초등학교 6학년 수준에 맞는 내용과 활동으로 구성해주세요." |
| } |
| |
| |
| prompt = f"""교수학습 설계 전문가, 질문 및 개념 기반 탐구 학습 전문가로서 아래 정보를 참고하여 주어진 수업 주제에 대한 6단계 질문 기반 개념 학습 지도안을 아래 형식에 따라 작성해줘. 수업 주제, 개념, 성취 기준, 핵심 개념에 맞게 각 단계별 구체적인 내용을 포함하여 작성할 것. |
| |
| ## 질문 중심 수업 6단계 정리 (교사/학생 활동, 질문 유형) |
| |
| 단계 1. 질문 생성 |
| 교사활동 |
| - 긍정적인 분위기 조성 |
| - 공부할 내용 제시 (흥미 유발) |
| - 질문 생성 방법 안내 (질문 형성 기법, 질문 줄기 예시 활용)<br> |
| - 초기 질문 생성 격려 |
| 학생활동 |
| - 이전 학습과 새로운 학습 연결 |
| - 공부할 내용 파악 |
| - 다양한 질문 생성 |
| - 질문 공책 활용 |
| 질문 유형 및 예시 |
| - 사실적 질문(예시 포함) |
| - 해석적 질문(예시 포함) |
| - 적용적 질문(예시 포함) |
| - 개방형 질문(What, Why, How)(예시 포함) |
| |
| 단계 2. 핵심 질문 선정 |
| 교사활동 |
| - 학습 목표 제시 및 명확화 |
| - 학생 질문 검토 및 선별 |
| - 성취기준과 질문 연결 |
| - 핵심 질문 도출 안내(안내 질문 활용) |
| 학생활동 |
| - 초기 질문 발표 및 공유 |
| - 질문 수정 및 보완 |
| - 핵심 질문 선정 및 합의 |
| 질문 유형 및 예시 |
| - 초점화된 질문(단원의 핵심 개념, 탐구 주제 명확히 드러남)(예시 포함) |
| |
| 단계 3. 탐구 |
| 교사활동 |
| - 탐구 방법 안내 (개인, 짝, 모둠) |
| - 시각적 자료 제공 |
| - 탐구 활동 촉진 (안내 질문, 격려, 피드백 |
| - 탐구 과정 관찰 및 지원 (구조화된 탐구, 안내된 탐구) |
| 학생활동 |
| - 핵심 질문에 대한 탐구 계획 수립 및 실행 |
| - 자료 수집 및 분석 |
| - 다양한 활동 참여 (토의, 토론, 실험, 조사 등) |
| - 탐구 결과 정리 |
| 질문 유형 및 예시 |
| - - 탐구 질문(What if, How to, Why)(예시 포함) |
| |
| 단계 4. 공유 |
| 교사활동 |
| - 다양한 공유 방법 제시 (발표, 전시, 토론 등) |
| - 탐구 결과 발표 격려 |
| - 피드백 제공 (긍정적, 구체적) |
| 학생활동 |
| - 탐구 결과 발표 및 공유 |
| - 다른 학생 발표 경청 및 질문 |
| - 피드백 주고받기 |
| - 탐구 결과 보완 |
| 질문 유형 및 예시 |
| - 설명/요약 질문 (What did you find?, How can you explain?)(예시 포함) |
| - 비교/대조 질문 (What are the similarities and differences?)(예시 포함) |
| |
| 단계 5. 개념화 |
| 교사활동 |
| - 학생들의 개념화 과정 지원 (발문, 토의, 개념 지도) |
| - 핵심 개념 명확화 |
| - 오개념 수정 |
| 학생활동 |
| - 탐구 결과를 바탕으로 개념 도출 |
| - 자신의 언어로 개념 정리 및 설명 |
| - 개념 간 관계 파악 |
| - 핵심 개념 일반화 |
| 질문 유형 및 예시 |
| - 정의 질문 (What is the meaning of...?)(예시 포함) |
| - 개념 관계 질문 (How does ... relate to ...?)(예시 포함) |
| |
| 단계 6. 적용 |
| 교사활동 |
| - 다양한 적용 활동 제시 (실생활 적용, 다른 교과 연계, 창의적 활동) |
| - 도전적인 과제 제시 |
| - 적용 과정 및 결과 평가 |
| - 피드백 제공 |
| 학생활동 |
| - 배운 개념을 실생활/다른 교과에 적용 |
| - 창의적 사고 및 문제 해결 |
| - 적용 결과 발표 및 공유 |
| - 학습 경험 성찰 |
| 질문 유형 및 예시 |
| - 적용 질문(How can you use ... in real life?, Can you apply ... to solve this problem?)(예시 포함) |
| |
| ## 수업 정보 |
| * 학년: {grade} |
| * 주제: {subject} |
| * 개념: {concept} |
| * 성취기준: {achievement_standard} |
| * 핵심 질문: {key_question} |
| * 차시: {lesson_number} |
| ## 상세한 6단계 질문 기반 개념 학습 지도안: |
| """ |
|
|
| |
| full_text = "" |
| yield full_text |
|
|
| try: |
| |
| response = model.generate_content([prompt], stream=True) |
| for chunk in response: |
| full_text += chunk.text |
| yield full_text |
| time.sleep(0.05) |
| except Exception as e: |
| yield f"에러 발생: {str(e)}" |
|
|
| |
| iface = gr.Interface( |
| fn=generate_lesson_plan, |
| inputs=[ |
| gr.Dropdown(["초등학교 3학년", "초등학교 4학년", "초등학교 5학년", "초등학교 6학년"], label="학년", value="초등학교 3학년"), |
| gr.Textbox(lines=1, label="수업 주제"), |
| gr.Textbox(lines=1, label="개념"), |
| gr.Textbox(lines=1, label="성취기준"), |
| gr.Textbox(lines=1, label="핵심 질문"), |
| gr.Textbox(lines=1, label="차시"), |
| ], |
| outputs=gr.Textbox(lines=20, label="질문 기반 개념 학습"), |
| title="💡 질문 기반 개념 학습", |
| description="수업 주제에 대한 6단계 질문 기반 개념 학습 지도안을 생성하세요!", |
| examples=[ |
| ["초등학교 6학년", "광합성", "식물의 잎에서 빛에너지를 이용하여 양분을 만드는 과정", "광합성의 과정을 이해하고 설명할 수 있다.", "식물은 어떻게 스스로 양분을 만들어낼까?", "2"], |
| ["초등학교 5학년", "조선 시대의 과학 기술", "조선 시대에 발명되거나 발전된 과학 기술", "조선 시대의 과학 기술 발전을 이해하고 설명할 수 있다.", "조선 시대에는 어떤 과학 기술이 발전했을까?", "3"], |
| ] |
| ) |
|
|
| |
| iface.launch() |