From cce5e4e1140b87f84a54fd20a0ce1074e6aa74cc Mon Sep 17 00:00:00 2001 From: carry <2641257231@qq.com> Date: Wed, 9 Apr 2025 00:48:22 +0800 Subject: [PATCH] =?UTF-8?q?feat(frontend):=20=E5=AE=8C=E6=88=90=E4=BA=86?= =?UTF-8?q?=20API=20Provider=20=E5=88=A0=E9=99=A4=E5=92=8C=E6=B7=BB?= =?UTF-8?q?=E5=8A=A0=E4=BA=86=E7=BC=96=E8=BE=91=E5=8A=9F=E8=83=BD=E7=9A=84?= =?UTF-8?q?=E5=87=BD=E6=95=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- frontend/setting_page.py | 36 ++++++++++++++++++++++++++++++++++-- 1 file changed, 34 insertions(+), 2 deletions(-) diff --git a/frontend/setting_page.py b/frontend/setting_page.py index a792533..99816bf 100644 --- a/frontend/setting_page.py +++ b/frontend/setting_page.py @@ -8,6 +8,7 @@ from global_var import sql_engine def setting_page(): def get_providers() -> List[List[str]]: + selected_row = None try: # 添加异常处理 with Session(sql_engine) as session: providers = session.exec(select(APIProvider)).all() @@ -33,12 +34,31 @@ def setting_page(): except Exception as e: raise gr.Error(f"添加失败: {str(e)}") - selected_row = None # 保存当前选中行的全局变量 + def edit_provider(model_id, base_url, api_key): + global selected_row + print(f"edit_provider Selected row: {selected_row}") + return get_providers() + def delete_provider(): + global selected_row + if not selected_row: + raise gr.Error("请先选择要删除的行") + try: + with Session(sql_engine) as session: + provider = session.get(APIProvider, selected_row[0]) + if not provider: + raise gr.Error("找不到选中的记录") + session.delete(provider) + session.commit() + return get_providers() + except Exception as e: + raise gr.Error(f"删除失败: {str(e)}") + + selected_row = None # 保存当前选中行的全局变量 + def select_record(evt: gr.SelectData): global selected_row selected_row = evt.row_value - print(f"Selected row: {selected_row}") with gr.Blocks() as demo: gr.Markdown("## API Provider 管理") @@ -79,4 +99,16 @@ def setting_page(): provider_table.select(select_record, [], [], show_progress="hidden") + edit_button.click( + fn=edit_provider, + inputs=[], + outputs=[provider_table] + ) + + delete_button.click( + fn=delete_provider, + inputs=[], + outputs=[provider_table] + ) + return demo \ No newline at end of file