feat(frontend): 添加生成数据集进度条功能并优化了界面布局

This commit is contained in:
carry 2025-04-18 15:07:46 +08:00
parent db6e2271dc
commit 7242a2ce03

View File

@ -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])