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