fix: 修复删除知识库使用的向量模型报错的缺陷
This commit is contained in:
parent
2a73299b8b
commit
29b005e405
@ -22,6 +22,7 @@ from common.config.embedding_config import ModelManage
|
|||||||
from common.exception.app_exception import AppApiException
|
from common.exception.app_exception import AppApiException
|
||||||
from common.util.field_message import ErrMessage
|
from common.util.field_message import ErrMessage
|
||||||
from common.util.rsa_util import rsa_long_decrypt, rsa_long_encrypt
|
from common.util.rsa_util import rsa_long_decrypt, rsa_long_encrypt
|
||||||
|
from dataset.models import DataSet
|
||||||
from setting.models.model_management import Model, Status
|
from setting.models.model_management import Model, Status
|
||||||
from setting.models_provider.base_model_provider import ValidCode, DownModelChunkStatus
|
from setting.models_provider.base_model_provider import ValidCode, DownModelChunkStatus
|
||||||
from setting.models_provider.constants.model_provider_constants import ModelProvideConstants
|
from setting.models_provider.constants.model_provider_constants import ModelProvideConstants
|
||||||
@ -236,10 +237,20 @@ class ModelSerializer(serializers.Serializer):
|
|||||||
def delete(self, with_valid=True):
|
def delete(self, with_valid=True):
|
||||||
if with_valid:
|
if with_valid:
|
||||||
self.is_valid(raise_exception=True)
|
self.is_valid(raise_exception=True)
|
||||||
application_list = QuerySet(Application).filter(model_id=self.data.get('id')).all()
|
model_id = self.data.get('id')
|
||||||
if len(application_list) > 0:
|
model = Model.objects.filter(id=model_id).first()
|
||||||
raise AppApiException(500, f"该模型关联了{len(application_list)} 个应用,无法删除该模型。")
|
if not model:
|
||||||
QuerySet(Model).filter(id=self.data.get('id')).delete()
|
# 模型不存在,直接返回或抛出异常
|
||||||
|
raise AppApiException(500, "模型不存在")
|
||||||
|
if model.model_type == 'LLM':
|
||||||
|
application_count = Application.objects.filter(model_id=model_id).count()
|
||||||
|
if application_count > 0:
|
||||||
|
raise AppApiException(500, f"该模型关联了{application_count} 个应用,无法删除该模型。")
|
||||||
|
elif model.model_type == 'EMBEDDING':
|
||||||
|
dataset_count = DataSet.objects.filter(embedding_mode_id=model_id).count()
|
||||||
|
if dataset_count > 0:
|
||||||
|
raise AppApiException(500, f"该模型关联了{dataset_count} 个知识库,无法删除该模型。")
|
||||||
|
model.delete()
|
||||||
return True
|
return True
|
||||||
|
|
||||||
def pause_download(self, with_valid=True):
|
def pause_download(self, with_valid=True):
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user