refactor(mapper): use model alias resolution service

- Replace direct GlobalModel.name lookup with ModelCacheService.resolve_global_model_by_name_or_alias()
- Support model aliases in source_model parameter
- Leverage model resolution caching for better performance
This commit is contained in:
fawney19
2025-12-15 18:13:41 +08:00
parent 8f0a0cbdb1
commit 11774c69b6

View File

@@ -84,11 +84,11 @@ class ModelMapperMiddleware:
获取模型映射 获取模型映射
简化后的逻辑: 简化后的逻辑:
1. 通过 GlobalModel.name 直接查找 1. 通过 GlobalModel.name 或别名解析 GlobalModel
2. 找到 GlobalModel 后,查找该 Provider 的 Model 实现 2. 找到 GlobalModel 后,查找该 Provider 的 Model 实现
Args: Args:
source_model: 用户请求的模型名(必须是 GlobalModel.name source_model: 用户请求的模型名(可以是 GlobalModel.name 或别名
provider_id: 提供商ID (UUID) provider_id: 提供商ID (UUID)
Returns: Returns:
@@ -101,11 +101,9 @@ class ModelMapperMiddleware:
mapping = None mapping = None
# 步骤 1: 直接通过名称查找 GlobalModel # 步骤 1: 解析 GlobalModel(支持别名)
global_model = ( global_model = await ModelCacheService.resolve_global_model_by_name_or_alias(
self.db.query(GlobalModel) self.db, source_model
.filter(GlobalModel.name == source_model, GlobalModel.is_active == True)
.first()
) )
if not global_model: if not global_model: