app.py 2.2 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758
  1. # -*- coding: utf-8 -*-
  2. """
  3. @author: yq
  4. @time: 2024/12/4
  5. @desc:
  6. """
  7. import gradio as gr
  8. from webui import f_project_is_exist, f_data_upload, engine
  9. input_elems = set()
  10. elem_dict = {}
  11. with gr.Blocks() as demo:
  12. gr.HTML('<h1 ><center><font size="5">Easy-ML</font></center></h1>')
  13. gr.HTML('<h2 ><center><font size="2">快速建模工具</font></center></h2>')
  14. with gr.Tabs():
  15. with gr.TabItem("数据"):
  16. with gr.Row():
  17. project_name = gr.Textbox(label="项目名称", placeholder="请输入不重复的项目名称",
  18. info="项目名称将会被作为缓存目录名称,如果重复会导致结果被覆盖")
  19. with gr.Row():
  20. file_data = gr.File(label="建模数据")
  21. with gr.Row():
  22. data_upload = gr.Dataframe(visible=False, label="当前上传数据", max_height=300)
  23. with gr.Row():
  24. data_insight = gr.Dataframe(visible=False, label="数据探查", max_height=600, wrap=True)
  25. with gr.TabItem("训练"):
  26. with gr.Row():
  27. with gr.Column():
  28. model_type = gr.Dropdown(["lr"], value="lr", label="模型")
  29. search_strategy = gr.Dropdown(["iv"], value="iv", label="特征搜索策略")
  30. y_column = gr.Textbox(label="Y标签")
  31. x_columns = gr.Textbox(label="X特征")
  32. gr.Slider(0.05, 1, value=0.1, label="分箱组合采样率", step=0.01),
  33. train_button = gr.Button("开始训练", variant="primary")
  34. with gr.Column():
  35. gr.Textbox(value="输出")
  36. input_elems.update({project_name, file_data, data_upload, model_type, search_strategy})
  37. elem_dict.update(dict(
  38. project_name=project_name,
  39. file_data=file_data,
  40. data_upload=data_upload,
  41. model_type=model_type,
  42. search_strategy=search_strategy
  43. ))
  44. engine.add_elems(elem_dict)
  45. project_name.change(fn=f_project_is_exist, inputs=input_elems)
  46. file_data.upload(fn=f_data_upload, inputs=input_elems, outputs=[data_upload, data_insight])
  47. demo.launch(share=True)
  48. if __name__ == "__main__":
  49. pass