q / app.py
ll7098ll's picture
Update app.py
9d13166 verified
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)