diff --git a/frontend/dataset_generate_page.py b/frontend/dataset_generate_page.py index 0666b02..2cfcacd 100644 --- a/frontend/dataset_generate_page.py +++ b/frontend/dataset_generate_page.py @@ -1,9 +1,41 @@ import gradio as gr +from global_var import docs, scan_docs_directory, prompt_store def dataset_generate_page(): with gr.Blocks() as demo: gr.Markdown("## 数据集生成") with gr.Row(): with gr.Column(): - pass + # 获取文档列表并设置初始值 + docs_list = [str(doc.name) for doc in scan_docs_directory("workdir")] + 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 = prompt_store.all() + prompt_choices = [f"{p['id']} {p['name']}" for p in prompts] + initial_prompt = prompt_choices[0] if prompt_choices else None + + prompt_dropdown = gr.Dropdown( + choices=prompt_choices, + value=initial_prompt, # 设置初始选中项 + label="选择模板", + allow_custom_value=True, + interactive=True + ) + prompt_state = gr.State(value=initial_prompt) # 用模板初始值初始化状态 + + # 绑定事件(保留原有逻辑,确保交互时更新) + doc_dropdown.change(lambda x: x, inputs=doc_dropdown, outputs=doc_state) + prompt_dropdown.change(lambda x: x, inputs=prompt_dropdown, outputs=prompt_state) + return demo \ No newline at end of file diff --git a/global_var.py b/global_var.py index f5c1482..6eca116 100644 --- a/global_var.py +++ b/global_var.py @@ -1,4 +1,6 @@ from db import get_sqlite_engine,get_prompt_tinydb +from tools import scan_docs_directory prompt_store = get_prompt_tinydb("workdir") -sql_engine = get_sqlite_engine("workdir") \ No newline at end of file +sql_engine = get_sqlite_engine("workdir") +docs = scan_docs_directory("workdir") \ No newline at end of file