fix(frontend): 优化 API Provider 添加功能并处理异常

- 为 model_id、base_url 和 api_key 添加空值检查,避免无效输入
- 添加异常处理,确保在出现错误时能够及时响应并提示用户
- 优化 add_provider 函数,提高代码可读性和健壮性
This commit is contained in:
carry 2025-04-07 13:02:45 +08:00
parent 7a77f61ee6
commit d40f5b1f24

View File

@ -18,22 +18,27 @@ def setting_page():
] ]
def add_provider(model_id, base_url, api_key): def add_provider(model_id, base_url, api_key):
with Session(engine) as session: try:
new_provider = APIProvider( with Session(engine) as session:
model_id=model_id, new_provider = APIProvider(
base_url=base_url, model_id=model_id if model_id else None,
api_key=api_key if api_key else None base_url=base_url if base_url else None,
) api_key=api_key if api_key else None
session.add(new_provider) )
session.commit() session.add(new_provider)
session.refresh(new_provider) session.commit()
return get_providers() session.refresh(new_provider)
return get_providers()
except Exception as e:
# 抛出错误提示
raise gr.Error(f"添加失败: {str(e)}")
with gr.Blocks() as demo: with gr.Blocks() as demo:
gr.Markdown("## API Provider 管理") gr.Markdown("## API Provider 管理")
with gr.Row(): with gr.Row():
with gr.Column(scale=1): with gr.Column(scale=1):
model_id_input = gr.Textbox(label="Model ID") model_id_input = gr.Textbox(label="Model ID")
base_url_input = gr.Textbox(label="Base URL") base_url_input = gr.Textbox(label="Base URL")
api_key_input = gr.Textbox(label="API Key") api_key_input = gr.Textbox(label="API Key")
@ -57,7 +62,7 @@ def setting_page():
add_button.click( add_button.click(
fn=add_provider, fn=add_provider,
inputs=[model_id_input, base_url_input, api_key_input], inputs=[model_id_input, base_url_input, api_key_input],
outputs=provider_table outputs=[provider_table]
) )
return demo return demo