feat: 新增全局模型批量管理功能,优化提供商更新接口

- 模型管理页面新增批量管理对话框,支持搜索、快捷筛选和批量删除
- 快捷筛选支持:无提供商、无活跃提供商、已禁用、未调用、无价格
- 提供商 PATCH 接口返回完整的 ProviderWithEndpointsSummary
- 修复系统级格式转换开关的 tooltip 文案和按钮高亮样式
This commit is contained in:
fawney19
2026-02-28 00:01:15 +08:00
parent 5bfaee47cc
commit 2a0c684e88
3 changed files with 278 additions and 10 deletions

View File

@@ -24,9 +24,12 @@ from src.core.provider_templates.types import ProviderType
from src.database import get_db
from src.models.admin_requests import CreateProviderRequest, UpdateProviderRequest
from src.models.database import GlobalModel, Provider, ProviderAPIKey, ProviderEndpoint
from src.models.endpoint_models import ProviderWithEndpointsSummary
from src.services.cache.model_cache import ModelCacheService
from src.services.cache.provider_cache import ProviderCacheService
from .summary import _build_provider_summary
router = APIRouter(tags=["Provider CRUD"])
pipeline = ApiRequestPipeline()
@@ -242,7 +245,7 @@ async def create_provider(request: Request, db: Session = Depends(get_db)) -> An
@router.patch("/{provider_id}")
async def update_provider(
provider_id: str, request: Request, db: Session = Depends(get_db)
) -> None:
) -> ProviderWithEndpointsSummary:
"""
更新提供商配置
@@ -582,12 +585,7 @@ class AdminUpdateProviderAdapter(AdminApiAdapter):
provider_priority=provider.provider_priority,
)
return {
"id": provider.id,
"name": provider.name,
"is_active": provider.is_active,
"message": "提供商更新成功",
}
return _build_provider_summary(db, provider)
except InvalidRequestException:
db.rollback()
raise