diff --git a/api/apps/chunk_app.py b/api/apps/chunk_app.py index 0ece95933..9e8b19450 100644 --- a/api/apps/chunk_app.py +++ b/api/apps/chunk_app.py @@ -136,8 +136,11 @@ def set(): tenant_id = DocumentService.get_tenant_id(req["doc_id"]) if not tenant_id: return get_data_error_result(retmsg="Tenant not found!") + + embd_id = DocumentService.get_embd_id(req["doc_id"]) embd_mdl = TenantLLMService.model_instance( - tenant_id, LLMType.EMBEDDING.value) + tenant_id, LLMType.EMBEDDING.value, embd_id) + e, doc = DocumentService.get_by_id(req["doc_id"]) if not e: return get_data_error_result(retmsg="Document not found!") diff --git a/api/db/services/document_service.py b/api/db/services/document_service.py index 0703fdf55..ddbc5b606 100644 --- a/api/db/services/document_service.py +++ b/api/db/services/document_service.py @@ -182,6 +182,19 @@ class DocumentService(CommonService): return return docs[0]["tenant_id"] + @classmethod + @DB.connection_context() + def get_embd_id(cls, doc_id): + docs = cls.model.select( + Knowledgebase.embd_id).join( + Knowledgebase, on=( + Knowledgebase.id == cls.model.kb_id)).where( + cls.model.id == doc_id, Knowledgebase.status == StatusEnum.VALID.value) + docs = docs.dicts() + if not docs: + return + return docs[0]["embd_id"] + @classmethod @DB.connection_context() def get_doc_id_by_doc_name(cls, doc_name):