Spaces:
Sleeping
Sleeping
Update app.py
Browse files
app.py
CHANGED
@@ -16,7 +16,7 @@ def generate_annotated_text(text):
|
|
16 |
messages=[
|
17 |
{
|
18 |
"role": "system",
|
19 |
-
"content": "
|
20 |
},
|
21 |
{
|
22 |
"role": "user",
|
@@ -38,7 +38,7 @@ def generate_similar_sentences(base_sentence):
|
|
38 |
messages=[
|
39 |
{
|
40 |
"role": "system",
|
41 |
-
"content": f"다음은 '{base_sentence}'와 유사한 학생의
|
42 |
},
|
43 |
{
|
44 |
"role": "user",
|
@@ -56,8 +56,8 @@ def generate_similar_sentences(base_sentence):
|
|
56 |
|
57 |
|
58 |
# Streamlit 앱의 제목 및 설명
|
59 |
-
st.title("
|
60 |
-
st.write("
|
61 |
|
62 |
# 성취기준 데이터 가져오기
|
63 |
achievement_standards = data.achievement_standards
|
@@ -71,79 +71,10 @@ subject = st.selectbox("과목을 선택하세요:", subject_list)
|
|
71 |
|
72 |
# 선택된 과목에 따른 성취기준 목록
|
73 |
selected_standards = achievement_standards[grade_group][subject]
|
74 |
-
selected_standard = st.selectbox("
|
75 |
|
76 |
# 선택된 성취기준을 텍스트 입력창의 기본값으로 사용
|
77 |
-
achievement_standard = st.text_input("
|
78 |
-
|
79 |
-
# # "평가 생성" 버튼 클릭 시의 동작
|
80 |
-
# if st.button("평가 생성"):
|
81 |
-
# with st.spinner('답변 생성중...'):
|
82 |
-
# result = generate_annotated_text(achievement_standard)
|
83 |
-
# # 결과 출력
|
84 |
-
# exec(result.replace('```', ''))
|
85 |
-
|
86 |
-
# # annotated_text 결과에서 문장만 추출
|
87 |
-
# result_lines = result.split('\n')
|
88 |
-
# sentences = []
|
89 |
-
# for line in result_lines:
|
90 |
-
# # "(" 문자열이 포함된 위치를 찾아서 그 이후의 문자열만 추출
|
91 |
-
# start_idx = line.find('("')
|
92 |
-
# if start_idx != -1:
|
93 |
-
# end_idx = line.find('",', start_idx)
|
94 |
-
# sentence = line[start_idx + 2:end_idx].strip() # "(" 다음부터 "," 전까지의 문자열을 추출
|
95 |
-
# sentences.append(sentence)
|
96 |
-
|
97 |
-
|
98 |
-
# # 문장을 라디오 버튼으로 표시 및 선택된 문장 저장
|
99 |
-
# selected_index = st.radio("문장을 선택하세요:", range(len(sentences)), format_func=lambda x: sentences[x])
|
100 |
-
# st.session_state.selected_sentence = sentences[selected_index] if sentences else None
|
101 |
-
|
102 |
-
|
103 |
-
# # 유사한 문장 생성 버튼 추가
|
104 |
-
# if st.button("유사한 문구 생성") and st.session_state.get('selected_sentence'):
|
105 |
-
# with st.spinner('문장 생성중...'):
|
106 |
-
# similar_sentences = generate_similar_sentences(st.session_state.selected_sentence)
|
107 |
-
# for sentence in st.session_state.similar_sentences:
|
108 |
-
# st.write(sentence)
|
109 |
-
|
110 |
-
# # 세션 상태 초기화
|
111 |
-
# if 'selected_sentence' not in st.session_state:
|
112 |
-
# st.session_state.selected_sentence = None
|
113 |
-
# if 'similar_sentences' not in st.session_state:
|
114 |
-
# st.session_state.similar_sentences = []
|
115 |
-
|
116 |
-
# # "평가 생성" 버튼 클릭 시의 동작
|
117 |
-
# if st.button("평가 생성"):
|
118 |
-
# with st.spinner('답변 생성중...'):
|
119 |
-
# result = generate_annotated_text(achievement_standard)
|
120 |
-
# st.session_state.generated_result = result
|
121 |
-
# st.session_state.selected_sentence = None # 새로운 평가 생성시 선택된 문장 초기화
|
122 |
-
# exec(result.replace('```', ''))
|
123 |
-
|
124 |
-
# # annotated_text 결과에서 문장만 추출
|
125 |
-
# result_lines = result.split('\n')
|
126 |
-
# sentences = []
|
127 |
-
# for line in result_lines:
|
128 |
-
# start_idx = line.find('("')
|
129 |
-
# if start_idx != -1:
|
130 |
-
# end_idx = line.find('",', start_idx)
|
131 |
-
# sentence = line[start_idx + 2:end_idx].strip()
|
132 |
-
# sentences.append(sentence)
|
133 |
-
|
134 |
-
# if sentences:
|
135 |
-
# st.session_state.selected_sentence = st.selectbox("문장을 선택하세요:", sentences, key="sentence_select")
|
136 |
-
|
137 |
-
# # 유사한 문장 생성 버튼 추가
|
138 |
-
# if st.button("유사한 문구 생성") and st.session_state.get('selected_sentence'):
|
139 |
-
# with st.spinner('문장 생성중...'):
|
140 |
-
# st.session_state.similar_sentences = generate_similar_sentences(st.session_state.selected_sentence)
|
141 |
-
|
142 |
-
# # 생성된 결과 및 유사한 문장들 출력
|
143 |
-
# if st.session_state.get('generated_result'):
|
144 |
-
# exec(st.session_state.generated_result.replace('```', ''))
|
145 |
-
# for sentence in st.session_state.get('similar_sentences', []):
|
146 |
-
# st.write(sentence)
|
147 |
|
148 |
# 세션 상태 초기화
|
149 |
if 'generated_result' not in st.session_state:
|
@@ -154,7 +85,7 @@ if 'similar_sentences' not in st.session_state:
|
|
154 |
st.session_state.similar_sentences = []
|
155 |
|
156 |
# "평가 생성" 버튼 클릭 시의 동작
|
157 |
-
if st.button("
|
158 |
with st.spinner('답변 생성중...'):
|
159 |
result = generate_annotated_text(achievement_standard)
|
160 |
st.session_state.generated_result = result
|
|
|
16 |
messages=[
|
17 |
{
|
18 |
"role": "system",
|
19 |
+
"content": f"사용자의 입력 {text}는 학생의 창의적 체험활동에 대한 누가기록입니다. 이 누가기록을 바탕으로 학생의 개별적 특성과 성취를 강조하는 특기사항 기록을 생성하십시오. 사용자 입력을 특기사항으로 변환할 때, 문장의 끝은 '~임', '~함', '~음'과 같이 종결형 어미로 마무리합니다. 다음 입력과 출력 예제를 참고하세요. 예제: 입력: 누가기록1: '과학 실험 대회에 참여함', 누가기록2: '실험에서 독창적인 접근 방식을 사용함' 출력: '과학 실험 대회에 적극적으로 참여함. 실험에서 독창적인 접근 방식을 사용하며 문제 해결 능력을 보임. 실험 과정에서의 창의성과 주도적인 태도가 인상적임. 과학에 대한 깊은 이해와 호기심을 바탕으로 실험에 기여함.'"
|
20 |
},
|
21 |
{
|
22 |
"role": "user",
|
|
|
38 |
messages=[
|
39 |
{
|
40 |
"role": "system",
|
41 |
+
"content": f"다음은 '{base_sentence}'와 유사한 학생의 특성과 성취를 강조하는 예시 문항 10개를 만들어라. 문장의 끝은 '~임,~함,~음'으로 끝나도록 해줘"
|
42 |
},
|
43 |
{
|
44 |
"role": "user",
|
|
|
56 |
|
57 |
|
58 |
# Streamlit 앱의 제목 및 설명
|
59 |
+
st.title("누가기록 기반 창체 특기사항 생성")
|
60 |
+
st.write("창체 누가기록을 입력하시면, 해당 누가기록에 기반한 창체 특기사항 문구를 제안합니다.")
|
61 |
|
62 |
# 성취기준 데이터 가져오기
|
63 |
achievement_standards = data.achievement_standards
|
|
|
71 |
|
72 |
# 선택된 과목에 따른 성취기준 목록
|
73 |
selected_standards = achievement_standards[grade_group][subject]
|
74 |
+
selected_standard = st.selectbox("누가기록 예시를 선택하세요:", selected_standards)
|
75 |
|
76 |
# 선택된 성취기준을 텍스트 입력창의 기본값으로 사용
|
77 |
+
achievement_standard = st.text_input("누가기록 입력:", value=selected_standard)
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
78 |
|
79 |
# 세션 상태 초기화
|
80 |
if 'generated_result' not in st.session_state:
|
|
|
85 |
st.session_state.similar_sentences = []
|
86 |
|
87 |
# "평가 생성" 버튼 클릭 시의 동작
|
88 |
+
if st.button("문구 생성"):
|
89 |
with st.spinner('답변 생성중...'):
|
90 |
result = generate_annotated_text(achievement_standard)
|
91 |
st.session_state.generated_result = result
|