支持函数高级用法
This commit is contained in:
14
__main__.py
14
__main__.py
@ -186,15 +186,14 @@ class ChatBot(ChatBotFrame):
|
|||||||
self.variant = crazy_fns[k]["Color"] if "Color" in crazy_fns[k] else "secondary"
|
self.variant = crazy_fns[k]["Color"] if "Color" in crazy_fns[k] else "secondary"
|
||||||
crazy_fns[k]["Button"] = gr.Button(k, variant=self.variant)
|
crazy_fns[k]["Button"] = gr.Button(k, variant=self.variant)
|
||||||
crazy_fns[k]["Button"].style(size="sm")
|
crazy_fns[k]["Button"].style(size="sm")
|
||||||
with gr.Accordion("更多函数插件", open=False):
|
with gr.Accordion("更多函数插件/高级用法", open=False):
|
||||||
dropdown_fn_list = [k for k in crazy_fns.keys() if
|
dropdown_fn_list = [k for k in crazy_fns.keys() if
|
||||||
not crazy_fns[k].get("AsButton", True)]
|
not crazy_fns[k].get("AsButton", True)]
|
||||||
self.dropdown = gr.Dropdown(dropdown_fn_list, value=r"打开插件列表", label="").style(
|
self.dropdown = gr.Dropdown(dropdown_fn_list, value=r"打开插件列表", label="").style(
|
||||||
container=False)
|
container=False)
|
||||||
with gr.Row():
|
self.plugin_advanced_arg = gr.Textbox(show_label=False, label="高级参数输入区", visible=True,
|
||||||
self.plugin_advanced_arg = gr.Textbox(show_label=True, label="高级参数输入区", visible=False,
|
placeholder="这里是特殊函数插件的高级参数输入区").style(
|
||||||
placeholder="这里是特殊函数插件的高级参数输入区").style(
|
container=False)
|
||||||
container=False)
|
|
||||||
self.switchy_bt = gr.Button(r"请先从插件列表中选择", variant="secondary")
|
self.switchy_bt = gr.Button(r"请先从插件列表中选择", variant="secondary")
|
||||||
|
|
||||||
|
|
||||||
@ -285,16 +284,15 @@ class ChatBot(ChatBotFrame):
|
|||||||
def on_dropdown_changed(k):
|
def on_dropdown_changed(k):
|
||||||
# variant = crazy_fns[k]["Color"] if "Color" in crazy_fns[k] else "secondary"
|
# variant = crazy_fns[k]["Color"] if "Color" in crazy_fns[k] else "secondary"
|
||||||
# return {self.switchy_bt: gr.update(value=k, variant=variant)}
|
# return {self.switchy_bt: gr.update(value=k, variant=variant)}
|
||||||
|
|
||||||
variant = crazy_fns[k]["Color"] if "Color" in crazy_fns[k] else "secondary"
|
variant = crazy_fns[k]["Color"] if "Color" in crazy_fns[k] else "secondary"
|
||||||
ret = {self.switchy_bt: gr.update(value=k, variant=variant)}
|
ret = {self.switchy_bt: gr.update(value=k, variant=variant)}
|
||||||
if crazy_fns[k].get("AdvancedArgs", False): # 是否唤起高级插件参数区
|
if crazy_fns[k].get("AdvancedArgs", False): # 是否唤起高级插件参数区
|
||||||
ret.update({self.plugin_advanced_arg: gr.update(visible=True, label=f"插件[{k}]的高级参数说明:" + crazy_fns[k].get("ArgsReminder", [f"没有提供高级参数功能说明"]))})
|
ret.update({self.plugin_advanced_arg: gr.update(visible=True, interactive=True, label=f"插件[{k}]的高级参数说明:" + crazy_fns[k].get("ArgsReminder", [f"没有提供高级参数功能说明"]))})
|
||||||
else:
|
else:
|
||||||
ret.update({self.plugin_advanced_arg: gr.update(visible=False, label=f"插件[{k}]不需要高级参数。")})
|
ret.update({self.plugin_advanced_arg: gr.update(visible=False, label=f"插件[{k}]不需要高级参数。")})
|
||||||
return ret
|
return ret
|
||||||
|
|
||||||
self.dropdown.select(on_dropdown_changed, [self.dropdown], [self.switchy_bt])
|
self.dropdown.select(on_dropdown_changed, [self.dropdown], [self.switchy_bt, self.plugin_advanced_arg])
|
||||||
|
|
||||||
# 随变按钮的回调函数注册
|
# 随变按钮的回调函数注册
|
||||||
def route(k, ipaddr: gr.Request, *args, **kwargs):
|
def route(k, ipaddr: gr.Request, *args, **kwargs):
|
||||||
|
|||||||
Reference in New Issue
Block a user