m97j's picture
update app tab structure and live test
2249ab6
raw
history blame
2.1 kB
import gradio as gr
from case_loader import get_case_names, load_case, run_case
def build_ui():
with gr.Blocks(theme=gr.themes.Soft(primary_hue="blue", secondary_hue="purple")) as demo:
# ์ƒ๋‹จ ์†Œ๊ฐœ
gr.Markdown("""
# ๐Ÿ‘พ PersonaChatEngine HF-Serve
**๊ฒŒ์ž„ ๋‚ด NPC ๋ฉ”์ธ ๋ชจ๋ธ ์ถ”๋ก  ์„œ๋ฒ„**
Qwen 3B ๊ธฐ๋ฐ˜ LoRA ํŒŒ์ธํŠœ๋‹ ๋ชจ๋ธ์„ ์‚ฌ์šฉํ•˜์—ฌ NPC ๋Œ€์‚ฌ๋ฅผ ์ƒ์„ฑํ•ฉ๋‹ˆ๋‹ค.
""")
with gr.Row():
gr.Button("๐Ÿ“„ ์ƒ์„ธ ๋ฌธ์„œ ๋ณด๊ธฐ",
link="https://huggingface.co/spaces/m97j/PersonaChatEngine_HF-serve/blob/main/README.md")
gr.Button("๐Ÿ’ป Colab ํ…Œ์ŠคํŠธ ์—ด๊ธฐ",
link="https://colab.research.google.com/drive/1_-qH8kdoU2Jj58TdaSnswHex-BFefInq?usp=sharing#scrollTo=cFJGv8BJ8oPD")
gr.Markdown("### ๐ŸŽฏ ํ…Œ์ŠคํŠธ ์ผ€์ด์Šค ๊ธฐ๋ฐ˜ ๊ฐ„๋‹จ ์‹คํ–‰")
with gr.Row():
case_dropdown = gr.Dropdown(choices=get_case_names(), label="ํ…Œ์ŠคํŠธ ์ผ€์ด์Šค ์„ ํƒ", value=get_case_names()[0])
load_btn = gr.Button("์ผ€์ด์Šค ๋ถˆ๋Ÿฌ์˜ค๊ธฐ")
case_info = gr.Textbox(label="์ผ€์ด์Šค ์ •๋ณด", lines=10)
player_input = gr.Textbox(label="Player Utterance ์ˆ˜์ •", lines=2)
run_btn = gr.Button("๐Ÿš€ Run Inference", variant="primary")
npc_resp = gr.Textbox(label="NPC Response")
deltas = gr.JSON(label="Deltas")
flags = gr.JSON(label="Flags Probabilities")
load_btn.click(
fn=lambda name: load_case(get_case_names().index(name)),
inputs=[case_dropdown],
outputs=[case_info, player_input]
)
run_btn.click(
fn=lambda name, utt: run_case(get_case_names().index(name), utt),
inputs=[case_dropdown, player_input],
outputs=[npc_resp, deltas, flags]
)
gr.Markdown("""
---
โš ๏ธ **์‹ค์ œ ๊ฒŒ์ž„ ํŒŒ์ดํ”„๋ผ์ธ ํ…Œ์ŠคํŠธ**๋Š” [ai-server Swagger](https://huggingface.co/spaces/m97j/PersonaChatEngine_ai_server)์—์„œ ์ง„ํ–‰ํ•˜์„ธ์š”.
""")
return demo