feat(frontend): 添加 API Provider 的增加功能

This commit is contained in:
carry 2025-04-07 00:28:52 +08:00
parent 841e14a093
commit 7a77f61ee6

View File

@ -17,19 +17,47 @@ def setting_page():
for p in providers for p in providers
] ]
def add_provider(model_id, base_url, api_key):
with Session(engine) as session:
new_provider = APIProvider(
model_id=model_id,
base_url=base_url,
api_key=api_key if api_key else None
)
session.add(new_provider)
session.commit()
session.refresh(new_provider)
return get_providers()
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):
model_id_input = gr.Textbox(label="Model ID")
base_url_input = gr.Textbox(label="Base URL")
api_key_input = gr.Textbox(label="API Key")
add_button = gr.Button("添加新API")
# API Provider列表 # API Provider列表
with gr.Column(scale=2): with gr.Column(scale=3):
provider_table = gr.DataFrame( provider_table = gr.DataFrame(
headers=["id" , "model id", "URL", "API Key"], headers=["id" , "model id", "base URL", "API Key"],
datatype=["number","str", "str", "str"], datatype=["number","str", "str", "str"],
interactive=True, interactive=True,
value=get_providers(), value=get_providers(),
wrap=True, wrap=True,
col_count=(4, "fixed") col_count=(4, "auto")
) )
with gr.Row():
edit_button = gr.Button("编辑选中行")
delete_button = gr.Button("删除选中行")
add_button.click(
fn=add_provider,
inputs=[model_id_input, base_url_input, api_key_input],
outputs=provider_table
)
return demo return demo