# -*- 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