Spaces:
Sleeping
Sleeping
Update app.py
Browse files
app.py
CHANGED
|
@@ -246,12 +246,6 @@ def _llm_structured_extract(user_text: str):
|
|
| 246 |
return data
|
| 247 |
|
| 248 |
# ββββββββββββββββββββββββββββββββ Streamlitμ© LLM λͺ¨λ UI ββββββββββββββββββββββββββββββββ
|
| 249 |
-
def _ensure_llm_state():
|
| 250 |
-
st.session_state.setdefault("llm_mode", False)
|
| 251 |
-
st.session_state.setdefault("llm_history", []) # [{'role':'user'|'assistant', 'content': str}, ...]
|
| 252 |
-
st.session_state.setdefault("llm_intro_needed", False)
|
| 253 |
-
st.session_state.setdefault("llm_input", "")
|
| 254 |
-
|
| 255 |
def render_llm_followup(chat_container, inline=False):
|
| 256 |
_ensure_llm_state()
|
| 257 |
MAX_TURNS = 6
|
|
@@ -339,7 +333,12 @@ def render_llm_followup(chat_container, inline=False):
|
|
| 339 |
st.session_state["llm_mode"] = False
|
| 340 |
st.rerun()
|
| 341 |
|
| 342 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 343 |
# μ§μ° μ΄κΈ°ν: import μμ μλ λ°μ΄ν° μ κ·Ό κΈμ§, μ¬κΈ°μ ν λ²λ§ μ£Όμ
|
| 344 |
init_datasets(
|
| 345 |
travel_df=travel_df,
|
|
@@ -642,7 +641,7 @@ def region_ui(travel_df, external_score_df, festival_df, weather_df, package_df,
|
|
| 642 |
return
|
| 643 |
|
| 644 |
# ββββββββββββββββββ 3) μΆμ² μ’
λ£ λ¨κ³: λ μ΄μ μΆμ²ν μ¬νμ§κ° μμ λ
|
| 645 |
-
elif st.session_state[step_key] == "
|
| 646 |
with chat_container:
|
| 647 |
# 3.1) λ©μμ§ μΆλ ₯
|
| 648 |
log_and_render(
|
|
@@ -876,16 +875,23 @@ def region_ui(travel_df, external_score_df, festival_df, weather_df, package_df,
|
|
| 876 |
# μΈμ
μ 리
|
| 877 |
st.session_state["package_rendered"] = True
|
| 878 |
st.session_state[step_key] = "package_end"
|
| 879 |
-
show_llm_inline()
|
| 880 |
|
| 881 |
-
|
| 882 |
-
|
|
|
|
| 883 |
|
| 884 |
# ββββββββββββββββββ 7) μ’
λ£ λ¨κ³
|
| 885 |
elif st.session_state[step_key] == "package_end":
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 886 |
log_and_render("νμνμ€ λ μΈμ λ μ§ λ μ°Ύμμ£ΌμΈμ! βοΈ",
|
| 887 |
sender="bot", chat_container=chat_container,
|
| 888 |
-
|
| 889 |
to_llm_mode()
|
| 890 |
|
| 891 |
# βββββββββββββββββββββββββββββββββββββ intent λͺ¨λ
|
|
@@ -1234,14 +1240,21 @@ def intent_ui(travel_df, external_score_df, festival_df, weather_df, package_df,
|
|
| 1234 |
st.session_state[step_key] = "package_end"
|
| 1235 |
show_llm_inline() # νλκ·Έλ§ ON (rerun μμ)
|
| 1236 |
|
| 1237 |
-
|
| 1238 |
-
|
| 1239 |
-
|
|
|
|
| 1240 |
# ββββββββββββββββββ 7) μ’
λ£ λ¨κ³
|
| 1241 |
elif st.session_state[step_key] == "package_end":
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1242 |
log_and_render("νμνμ€ λ μΈμ λ μ§ λ μ°Ύμμ£ΌμΈμ! βοΈ",
|
| 1243 |
sender="bot", chat_container=chat_container,
|
| 1244 |
-
|
| 1245 |
to_llm_mode()
|
| 1246 |
|
| 1247 |
# βββββββββββββββββββββββββββββββββββββ emotion λͺ¨λ
|
|
@@ -1662,14 +1675,21 @@ def emotion_ui(travel_df, external_score_df, festival_df, weather_df, package_df
|
|
| 1662 |
st.session_state[step_key] = "package_end"
|
| 1663 |
show_llm_inline() # νλκ·Έλ§ ON (rerun μμ)
|
| 1664 |
|
| 1665 |
-
|
| 1666 |
-
|
| 1667 |
-
|
|
|
|
| 1668 |
# ββββββββββββββββββ 7) μ’
λ£ λ¨κ³
|
| 1669 |
elif st.session_state[step_key] == "package_end":
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1670 |
log_and_render("νμνμ€ λ μΈμ λ μ§ λ μ°Ύμμ£ΌμΈμ! βοΈ",
|
| 1671 |
sender="bot", chat_container=chat_container,
|
| 1672 |
-
|
| 1673 |
to_llm_mode()
|
| 1674 |
|
| 1675 |
# βββββββββββββββββββββββββββββββββββββ unknown λͺ¨λ
|
|
|
|
| 246 |
return data
|
| 247 |
|
| 248 |
# ββββββββββββββββββββββββββββββββ Streamlitμ© LLM λͺ¨λ UI ββββββββββββββββββββββββββββββββ
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 249 |
def render_llm_followup(chat_container, inline=False):
|
| 250 |
_ensure_llm_state()
|
| 251 |
MAX_TURNS = 6
|
|
|
|
| 333 |
st.session_state["llm_mode"] = False
|
| 334 |
st.rerun()
|
| 335 |
|
| 336 |
+
def render_llm_inline_if_open(chat_container):
|
| 337 |
+
"""llm_inline νλκ·Έκ° μΌμ Έ μμΌλ©΄ μΈλΌμΈ LLM ν¨λμ 그립λλ€."""
|
| 338 |
+
_ensure_llm_state()
|
| 339 |
+
if st.session_state.get("llm_inline", False):
|
| 340 |
+
render_llm_followup(chat_container, inline=True)
|
| 341 |
+
|
| 342 |
# μ§μ° μ΄κΈ°ν: import μμ μλ λ°μ΄ν° μ κ·Ό κΈμ§, μ¬κΈ°μ ν λ²λ§ μ£Όμ
|
| 343 |
init_datasets(
|
| 344 |
travel_df=travel_df,
|
|
|
|
| 641 |
return
|
| 642 |
|
| 643 |
# ββββββββββββββββββ 3) μΆμ² μ’
λ£ λ¨κ³: λ μ΄μ μΆμ²ν μ¬νμ§κ° μμ λ
|
| 644 |
+
elif st.session_state[step_key] == "recommend_end":
|
| 645 |
with chat_container:
|
| 646 |
# 3.1) λ©μμ§ μΆλ ₯
|
| 647 |
log_and_render(
|
|
|
|
| 875 |
# μΈμ
μ 리
|
| 876 |
st.session_state["package_rendered"] = True
|
| 877 |
st.session_state[step_key] = "package_end"
|
| 878 |
+
show_llm_inline()
|
| 879 |
|
| 880 |
+
# β
rerun μμ΄ κ°μ μ¬μ΄ν΄μ μΈλΌμΈ LLM ν¨λμ λ°λ‘ νμ
|
| 881 |
+
render_llm_inline_if_open(chat_container)
|
| 882 |
+
return
|
| 883 |
|
| 884 |
# ββββββββββββββββββ 7) μ’
λ£ λ¨κ³
|
| 885 |
elif st.session_state[step_key] == "package_end":
|
| 886 |
+
# μΈλΌμΈ LLMμ΄ μ΄λ € μμΌλ©΄ μλ΄ λ²λΈμ λ°λ³΅ μΆλ ₯νμ§ λ§κ³
|
| 887 |
+
# LLM ν¨λλ§ μ μ§ν©λλ€.
|
| 888 |
+
if st.session_state.get("llm_inline", False):
|
| 889 |
+
render_llm_inline_if_open(chat_container)
|
| 890 |
+
return
|
| 891 |
+
# μΈλΌμΈμ λ«μ κ²½μ°μλ§ λ§μ§λ§ μΈμ¬μ μ 체 LLM λͺ¨λ μ§μ
|
| 892 |
log_and_render("νμνμ€ λ μΈμ λ μ§ λ μ°Ύμμ£ΌμΈμ! βοΈ",
|
| 893 |
sender="bot", chat_container=chat_container,
|
| 894 |
+
key="goodbye")
|
| 895 |
to_llm_mode()
|
| 896 |
|
| 897 |
# βββββββββββββββββββββββββββββββββββββ intent λͺ¨λ
|
|
|
|
| 1240 |
st.session_state[step_key] = "package_end"
|
| 1241 |
show_llm_inline() # νλκ·Έλ§ ON (rerun μμ)
|
| 1242 |
|
| 1243 |
+
# β
rerun μμ΄ κ°μ μ¬μ΄ν΄μ μΈλΌμΈ LLM ν¨λμ λ°λ‘ νμ
|
| 1244 |
+
render_llm_inline_if_open(chat_container)
|
| 1245 |
+
return
|
| 1246 |
+
|
| 1247 |
# ββββββββββββββββββ 7) μ’
λ£ λ¨κ³
|
| 1248 |
elif st.session_state[step_key] == "package_end":
|
| 1249 |
+
# μΈλΌμΈ LLMμ΄ μ΄λ € μμΌλ©΄ μλ΄ λ²λΈμ λ°λ³΅ μΆλ ₯νμ§ λ§κ³
|
| 1250 |
+
# LLM ν¨λλ§ μ μ§ν©λλ€.
|
| 1251 |
+
if st.session_state.get("llm_inline", False):
|
| 1252 |
+
render_llm_inline_if_open(chat_container)
|
| 1253 |
+
return
|
| 1254 |
+
# μΈλΌμΈμ λ«μ κ²½μ°μλ§ λ§μ§λ§ μΈμ¬μ μ 체 LLM λͺ¨λ μ§μ
|
| 1255 |
log_and_render("νμνμ€ λ μΈμ λ μ§ λ μ°Ύμμ£ΌμΈμ! βοΈ",
|
| 1256 |
sender="bot", chat_container=chat_container,
|
| 1257 |
+
key="goodbye")
|
| 1258 |
to_llm_mode()
|
| 1259 |
|
| 1260 |
# βββββββββββββββββββββββββββββββββββββ emotion λͺ¨λ
|
|
|
|
| 1675 |
st.session_state[step_key] = "package_end"
|
| 1676 |
show_llm_inline() # νλκ·Έλ§ ON (rerun μμ)
|
| 1677 |
|
| 1678 |
+
# β
rerun μμ΄ κ°μ μ¬μ΄ν΄μ μΈλΌμΈ LLM ν¨λμ λ°λ‘ νμ
|
| 1679 |
+
render_llm_inline_if_open(chat_container)
|
| 1680 |
+
return
|
| 1681 |
+
|
| 1682 |
# ββββββββββββββββββ 7) μ’
λ£ λ¨κ³
|
| 1683 |
elif st.session_state[step_key] == "package_end":
|
| 1684 |
+
# μΈλΌμΈ LLMμ΄ μ΄λ € μμΌλ©΄ μλ΄ λ²λΈμ λ°λ³΅ μΆλ ₯νμ§ λ§κ³
|
| 1685 |
+
# LLM ν¨λλ§ μ μ§ν©λλ€.
|
| 1686 |
+
if st.session_state.get("llm_inline", False):
|
| 1687 |
+
render_llm_inline_if_open(chat_container)
|
| 1688 |
+
return
|
| 1689 |
+
# μΈλΌμΈμ λ«μ κ²½μ°μλ§ λ§μ§λ§ μΈμ¬μ μ 체 LLM λͺ¨λ μ§μ
|
| 1690 |
log_and_render("νμνμ€ λ μΈμ λ μ§ λ μ°Ύμμ£ΌμΈμ! βοΈ",
|
| 1691 |
sender="bot", chat_container=chat_container,
|
| 1692 |
+
key="goodbye")
|
| 1693 |
to_llm_mode()
|
| 1694 |
|
| 1695 |
# βββββββββββββββββββββββββββββββββββββ unknown λͺ¨λ
|