Update app.py
Browse files
app.py
CHANGED
|
@@ -416,44 +416,51 @@ if 'sell_confirm' not in st.session_state:
|
|
| 416 |
if 'difficulty_level' not in st.session_state:
|
| 417 |
st.session_state['difficulty_level'] = "초등학생" # 기본 난이도 설정
|
| 418 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 419 |
# --- 뉴스 생성 함수 ---
|
| 420 |
def generate_news():
|
| 421 |
day_count = st.session_state["day_count"]
|
| 422 |
difficulty_level = st.session_state['difficulty_level']
|
| 423 |
|
| 424 |
-
difficulty_prompt_map = {
|
| 425 |
-
"초등학생": {
|
| 426 |
-
"level_desc": "초등학생 5~6학년 수준",
|
| 427 |
-
"sentence_count": "10~12", # 초등학생 수준 문장 수 조정
|
| 428 |
-
"vocabulary_level": "쉬운 어휘와 짧은 문장", # 초등학생 수준 어휘 강조
|
| 429 |
-
"inference_level": "단순하고 명확한 정보", # 초등학생 수준 추론 정보 강조
|
| 430 |
-
},
|
| 431 |
-
"중학생": {
|
| 432 |
-
"level_desc": "중학생 1~3학년 수준",
|
| 433 |
-
"sentence_count": "12~15", # 중학생 수준 문장 수
|
| 434 |
-
"vocabulary_level": "일상적인 어휘와 약간의 전문 용어", # 중학생 수준 어휘
|
| 435 |
-
"inference_level": "일반적인 경제 흐름과 관련된 추론", # 중학생 수준 추론
|
| 436 |
-
},
|
| 437 |
-
"고등학생": {
|
| 438 |
-
"level_desc": "고등학생 1~3학년 수준",
|
| 439 |
-
"sentence_count": "15~20", # 고등학생 수준 문장 수 증가
|
| 440 |
-
"vocabulary_level": "다양한 어휘와 경제 전문 용어 포함", # 고등학생 수준 어휘
|
| 441 |
-
"inference_level": "심층적인 경제 분석 및 다각적인 추론", # 고등학생 수준 심층 추론
|
| 442 |
-
},
|
| 443 |
-
}
|
| 444 |
-
|
| 445 |
level_config = difficulty_prompt_map.get(difficulty_level, difficulty_prompt_map["초등학생"]) # 기본값 초등학생
|
| 446 |
|
| 447 |
-
level_prompt = level_config["level_desc"]
|
| 448 |
sentence_count = level_config["sentence_count"]
|
| 449 |
vocabulary_level = level_config["vocabulary_level"]
|
| 450 |
inference_level = level_config["inference_level"]
|
|
|
|
| 451 |
|
| 452 |
prompt = f"""
|
| 453 |
지시:
|
| 454 |
-
{
|
| 455 |
각 기사는 {sentence_count}문장 정도로 작성하고, {vocabulary_level}를 사용하여 학생들이 이해하기 쉬워야 합니다.
|
| 456 |
-
학생들이 뉴스를 읽고 {inference_level} 수준에서
|
| 457 |
특정 회사 이름이나 주식 종목을 직접적으로 언급하지 마세요.
|
| 458 |
긍정적 뉴스, 부정적 뉴스, 중립적 뉴스 다양하게 생성하세요.(긍정, 부정, 중립 이라는 말은 표시하지 마세요.)
|
| 459 |
뉴스에 따라 주식이 상승하기도 하고 하락하기도 할 수 있습니다.
|
|
@@ -492,12 +499,9 @@ def explain_daily_news_meanings(daily_news):
|
|
| 492 |
return {}
|
| 493 |
|
| 494 |
difficulty_level = st.session_state['difficulty_level']
|
| 495 |
-
|
| 496 |
-
|
| 497 |
-
|
| 498 |
-
"고등학생": "고등학생 1~3학년",
|
| 499 |
-
}
|
| 500 |
-
level_prompt = difficulty_prompt_map.get(difficulty_level, "초등학생 5~6학년") # 기본값 초등학생
|
| 501 |
|
| 502 |
meanings = {}
|
| 503 |
for i, news_article in enumerate(daily_news):
|
|
@@ -506,7 +510,7 @@ def explain_daily_news_meanings(daily_news):
|
|
| 506 |
{news_article}
|
| 507 |
|
| 508 |
**지시:**
|
| 509 |
-
위 신문 기사의 핵심 의미를 {
|
| 510 |
그리고 이 뉴스와 관련된 주식 섹터 1~2개를 쉼표로 구분해서 "관련 섹터: " 다음에 알려주세요. 관련 섹터가 없다면 "관련 섹터: 없음" 이라고 해주세요.
|
| 511 |
|
| 512 |
뉴스 의미 해설:
|
|
|
|
| 416 |
if 'difficulty_level' not in st.session_state:
|
| 417 |
st.session_state['difficulty_level'] = "초등학생" # 기본 난이도 설정
|
| 418 |
|
| 419 |
+
# --- 뉴스 난이도별 설정 ---
|
| 420 |
+
difficulty_prompt_map = {
|
| 421 |
+
"초등학생": {
|
| 422 |
+
"level_desc": "초등학생 5~6학년 수준",
|
| 423 |
+
"sentence_count": "8~10", # 더 짧은 문장
|
| 424 |
+
"vocabulary_level": "아주 쉬운 어휘와 짧고 명확한 문장 사용", # 더 쉬운 어휘 강조
|
| 425 |
+
"inference_level": "매우 단순하고 직관적인 정보", # 더 단순한 추론
|
| 426 |
+
"news_prompt_instructions": "단순한 경제 상황, 쉬운 단어, 짧은 문장, 명확한 정보 위주로 작성. 복잡한 경제 용어, 전문 용어, 추상적인 개념 사용 금지.", # 초등학생용 뉴스 생성 지침 추가
|
| 427 |
+
"explanation_prompt_instructions": "핵심 용어, 쉬운 비유 사용, 짧고 명확한 설명, 3문장 이내 요약", # 초등학생용 해설 지침 추가
|
| 428 |
+
},
|
| 429 |
+
"중학생": {
|
| 430 |
+
"level_desc": "중학생 1~3학년 수준",
|
| 431 |
+
"sentence_count": "12~15",
|
| 432 |
+
"vocabulary_level": "일상적인 어휘와 기본적인 경제 용어 포함", # 중학생 수준 어휘
|
| 433 |
+
"inference_level": "일반적인 경제 흐름과 관련된 추론",
|
| 434 |
+
"news_prompt_instructions": "일상적인 경제 뉴스, 쉬운 경제 용어, 적절한 문장 길이, 일반적인 경제 흐름과 관련, 약간의 추론 필요", # 중학생용 뉴스 생성 지침
|
| 435 |
+
"explanation_prompt_instructions": "기본 경제 용어 설명, 경제 개념 쉬운 풀이, 3~4문장 요약", # 중학생용 해설 지침
|
| 436 |
+
},
|
| 437 |
+
"고등학생": {
|
| 438 |
+
"level_desc": "고등학생 1~3학년 수준",
|
| 439 |
+
"sentence_count": "15~20", # 고등학생 수준 문장 수 증가
|
| 440 |
+
"vocabulary_level": "다양한 어휘와 경제 전문 용어 적극 사용", # 고등학생 수준 어휘
|
| 441 |
+
"inference_level": "심층적인 경제 분석 및 다각적인 추론 요구", # 고등학생 수준 심층 추론
|
| 442 |
+
"news_prompt_instructions": "심층 경제 뉴스, 경제 전문 용어 적극 사용, 긴 문장, 복잡한 구문, 산업 동향, 경제 정책, 국제 경제, 다각적인 분석과 심층 추론 필요", # 고등학생용 뉴스 생성 지침
|
| 443 |
+
"explanation_prompt_instructions": "전문 경제 용어 해설 포함, 심층적인 경제 분석, 5문장 내외 요약, 다양한 관점 제시", # 고등학생용 해설 지침
|
| 444 |
+
},
|
| 445 |
+
}
|
| 446 |
+
|
| 447 |
# --- 뉴스 생성 함수 ---
|
| 448 |
def generate_news():
|
| 449 |
day_count = st.session_state["day_count"]
|
| 450 |
difficulty_level = st.session_state['difficulty_level']
|
| 451 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 452 |
level_config = difficulty_prompt_map.get(difficulty_level, difficulty_prompt_map["초등학생"]) # 기본값 초등학생
|
| 453 |
|
|
|
|
| 454 |
sentence_count = level_config["sentence_count"]
|
| 455 |
vocabulary_level = level_config["vocabulary_level"]
|
| 456 |
inference_level = level_config["inference_level"]
|
| 457 |
+
news_prompt_instructions = level_config["news_prompt_instructions"] # 난이도별 뉴스 생성 지침 추가
|
| 458 |
|
| 459 |
prompt = f"""
|
| 460 |
지시:
|
| 461 |
+
{level_config["level_desc"]}에 맞춰서, 주식 시장과 경제에 관련된 뉴스 기사 5개를 생성해주세요.
|
| 462 |
각 기사는 {sentence_count}문장 정도로 작성하고, {vocabulary_level}를 사용하여 학생들이 이해하기 쉬워야 합니다.
|
| 463 |
+
학생들이 뉴스를 읽고 {inference_level} 수준에서 ��떤 회사가 유망할지 또는 쇠락할지 스스로 추론할 수 있도록 {news_prompt_instructions}
|
| 464 |
특정 회사 이름이나 주식 종목을 직접적으로 언급하지 마세요.
|
| 465 |
긍정적 뉴스, 부정적 뉴스, 중립적 뉴스 다양하게 생성하세요.(긍정, 부정, 중립 이라는 말은 표시하지 마세요.)
|
| 466 |
뉴스에 따라 주식이 상승하기도 하고 하락하기도 할 수 있습니다.
|
|
|
|
| 499 |
return {}
|
| 500 |
|
| 501 |
difficulty_level = st.session_state['difficulty_level']
|
| 502 |
+
level_config = difficulty_prompt_map.get(difficulty_level, difficulty_prompt_map["초등학생"]) # 기본값 초등학생
|
| 503 |
+
explanation_prompt_instructions = level_config["explanation_prompt_instructions"] # 난이도별 해설 지침 추가
|
| 504 |
+
|
|
|
|
|
|
|
|
|
|
| 505 |
|
| 506 |
meanings = {}
|
| 507 |
for i, news_article in enumerate(daily_news):
|
|
|
|
| 510 |
{news_article}
|
| 511 |
|
| 512 |
**지시:**
|
| 513 |
+
위 신문 기사의 핵심 의미를 {level_config["level_desc"]}이 이해하기 쉽게 {explanation_prompt_instructions}해서 "해설: " 다음에 설명해주세요.
|
| 514 |
그리고 이 뉴스와 관련된 주식 섹터 1~2개를 쉼표로 구분해서 "관련 섹터: " 다음에 알려주세요. 관련 섹터가 없다면 "관련 섹터: 없음" 이라고 해주세요.
|
| 515 |
|
| 516 |
뉴스 의미 해설:
|