Qwen3-Demo / ui_components /settings_header.py
littlebird13's picture
Update ui_components/settings_header.py
59f434a verified
import gradio as gr
import modelscope_studio.components.antd as antd
import modelscope_studio.components.antdx as antdx
import modelscope_studio.components.base as ms
from config import DEFAULT_SETTINGS, MODEL_OPTIONS, MAX_THINKING_BUDGET, MIN_THINKING_BUDGET, get_text
def SettingsHeader():
state = gr.State({"open": True})
with antdx.Sender.Header(title=get_text("Settings", "设置"),
open=True) as settings_header:
with antd.Form(value=DEFAULT_SETTINGS) as settings_form:
with antd.Form.Item(form_name="model",
label=get_text("Chat Model", "对话模型")):
with antd.Select(options=MODEL_OPTIONS):
with ms.Slot("labelRender",
params_mapping="""(option) => ({
label: option.label,
link: { href: window.MODEL_OPTIONS_MAP[option.value].link },
})"""):
antd.Typography.Text(as_item="label")
antd.Typography.Link(get_text("Model Link", "模型链接"),
href_target="_blank",
as_item="link")
with antd.Form.Item(form_name="thinking_budget",
label=get_text("Thinking Budget", "思考预算"),
elem_classes="setting-form-thinking-budget"):
antd.Slider(elem_style=dict(flex=1, marginRight=14),
min=MIN_THINKING_BUDGET,
max=MAX_THINKING_BUDGET,
tooltip=dict(formatter="(v) => `${v}k`"))
antd.InputNumber(max=MAX_THINKING_BUDGET,
min=MIN_THINKING_BUDGET,
elem_style=dict(width=100),
addon_after="k")
# with antd.Form.Item(form_name="sys_prompt",
# label=get_text("System Prompt", "系统提示")):
# antd.Input.Textarea(auto_size=dict(minRows=3, maxRows=6))
def close_header(state_value):
state_value["open"] = False
return gr.update(value=state_value)
state.change(fn=lambda state_value: gr.update(open=state_value["open"]),
inputs=[state],
outputs=[settings_header])
settings_header.open_change(fn=close_header,
inputs=[state],
outputs=[state])
return state, settings_form