Spaces:
Sleeping
Sleeping
Update app.py
Browse files
app.py
CHANGED
|
@@ -46,40 +46,47 @@ st.markdown('<div class="header">๐ ๋ค๋ฅธ ํ์ฅ ๊ณ ๋ฏผํด๊ฒฐ ๋์์ฃผ๊ธฐ
|
|
| 46 |
|
| 47 |
# Load Excel file into DataFrame
|
| 48 |
df = pd.read_excel("painpoint2.xlsx")
|
| 49 |
-
# ๋ฒํผ์ ๊ฐ๋ก๋ก ๋์ดํ๊ธฐ ์ํ ์ปจํ
์ด๋
|
| 50 |
-
buttons = st.columns(3)
|
| 51 |
-
experience_levels = ['์ ์ฐ์ฐจ ํ์ฅ', '์ค๊ฐ์ฐ์ฐจ ํ์ฅ', '๊ณ ์ฐ์ฐจ ํ์ฅ']
|
| 52 |
-
button_state = {"active": None} # ์ด๋ค ๋ฒํผ์ด ํ์ฑํ๋์๋์ง ์ถ์
|
| 53 |
|
| 54 |
-
#
|
| 55 |
-
|
| 56 |
-
|
|
|
|
| 57 |
|
| 58 |
# ๋ฒํผ ์์ฑ ๋ฐ ์ด๋ฒคํธ ์ฒ๋ฆฌ
|
| 59 |
for i, experience_level in enumerate(experience_levels):
|
| 60 |
with buttons[i]:
|
| 61 |
-
|
| 62 |
-
|
| 63 |
-
|
| 64 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 65 |
concerns = df[experience_level].dropna()
|
| 66 |
if not concerns.empty:
|
| 67 |
selected_concern = concerns.sample(n=1).iloc[0]
|
| 68 |
st.session_state['selected_concern'] = selected_concern
|
| 69 |
-
st.markdown(f"### ์ ํ๋ ๊ณ ๋ฏผ: {selected_concern}")
|
| 70 |
else:
|
| 71 |
st.error(f"{experience_level}์ ํด๋นํ๋ ๊ณ ๋ฏผ์ด ์์ต๋๋ค.")
|
| 72 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 73 |
# ์กฐ์ธ ์ ์ถ ์น์
|
| 74 |
-
if 'selected_concern' in st.session_state and st.session_state
|
| 75 |
-
st.
|
| 76 |
-
advice = st.text_area("์กฐ์ธ:", height=100)
|
| 77 |
if st.button("์กฐ์ธ ์ ์ถํ๊ธฐ"):
|
| 78 |
if advice.strip(): # ์กฐ์ธ์ด ๋น์ด์์ง ์์ ๊ฒฝ์ฐ
|
| 79 |
-
record_advice(st.session_state
|
| 80 |
st.success("์กฐ์ธ์ด ์ฑ๊ณต์ ์ผ๋ก ์ ์ถ๋์์ต๋๋ค!")
|
| 81 |
-
# ์ ์ถ ํ
|
| 82 |
-
st.session_state['
|
| 83 |
-
st.session_state['active_button'] = None
|
| 84 |
else:
|
| 85 |
st.error("์กฐ์ธ์ ์
๋ ฅํด์ฃผ์ธ์.")
|
|
|
|
| 46 |
|
| 47 |
# Load Excel file into DataFrame
|
| 48 |
df = pd.read_excel("painpoint2.xlsx")
|
|
|
|
|
|
|
|
|
|
|
|
|
| 49 |
|
| 50 |
+
# ๋ฒํผ ์ปจํ
์ด๋ ์์ฑ
|
| 51 |
+
button_containers = [st.container() for _ in experience_levels]
|
| 52 |
+
buttons = st.columns(len(experience_levels))
|
| 53 |
+
selected_concern = None
|
| 54 |
|
| 55 |
# ๋ฒํผ ์์ฑ ๋ฐ ์ด๋ฒคํธ ์ฒ๋ฆฌ
|
| 56 |
for i, experience_level in enumerate(experience_levels):
|
| 57 |
with buttons[i]:
|
| 58 |
+
# ๋ฒํผ ์คํ์ผ ์ค์
|
| 59 |
+
button_style = f"border-radius:10px; border:1px solid #FFF; padding:10px; margin:3px; width:100%;"
|
| 60 |
+
if st.session_state.get('active_button') == experience_level:
|
| 61 |
+
# ์ ํ๋ ๋ฒํผ์ ์์ ์ ์ฉ
|
| 62 |
+
button_style += " background-color:#0d6efd; color:#FFF;"
|
| 63 |
+
else:
|
| 64 |
+
# ๊ธฐ๋ณธ ๋ฒํผ ์คํ์ผ
|
| 65 |
+
button_style += " background-color:#FFF; color:#333;"
|
| 66 |
+
|
| 67 |
+
# ๋ฒํผ ๋ ๋๋ง
|
| 68 |
+
if st.button(experience_level, key=f"button_{i}", help=f"Select {experience_level}", args=(experience_level,), kwargs={'style': button_style}):
|
| 69 |
+
st.session_state['active_button'] = experience_level
|
| 70 |
concerns = df[experience_level].dropna()
|
| 71 |
if not concerns.empty:
|
| 72 |
selected_concern = concerns.sample(n=1).iloc[0]
|
| 73 |
st.session_state['selected_concern'] = selected_concern
|
|
|
|
| 74 |
else:
|
| 75 |
st.error(f"{experience_level}์ ํด๋นํ๋ ๊ณ ๋ฏผ์ด ์์ต๋๋ค.")
|
| 76 |
|
| 77 |
+
# ์ ํ๋ ๊ณ ๋ฏผ ๋ด์ฉ์ ์ ์ฒด ์ปจํ
์ด๋์ ํ์
|
| 78 |
+
if 'selected_concern' in st.session_state:
|
| 79 |
+
with st.container():
|
| 80 |
+
st.markdown(f"### ์ ํ๋ ๊ณ ๋ฏผ: {st.session_state['selected_concern']}")
|
| 81 |
+
|
| 82 |
# ์กฐ์ธ ์ ์ถ ์น์
|
| 83 |
+
if 'selected_concern' in st.session_state and st.session_state.get('active_button'):
|
| 84 |
+
advice = st.text_area("๊ณ ๋ฏผ์ ๋ํ ์กฐ์ธ์ ์
๋ ฅํด์ฃผ์ธ์:", height=100)
|
|
|
|
| 85 |
if st.button("์กฐ์ธ ์ ์ถํ๊ธฐ"):
|
| 86 |
if advice.strip(): # ์กฐ์ธ์ด ๋น์ด์์ง ์์ ๊ฒฝ์ฐ
|
| 87 |
+
record_advice(st.session_state.get('active_button'), st.session_state['selected_concern'], advice.strip())
|
| 88 |
st.success("์กฐ์ธ์ด ์ฑ๊ณต์ ์ผ๋ก ์ ์ถ๋์์ต๋๋ค!")
|
| 89 |
+
st.session_state['selected_concern'] = None # ์ ์ถ ํ ์ ํ๋ ๊ณ ๋ฏผ ์ด๊ธฐํ
|
| 90 |
+
st.session_state['active_button'] = None # ์ ํ๋ ๋ฒํผ ์ด๊ธฐํ
|
|
|
|
| 91 |
else:
|
| 92 |
st.error("์กฐ์ธ์ ์
๋ ฅํด์ฃผ์ธ์.")
|