import gradio as gr import sys from pathlib import Path sys.path.append(str(Path(__file__).resolve().parent.parent)) from global_var import get_docs, get_prompt_store def dataset_generate_page(): with gr.Blocks() as demo: gr.Markdown("## 数据集生成") with gr.Row(): with gr.Column(): # 获取文档列表并设置初始值 docs_list = [str(doc.name) for doc in get_docs()] initial_doc = docs_list[0] if docs_list else None doc_dropdown = gr.Dropdown( choices=docs_list, value=initial_doc, # 设置初始选中项 label="选择文档", allow_custom_value=True, interactive=True ) doc_state = gr.State(value=initial_doc) # 用文档初始值初始化状态 with gr.Column(): # 获取模板列表并设置初始值 prompts = get_prompt_store().all() prompt_list = [f"{p['id']} {p['name']}" for p in prompts] initial_prompt = prompt_list[0] if prompt_list else None prompt_dropdown = gr.Dropdown( choices=prompt_list, value=initial_prompt, # 设置初始选中项 label="选择模板", allow_custom_value=True, interactive=True ) prompt_state = gr.State(value=initial_prompt) # 用模板初始值初始化状态 # 新增事件绑定 def on_doc_change(selected_doc): print(f"文档选择已更改为: {selected_doc}") return selected_doc def on_prompt_change(selected_prompt): print(f"模板选择已更改为: {selected_prompt}") return selected_prompt doc_dropdown.change(on_doc_change, inputs=doc_dropdown, outputs=doc_state) prompt_dropdown.change(on_prompt_change, inputs=prompt_dropdown, outputs=prompt_state) return demo if __name__ == "__main__": from global_var import init_global_var init_global_var("workdir") demo = dataset_generate_page() demo.launch()