q
File size: 2,337 Bytes
1d355ad
5829c7a
22032f3
1d355ad
5829c7a
22032f3
 
5829c7a
fabb74d
5829c7a
 
452a07e
5829c7a
 
fabb74d
 
 
9d13166
5829c7a
fabb74d
 
7e18433
5829c7a
 
 
 
 
 
2adf6be
5829c7a
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
f1863a3
 
5829c7a
 
 
c7ae166
39688bd
03d0703
5829c7a
 
 
 
 
 
 
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
import os
import streamlit as st
import google.generativeai as genai

# 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": 8192,
    "response_mime_type": "text/plain",
}

model = genai.GenerativeModel(
    model_name="gemini-2.5-flash",
    generation_config=generation_config,
)


def generate_questions(context):
    """
    학습 주제, 내용, 성취 기준을 포함한 문맥을 입력받아 질문을 생성하는 함수
    """

    prompt = f"""질문 수업 전문가, 학습 내용이나 목표를 입력하면
    아래와 같은 유형의 질문을 각 10개 이상씩 만들어줘, 질문의 수준은 초등학교 교육과정 범위 내에서 작성하도록 해.
    ## 질문 유형
    **1. 바탕 질문(사실적 질문)**: 
    * 정보를 기억하고 떠올리는 능력을 평가합니다.
    * 명확한 답변이 존재하고, 교과서나 자료에서 직접 찾을 수 있는 정보를 묻습니다.
    **2. 궁금 질문(해석적 질문)**:
    * 정보를 분석하고 이해하는 능력을 평가합니다.
    * 단순히 정보를 기억하는 것을 넘어, 정보 간의 관계를 파악하고 의미를 해석하는 능력을 요구합니다.
    **3. 새롬 질문(적용적 질문)**:
    * 정보를 활용하여 문제를 해결하고 새로운 상황에 적용하는 능력을 평가합니다.
    * 새로운 상황이나 문제에 답변을 적용하고, 창의적인 해결책을 제시하도록 요구합니다.
    input: {context}
    output: 
    """

    response = model.generate_content([prompt])
    return response.text


# Streamlit 앱 제목
st.title("🧠 바탕 질문, 궁금 질문, 새롬 질문")
st.write("학습 정보를 입력하면 바탕 질문(사실적 질문), 궁금 질문(해석적 질문), 새롬 질문(적용적 질문)을 생성해줍니다.")

# 입력 텍스트 박스
context = st.text_area(
    "학습 주제, 내용, 성취 기준을 자유롭게 입력하세요.", height=70
)

# 질문 생성 버튼
if st.button("질문 생성"):
    # 질문 생성 함수 호출
    questions = generate_questions(context)

    # 생성된 질문 출력
    st.text_area("생성된 질문", questions, height=400)