Handle searching dataset without embedding model (#16742)

### Summary

Handle searching dataset without embedding model

In this PR, Searching datasets with different embedding models or
searching dataset with/without embedding models are not allowed. We will
improve the behavior later.
This commit is contained in:
qinling0210
2026-07-09 11:38:55 +08:00
committed by GitHub
parent 1430d0e431
commit ae96e636e9
14 changed files with 142 additions and 107 deletions

View File

@@ -751,6 +751,7 @@ def _load_chat_routes_unit_module(monkeypatch):
return False, None
kb_service_mod.KnowledgebaseService = _StubKnowledgebaseService
kb_service_mod.validate_dataset_embedding_models = lambda _kbs: None
monkeypatch.setitem(sys.modules, "api.db.services.knowledgebase_service", kb_service_mod)
llm_service_mod = ModuleType("api.db.services.llm_service")
@@ -1146,13 +1147,6 @@ def test_chat_create_accepts_provider_scoped_rerank_id_unit(monkeypatch):
monkeypatch.setattr(module.KnowledgebaseService, "query", lambda **_kwargs: [_DummyKB()])
monkeypatch.setattr(module.KnowledgebaseService, "get_by_id", lambda _id: (True, _DummyKB()))
def _split_model_name_and_factory(model_name):
return {"glm-4@ZHIPU-AI": ("glm-4", "default", "ZHIPU-AI"), "glm-4@CI@ZHIPU-AI": ("glm-4", "CI", "ZHIPU-AI"), "custom-reranker@OpenAI": ("custom-reranker", "default", "OpenAI")}.get(
model_name, (model_name, None)
)
monkeypatch.setattr(module, "split_model_name", _split_model_name_and_factory)
def _get_model_config_from_provider_instance(**kwargs):
query_calls.append(kwargs)
return {}
@@ -1225,7 +1219,6 @@ def test_chat_create_uses_direct_chat_fields_unit(monkeypatch):
monkeypatch.setattr(module.KnowledgebaseService, "accessible", lambda **_kwargs: [SimpleNamespace(id="kb-1")])
monkeypatch.setattr(module.KnowledgebaseService, "query", lambda **_kwargs: [_DummyKB()])
monkeypatch.setattr(module.KnowledgebaseService, "get_by_id", lambda _id: (True, _DummyKB()))
monkeypatch.setattr(module, "split_model_name", lambda model: (model.split("@")[0], "default", "factory"))
def _save(**kwargs):
saved.update(kwargs)
@@ -1380,7 +1373,6 @@ def test_patch_chat_drops_response_only_fields_before_update_unit(monkeypatch):
monkeypatch.setattr(module.TenantService, "get_by_id", lambda _tid: (True, SimpleNamespace(llm_id="glm-4")))
monkeypatch.setattr(module.KnowledgebaseService, "accessible", lambda **_kwargs: [SimpleNamespace(id="kb-1")])
monkeypatch.setattr(module.KnowledgebaseService, "query", lambda **_kwargs: [_DummyKB()])
monkeypatch.setattr(module, "split_model_name", lambda model: (model.split("@")[0], "default", "factory"))
monkeypatch.setattr(module, "get_api_key", lambda *args, **kwargs: SimpleNamespace(id=1))
def _update(_chat_id, req):
@@ -1450,7 +1442,6 @@ def test_update_chat_allows_knowledge_placeholder_without_sources_unit(monkeypat
monkeypatch.setattr(module.DialogService, "query", lambda **_kwargs: [SimpleNamespace(id="chat-1")])
monkeypatch.setattr(module.DialogService, "get_by_id", lambda _id: (True, _DummyDialogRecord(existing)))
monkeypatch.setattr(module.TenantService, "get_by_id", lambda _tid: (True, SimpleNamespace(llm_id="glm-4")))
monkeypatch.setattr(module, "split_model_name", lambda model: (model.split("@")[0], "default", "factory"))
updated = {}
def _update(_chat_id, payload):

View File

@@ -1497,6 +1497,7 @@ def _load_chat_routes_unit_module(monkeypatch):
"get_by_id": staticmethod(lambda _id: (True, _KB())),
},
)
kb_service_mod.validate_dataset_embedding_models = lambda _kbs: None
monkeypatch.setitem(sys.modules, "api.db.services.knowledgebase_service", kb_service_mod)
tenant_model_provider_mod = ModuleType("api.db.joint_services.tenant_model_service")

View File

@@ -330,6 +330,7 @@ def _load_chat_module(monkeypatch):
return False, None
kb_service_mod.KnowledgebaseService = _StubKnowledgebaseService
kb_service_mod.validate_dataset_embedding_models = lambda _kbs: None
monkeypatch.setitem(sys.modules, "api.db.services.knowledgebase_service", kb_service_mod)
tenant_llm_service_mod = ModuleType("api.db.services.tenant_llm_service")

View File

@@ -2301,6 +2301,7 @@ def _load_chat_api_module(monkeypatch):
kb_svc_mod = ModuleType("api.db.services.knowledgebase_service")
kb_svc_mod.KnowledgebaseService = SimpleNamespace(query=lambda **_k: [], accessible=lambda **_k: True)
kb_svc_mod.validate_dataset_embedding_models = lambda _kbs: None
monkeypatch.setitem(sys.modules, "api.db.services.knowledgebase_service", kb_svc_mod)
class _FakeLLMBundle:

View File

@@ -74,6 +74,7 @@ def _load_delete_datasets_module(monkeypatch, *, f2d_rows, file_filter_delete):
delete_by_id=lambda kb_id: True,
query=lambda **kwargs: [],
),
validate_dataset_embedding_models=lambda kbs: None,
)
_stub(
monkeypatch,