# -*- coding: utf-8 -*- """ @author: yq @time: 2024/12/4 @desc: """ import gradio as gr from webui import f_project_is_exist, f_data_upload, engine input_elems = set() elem_dict = {} with gr.Blocks() as demo: gr.HTML('

Easy-ML

') gr.HTML('

快速建模工具

') with gr.Tabs(): with gr.TabItem("数据"): with gr.Row(): project_name = gr.Textbox(label="项目名称", placeholder="请输入不重复的项目名称", info="项目名称将会被作为缓存目录名称,如果重复会导致结果被覆盖") with gr.Row(): file_data = gr.File(label="建模数据") with gr.Row(): data_upload = gr.Dataframe(visible=False, label="当前上传数据", max_height=300) with gr.Row(): data_insight = gr.Dataframe(visible=False, label="数据探查", max_height=600, wrap=True) with gr.TabItem("训练"): with gr.Row(): with gr.Column(): model_type = gr.Dropdown(["lr"], value="lr", label="模型") search_strategy = gr.Dropdown(["iv"], value="iv", label="特征搜索策略") y_column = gr.Textbox(label="Y标签") x_columns = gr.Textbox(label="X特征") gr.Slider(0.05, 1, value=0.1, label="分箱组合采样率", step=0.01), train_button = gr.Button("开始训练", variant="primary") with gr.Column(): gr.Textbox(value="输出") input_elems.update({project_name, file_data, data_upload, model_type, search_strategy}) elem_dict.update(dict( project_name=project_name, file_data=file_data, data_upload=data_upload, model_type=model_type, search_strategy=search_strategy )) engine.add_elems(elem_dict) project_name.change(fn=f_project_is_exist, inputs=input_elems) file_data.upload(fn=f_data_upload, inputs=input_elems, outputs=[data_upload, data_insight]) demo.launch(share=True) if __name__ == "__main__": pass