Compare commits

...

3 Commits

Author SHA1 Message Date
carry
cce5e4e114 feat(frontend): 完成了 API Provider 删除和添加了编辑功能的函数 2025-04-09 00:48:22 +08:00
carry
293f63017f feat(frontend): 添加 API Provider 表格选中行状态监听
- 新增选中行的全局变量 selected_row
- 实现 select_record 函数来保存选中行数据
- 在表格中添加选中行事件监听
- 优化代码结构,提高可读性和可维护性
2025-04-09 00:37:15 +08:00
carry
2e31f4f57c build: 升级 gradio 至 5.0.0 版本
- 将 requirements.txt 中 gradio 版本要求从 >=3.0.0 修改为 >=5.0.0
- 此次升级可能会影响项目的用户界面或功能,需要进行测试以确保兼容性
2025-04-08 16:17:21 +08:00
2 changed files with 42 additions and 2 deletions

View File

@ -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

View File

@ -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