Spaces:
Running
Running
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 | |