fix: separate chip display label (with emoji) from actual prompt text

_EXAMPLE_CHIPS stores (label, text) pairs.
Button shows emoji label, click fills msg_box with clean text only.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
2026-06-02 17:52:43 +09:00
co-authored by Claude Sonnet 4.6
parent 727c76beb4
commit dedafedcf5
+11 -11
View File
@@ -311,11 +311,11 @@ def _welcome_html(user_name: str) -> str:
"""
_EXAMPLE_QUESTIONS = [
"👶 육아휴직 급여 신청 방법을 알려주세요",
"🏫 어린이집 입소 대기 기간은 얼마나 걸리나요?",
"💰 아이 의료비 세금 공제는 어떻게 하나요?",
]
_EXAMPLE_CHIPS = [
("👶 육아휴직 급여 신청 방법을 알려주세요", "육아휴직 급여 신청 방법을 알려주세요"),
("🏫 어린이집 입소 대기 기간은 얼마나 걸리나요?", "어린이집 입소 대기 기간은 얼마나 걸리나요?"),
("💰 아이 의료비 세금 공제는 어떻게 하나요?", "아이 의료비 세금 공제는 어떻게 하나요?"),
] # (버튼 표시 텍스트, 실제 전송 텍스트)
@@ -799,11 +799,11 @@ with gr.Blocks(title="율봇", css=_CUSTOM_CSS, theme=_THEME, js=_JS) as demo:
)
send_btn = gr.Button("", variant="primary", scale=0, min_width=48, elem_classes=["pill-send-btn"])
# D4-4: 예시 질문 Chips (gr.Button — Gradio 이벤트로 msg_box 직접 업데이트)
# D4-4: 예시 질문 Chips — 버튼 label은 이모지 포함, 전송값은 텍스트만
with gr.Row(elem_classes=["example-chips-row"]):
chip_btns = [
gr.Button(q, elem_classes=["example-chip-btn"], size="sm")
for q in _EXAMPLE_QUESTIONS
gr.Button(label, elem_classes=["example-chip-btn"], size="sm")
for label, _ in _EXAMPLE_CHIPS
]
# 첨부 Accordions
@@ -863,9 +863,9 @@ with gr.Blocks(title="율봇", css=_CUSTOM_CSS, theme=_THEME, js=_JS) as demo:
# ── 이벤트 바인딩 ─────────────────────────────────────────────
# 예시 질문 chips → msg_box 채우기
for _q, _btn in zip(_EXAMPLE_QUESTIONS, chip_btns):
_btn.click(fn=lambda x=_q: x, outputs=[msg_box])
# 예시 질문 chips → msg_box 채우기 (이모지 제외한 텍스트만)
for (_, _text), _btn in zip(_EXAMPLE_CHIPS, chip_btns):
_btn.click(fn=lambda x=_text: x, outputs=[msg_box])
# 사이드바 네비게이션
_panels = [panel_chat, panel_doc_register, panel_doc_manage]