Skip to content

Commit 8ce248b

Browse files
authored
🐛 Fixes the model addition issue in ModelEngine. (#3026)
[Specification Detail] 1. Fixed the issue where the model list could not be retrieved when adding models in batches on the ME platform. 2. When adding a single model, check /open/router to modify model_factory.
1 parent 5c68af4 commit 8ce248b

3 files changed

Lines changed: 9 additions & 3 deletions

File tree

backend/services/model_management_service.py

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -55,6 +55,10 @@ async def create_model_for_tenant(user_id: str, tenant_id: str, model_data: Dict
5555
model_data["ssl_verify"] = False
5656
else:
5757
model_data["ssl_verify"] = True
58+
59+
# Set model_factory to modelengine when using open/router URL
60+
if "open/router" in model_base_url:
61+
model_data["model_factory"] = "modelengine"
5862
# Split model_name into repo and name
5963
model_repo, model_name = split_repo_name(
6064
model_data["model_name"]) if model_data.get("model_name") else ("", "")

frontend/app/[locale]/models/components/model/ModelAddDialog.tsx

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -281,8 +281,8 @@ export const ModelAddDialog = ({
281281
let getModelList;
282282
let getProviderSelectedModalList;
283283

284-
// 2. 根据条件赋值
285-
if (form.provider === "silicon") {
284+
// Use silicon hook for silicon and modelengine providers (both use the same API pattern)
285+
if (form.provider === "silicon" || form.provider === "modelengine") {
286286
({ getModelList, getProviderSelectedModalList } = siliconHook);
287287
} else if (form.provider === "dashscope") {
288288
({ getModelList, getProviderSelectedModalList } = dashscopeHook);

test/backend/services/test_model_management_service.py

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -359,7 +359,7 @@ async def test_create_model_for_tenant_success_llm():
359359

360360
@pytest.mark.asyncio
361361
async def test_create_model_for_tenant_open_router_disables_ssl():
362-
"""When base_url contains 'open/router' ssl_verify should be set to False."""
362+
"""When base_url contains 'open/router' ssl_verify should be set to False and model_factory to 'modelengine'."""
363363
svc = import_svc()
364364

365365
with mock.patch.object(svc, "get_model_by_display_name", return_value=None), \
@@ -381,6 +381,8 @@ async def test_create_model_for_tenant_open_router_disables_ssl():
381381
assert mock_create.call_count == 1
382382
create_args = mock_create.call_args[0][0]
383383
assert create_args["ssl_verify"] is False
384+
# model_factory should be set to modelengine when open/router URL is used
385+
assert create_args["model_factory"] == "modelengine"
384386

385387

386388
@pytest.mark.asyncio

0 commit comments

Comments
 (0)