diff --git a/api/controllers/service_api/dataset/dataset.py b/api/controllers/service_api/dataset/dataset.py index c100f5307..27e8dd3fa 100644 --- a/api/controllers/service_api/dataset/dataset.py +++ b/api/controllers/service_api/dataset/dataset.py @@ -369,6 +369,7 @@ class DatasetTagsApi(DatasetApiResource): ) parser.add_argument("tag_id", nullable=False, required=True, help="Id of a tag.", type=str) args = parser.parse_args() + args["type"] = "knowledge" tag = TagService.update_tags(args, args.get("tag_id")) binding_count = TagService.get_tag_binding_count(args.get("tag_id")) diff --git a/api/services/tag_service.py b/api/services/tag_service.py index be748e8dd..74c6150b4 100644 --- a/api/services/tag_service.py +++ b/api/services/tag_service.py @@ -46,6 +46,8 @@ class TagService: @staticmethod def get_tag_by_tag_name(tag_type: str, current_tenant_id: str, tag_name: str) -> list: + if not tag_type or not tag_name: + return [] tags = ( db.session.query(Tag) .filter(Tag.name == tag_name, Tag.tenant_id == current_tenant_id, Tag.type == tag_type) @@ -88,7 +90,7 @@ class TagService: @staticmethod def update_tags(args: dict, tag_id: str) -> Tag: - if TagService.get_tag_by_tag_name(args["type"], current_user.current_tenant_id, args["name"]): + if TagService.get_tag_by_tag_name(args.get("type", ""), current_user.current_tenant_id, args.get("name", "")): raise ValueError("Tag name already exists") tag = db.session.query(Tag).filter(Tag.id == tag_id).first() if not tag: