Compare commits
3 Commits
967133162e
...
cce5e4e114
Author | SHA1 | Date | |
---|---|---|---|
![]() |
cce5e4e114 | ||
![]() |
293f63017f | ||
![]() |
2e31f4f57c |
@ -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,6 +34,32 @@ def setting_page():
|
||||
except Exception as e:
|
||||
raise gr.Error(f"添加失败: {str(e)}")
|
||||
|
||||
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
|
||||
|
||||
with gr.Blocks() as demo:
|
||||
gr.Markdown("## API Provider 管理")
|
||||
|
||||
@ -58,7 +85,6 @@ def setting_page():
|
||||
edit_button = gr.Button("编辑选中行", variant="primary")
|
||||
delete_button = gr.Button("删除选中行", variant="stop")
|
||||
|
||||
# 绑定刷新按钮事件
|
||||
refresh_button.click(
|
||||
fn=get_providers,
|
||||
outputs=[provider_table],
|
||||
@ -71,4 +97,18 @@ def setting_page():
|
||||
outputs=[provider_table]
|
||||
)
|
||||
|
||||
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
|
@ -1,5 +1,5 @@
|
||||
openai>=1.0.0
|
||||
python-dotenv>=1.0.0
|
||||
pydantic>=2.0.0
|
||||
gradio>=3.0.0
|
||||
gradio>=5.0.0
|
||||
langchain>=0.3
|
Loading…
x
Reference in New Issue
Block a user