mirror of
https://github.com/infiniflow/ragflow.git
synced 2026-07-15 09:28:27 +08:00
@@ -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
|
||||
|
||||
@@ -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
|
||||
|
||||
|
||||
|
||||
Reference in New Issue
Block a user