Spaces:
Sleeping
Sleeping
Update app.py
Browse files
app.py
CHANGED
|
@@ -248,90 +248,41 @@ def _llm_structured_extract(user_text: str):
|
|
| 248 |
# ββββββββββββββββββββββββββββββββ Streamlitμ© LLM λͺ¨λ UI ββββββββββββββββββββββββββββββββ
|
| 249 |
def render_llm_followup(chat_container, inline=False):
|
| 250 |
_ensure_llm_state()
|
| 251 |
-
MAX_TURNS = 6
|
| 252 |
|
| 253 |
-
|
| 254 |
-
if inline:
|
| 255 |
-
st.divider()
|
| 256 |
-
if st.session_state.pop("llm_intro_needed", False):
|
| 257 |
-
log_and_render(
|
| 258 |
-
"π§ μ΄μ λΆν°λ μμ μ§λ¬Έ λͺ¨λμμ. μ¬ν μΈμλ λλ νκ΅μ΄λ‘ λ¬Όμ΄λ³΄μΈμ!",
|
| 259 |
-
sender="bot",
|
| 260 |
-
chat_container=chat_container,
|
| 261 |
-
key=f"llm_intro_{random.randint(1,999999)}"
|
| 262 |
-
)
|
| 263 |
-
st.markdown("#### π€ LLM μ§λ¬Έ")
|
| 264 |
-
else:
|
| 265 |
-
# νμ€ν¬λ¦° λͺ¨λμμλ μλ΄ λ²λΈ λ¨Όμ
|
| 266 |
-
if st.session_state.pop("llm_intro_needed", False):
|
| 267 |
-
log_and_render(
|
| 268 |
-
"π§ μ΄μ λΆν°λ μμ μ§λ¬Έ λͺ¨λμμ. μ¬ν μΈμλ λλ νκ΅μ΄λ‘ λ¬Όμ΄λ³΄μΈμ!",
|
| 269 |
-
sender="bot",
|
| 270 |
-
chat_container=chat_container,
|
| 271 |
-
key=f"llm_intro_{random.randint(1,999999)}"
|
| 272 |
-
)
|
| 273 |
-
st.markdown("### π€ LLM μ§λ¬Έ")
|
| 274 |
|
| 275 |
-
#
|
| 276 |
-
|
| 277 |
-
|
| 278 |
-
|
| 279 |
-
key="llm_input"
|
| 280 |
-
)
|
| 281 |
|
| 282 |
-
|
| 283 |
-
|
| 284 |
-
|
| 285 |
-
|
| 286 |
-
st.session_state["llm_inline"] = False
|
| 287 |
-
st.session_state["llm_input"] = ""
|
| 288 |
-
log_and_render(
|
| 289 |
-
"LLM λͺ¨λλ₯Ό μ’
λ£ν κ²μ. νμνμ€ λ λ€μ μ§λ¬Έν΄ μ£ΌμΈμ! β¨",
|
| 290 |
-
sender="bot", chat_container=chat_container,
|
| 291 |
-
key=f"llm_end_inline_{random.randint(1,999999)}"
|
| 292 |
-
)
|
| 293 |
-
return
|
| 294 |
-
else:
|
| 295 |
-
# νμ€ν¬λ¦° μ’
λ£
|
| 296 |
-
st.session_state["llm_mode"] = False
|
| 297 |
-
st.session_state["llm_input"] = ""
|
| 298 |
-
log_and_render(
|
| 299 |
-
"LLM λͺ¨λλ₯Ό μ’
λ£ν κ²μ. νμνμ€ λ λ€μ μ§λ¬Έν΄ μ£ΌμΈμ! β¨",
|
| 300 |
-
sender="bot", chat_container=chat_container,
|
| 301 |
-
key=f"llm_end_full_{random.randint(1,999999)}"
|
| 302 |
-
)
|
| 303 |
-
st.rerun()
|
| 304 |
-
return
|
| 305 |
|
| 306 |
-
|
| 307 |
-
log_and_render(q, sender="user", chat_container=chat_container,
|
| 308 |
-
key=f"llm_user_{random.randint(1,999999)}")
|
| 309 |
-
st.session_state.llm_history.append({"role": "user", "content": q})
|
| 310 |
|
| 311 |
-
|
| 312 |
-
|
| 313 |
-
|
| 314 |
-
|
| 315 |
-
|
| 316 |
-
|
| 317 |
-
|
| 318 |
-
|
| 319 |
-
|
| 320 |
-
|
| 321 |
-
|
| 322 |
-
|
| 323 |
-
|
| 324 |
-
|
| 325 |
-
|
| 326 |
-
|
| 327 |
-
|
| 328 |
-
|
| 329 |
-
|
| 330 |
-
|
| 331 |
-
else:
|
| 332 |
-
if st.button("π LLM λͺ¨λ μ’
λ£", key="llm_close_full"):
|
| 333 |
-
st.session_state["llm_mode"] = False
|
| 334 |
-
st.rerun()
|
| 335 |
|
| 336 |
def render_llm_inline_if_open(chat_container):
|
| 337 |
"""llm_inline νλκ·Έκ° μΌμ Έ μμΌλ©΄ μΈλΌμΈ LLM ν¨λμ 그립λλ€."""
|
|
|
|
| 248 |
# ββββββββββββββββββββββββββββββββ Streamlitμ© LLM λͺ¨λ UI ββββββββββββββββββββββββββββββββ
|
| 249 |
def render_llm_followup(chat_container, inline=False):
|
| 250 |
_ensure_llm_state()
|
|
|
|
| 251 |
|
| 252 |
+
st.markdown("### β LLM μ§λ¬Έ")
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 253 |
|
| 254 |
+
# κΈ°μ‘΄ λν λ λ
|
| 255 |
+
for m in st.session_state.get("llm_msgs", []):
|
| 256 |
+
with st.chat_message(m["role"]):
|
| 257 |
+
st.markdown(m["content"])
|
|
|
|
|
|
|
| 258 |
|
| 259 |
+
# β οΈ μμ ― keyλ 'llm_query'λ‘ μ¬μ© (μ΄ keyμ λν΄ μ΄λμλ μ§μ λμ
κΈμ§)
|
| 260 |
+
user_msg = st.chat_input("무μμ΄λ λ¬Όμ΄λ³΄μΈμ (μ’
λ£νλ €λ©΄ 'μ’
λ£' μ
λ ₯)", key="llm_query")
|
| 261 |
+
if not user_msg:
|
| 262 |
+
return
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 263 |
|
| 264 |
+
text = user_msg.strip()
|
|
|
|
|
|
|
|
|
|
| 265 |
|
| 266 |
+
# μ’
λ£ λͺ
λ Ή μ²λ¦¬
|
| 267 |
+
if text in {"μ’
λ£", "quit", "exit"}:
|
| 268 |
+
st.session_state["llm_inline"] = False
|
| 269 |
+
st.session_state["llm_open"] = False
|
| 270 |
+
st.rerun()
|
| 271 |
+
return
|
| 272 |
+
|
| 273 |
+
# λν μ μ₯
|
| 274 |
+
st.session_state.setdefault("llm_msgs", [])
|
| 275 |
+
st.session_state["llm_msgs"].append({"role": "user", "content": text})
|
| 276 |
+
|
| 277 |
+
# LLM νΈμΆ (μμΈ μμ )
|
| 278 |
+
try:
|
| 279 |
+
bot = call_llm(text) # κΈ°μ‘΄ ν¨μ μ¬μ©
|
| 280 |
+
except Exception as e:
|
| 281 |
+
bot = "β οΈ LLM μλ΅μ λ°μ§ λͺ»νμ΅λλ€. Ollama μλ²λ₯Ό νμΈν΄ μ£ΌμΈμ."
|
| 282 |
+
st.session_state["llm_msgs"].append({"role": "assistant", "content": bot})
|
| 283 |
+
|
| 284 |
+
# β μ¬κΈ°μ st.session_state['llm_query']λ 'llm_input'μ μ§μ λμ
/μμ νμ§ λ§μΈμ.
|
| 285 |
+
st.rerun()
|
|
|
|
|
|
|
|
|
|
|
|
|
| 286 |
|
| 287 |
def render_llm_inline_if_open(chat_container):
|
| 288 |
"""llm_inline νλκ·Έκ° μΌμ Έ μμΌλ©΄ μΈλΌμΈ LLM ν¨λμ 그립λλ€."""
|