From 4d8754aad21ac6afe9fca6b803e210e7a7984892 Mon Sep 17 00:00:00 2001 From: carry <2641257231@qq.com> Date: Wed, 9 Apr 2025 17:19:40 +0800 Subject: [PATCH] =?UTF-8?q?feat(frontend):=20=E5=AE=9E=E7=8E=B0=E6=95=B0?= =?UTF-8?q?=E6=8D=AE=E9=9B=86=E7=94=9F=E6=88=90=E9=A1=B5=E9=9D=A2=E7=9A=84?= =?UTF-8?q?=E6=96=87=E6=A1=A3=E5=92=8C=E6=A8=A1=E6=9D=BF=E9=80=89=E6=8B=A9?= =?UTF-8?q?=E5=8A=9F=E8=83=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 添加文档和模板的下拉选择框 - 实现文档和模板选择后的状态更新 - 优化页面布局,分为文档和模板两个列 --- frontend/dataset_generate_page.py | 34 ++++++++++++++++++++++++++++++- global_var.py | 4 +++- 2 files changed, 36 insertions(+), 2 deletions(-) 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