From 7242a2ce037c1c1009ff4f20eee36e614be3c2ac Mon Sep 17 00:00:00 2001 From: carry Date: Fri, 18 Apr 2025 15:07:46 +0800 Subject: [PATCH] =?UTF-8?q?feat(frontend):=20=E6=B7=BB=E5=8A=A0=E7=94=9F?= =?UTF-8?q?=E6=88=90=E6=95=B0=E6=8D=AE=E9=9B=86=E8=BF=9B=E5=BA=A6=E6=9D=A1?= =?UTF-8?q?=E5=8A=9F=E8=83=BD=E5=B9=B6=E4=BC=98=E5=8C=96=E4=BA=86=E7=95=8C?= =?UTF-8?q?=E9=9D=A2=E5=B8=83=E5=B1=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- frontend/dataset_generate_page.py | 24 ++++++++++++++++++++---- 1 file changed, 20 insertions(+), 4 deletions(-) diff --git a/frontend/dataset_generate_page.py b/frontend/dataset_generate_page.py index cceefa4..517450c 100644 --- a/frontend/dataset_generate_page.py +++ b/frontend/dataset_generate_page.py @@ -44,7 +44,9 @@ def dataset_generate_page(): ) prompt_state = gr.State(value=initial_prompt) - generate_button = gr.Button("生成数据集") + generate_button = gr.Button("生成数据集",variant="primary") + + output_text = gr.Textbox(label="生成结果", interactive=False) variables_dataframe = gr.Dataframe( headers=["变量名", "变量值"], @@ -54,7 +56,6 @@ def dataset_generate_page(): value=initial_dataframe_value # 设置初始化数据 ) - output_text = gr.Textbox(label="生成结果", interactive=False) def on_doc_change(selected_doc): # print(f"文档选择已更改为: {selected_doc}") @@ -67,10 +68,11 @@ def dataset_generate_page(): prompt_content = prompt_data["content"] prompt_template = PromptTemplate.from_template(prompt_content) input_variables = prompt_template.input_variables - dataframe_value = [[var, ""] for var in input_variables] + input_variables.remove("document_slice") + dataframe_value = [] if input_variables is None else input_variables return selected_prompt, dataframe_value - def on_generate_click(doc_state, prompt_state, variables_dataframe): + def on_generate_click(doc_state, prompt_state, variables_dataframe, progress=gr.Progress()): variables_dict = {} # 正确遍历DataFrame的行数据 for _, row in variables_dataframe.iterrows(): @@ -79,6 +81,20 @@ def dataset_generate_page(): if var_name: variables_dict[var_name] = var_value + import time + total_steps = 10 + for i in range(total_steps): + # 模拟每个步骤的工作负载 + time.sleep(0.5) + + # 更新进度条 + # 第一个参数是当前的进度比例 (0.0 到 1.0) + # desc 参数可以动态更新进度条旁边的描述文字 + current_progress = (i + 1) / total_steps + progress(current_progress, desc=f"处理步骤 {i + 1}/{total_steps}") + + return "all done" + doc_dropdown.change(on_doc_change, inputs=doc_dropdown, outputs=doc_state) prompt_dropdown.change(on_prompt_change, inputs=prompt_dropdown, outputs=[prompt_state, variables_dataframe])