Fix: remove delete_documents uuid validation (#14533)

### What problem does this PR solve?

remove delete_documents uuid validation

### Type of change

- [x] Bug Fix (non-breaking change which fixes an issue)
This commit is contained in:
buua436
2026-04-30 18:56:33 +08:00
committed by GitHub
parent a69e0c73c7
commit 05ee7f8bb6
4 changed files with 34 additions and 12 deletions

View File

@@ -814,6 +814,31 @@ class DeleteReq(Base):
class DeleteDatasetReq(DeleteReq): ...
class DeleteDocumentReq(DeleteReq):
@field_validator("ids", mode="after")
@classmethod
def validate_ids(cls, v_list: list[str] | None) -> list[str] | None:
"""
Validate document IDs without enforcing UUIDv1.
Connector-backed documents can use non-UUID identifiers, so we only
enforce uniqueness here and leave existence checks to the delete API.
"""
if v_list is None:
return None
duplicates = [item for item, count in Counter(v_list).items() if count > 1]
if duplicates:
duplicates_str = ", ".join(duplicates)
raise PydanticCustomError(
"duplicate_uuids",
"Duplicate ids: '{duplicate_ids}'",
{"duplicate_ids": duplicates_str},
)
return v_list
class SearchDatasetReq(BaseModel):
model_config = ConfigDict(extra="ignore")
@@ -833,9 +858,6 @@ class SearchDatasetReq(BaseModel):
meta_data_filter: Annotated[dict | None, Field(default=None)]
class DeleteDocumentReq(DeleteReq): ...
class BaseListReq(BaseModel):
model_config = ConfigDict(extra="forbid")