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