Fix: model provider orders (#15524)

Fix: model provider orders
This commit is contained in:
Wang Qi
2026-06-03 10:17:12 +08:00
committed by GitHub
parent 9799f33549
commit 583daf47d5
3 changed files with 34 additions and 34 deletions

View File

@@ -45,6 +45,13 @@ MODEL_TAG_TO_TYPE = {
}
def _to_int(v, default=500):
try:
return int(v)
except (TypeError, ValueError):
return default
def _get_model_info(tenant_id: str, default_model: str, model_type: str):
"""
Parse a composite model string (modelName@instanceName@providerName or modelName@providerName)
@@ -307,6 +314,7 @@ def list_tenant_added_models(tenant_id: str, model_type_filter: str=None):
added_models = []
model_key_in_factory = []
provider_names = [provider.provider_name for provider in providers]
factory_rank_mapping = {factory["name"]: -_to_int(factory.get("rank", "500")) for factory in FACTORY_LLM_INFOS}
for factory in FACTORY_LLM_INFOS:
if factory["name"] not in provider_names:
continue
@@ -357,6 +365,6 @@ def list_tenant_added_models(tenant_id: str, model_type_filter: str=None):
"instance_name": instance_info_map[instance_id].instance_name if instance_info_map.get(instance_id) else ""
})
added_models.sort(key=lambda x: (x["provider_name"], x["instance_name"], x["name"]))
added_models.sort(key=lambda x: (factory_rank_mapping.get(x["provider_name"]), x["provider_name"], x["instance_name"]))
return True, added_models

View File

@@ -28,6 +28,13 @@ from api.db.services.tenant_model_service import TenantModelService
from rag.llm import EmbeddingModel, ChatModel, RerankModel
def _to_int(v, default=500):
try:
return int(v)
except (TypeError, ValueError):
return default
def list_providers(tenant_id: str, all_available: bool = False):
"""
List providers for a tenant.
@@ -42,6 +49,8 @@ def list_providers(tenant_id: str, all_available: bool = False):
if not FACTORY_LLM_INFOS:
return False, []
factory_rank_mapping = {factory["name"]: -_to_int(factory.get("rank", "500")) for factory in FACTORY_LLM_INFOS}
if all_available:
providers = []
for factory_info in FACTORY_LLM_INFOS:
@@ -59,7 +68,7 @@ def list_providers(tenant_id: str, all_available: bool = False):
"default": factory_info.get("url", "")
}
})
providers.sort(key=lambda x: x["name"])
providers.sort(key=lambda x: (factory_rank_mapping.get(x["name"]), x["name"]))
return True, providers
# List tenant-configured providers
@@ -82,7 +91,7 @@ def list_providers(tenant_id: str, all_available: bool = False):
"default": factory_info.get("url", "")
}
})
providers.sort(key=lambda x: x["name"])
providers.sort(key=lambda x: (factory_rank_mapping.get(x["name"]), x["name"]))
return True, providers