[Open WebUI] FileMetadataResponse의 meta 필드를 Optional로 변경하여 배치 추가 오류 수정
PR 링크: open-webui/open-webui#20022 상태: Merged | 변경: +1 / -1
들어가며
Open WebUI에서 여러 파일을 Knowledge에 한꺼번에 추가할 때, 메타데이터가 없는 파일(meta=None)이 포함되면 Input should be a valid dictionary라는 Pydantic 유효성 검사 오류가 발생하여 전체 배치가 실패하는 문제가 있었습니다. 원인은 FileMetadataResponse 모델의 meta 필드가 dict로 선언되어 None 값을 거부했기 때문입니다.
핵심 코드 분석
meta 필드 타입 수정
Before:
class FileMetadataResponse(BaseModel):
id: str
hash: Optional[str] = None
meta: dict
created_at: int # timestamp in epoch
updated_at: int # timestamp in epoch
After:
class FileMetadataResponse(BaseModel):
id: str
hash: Optional[str] = None
meta: Optional[dict] = None
created_at: int # timestamp in epoch
updated_at: int # timestamp in epoch
FileModel에서는 이미 meta가 Optional이었으므로, FileModel 데이터를 FileMetadataResponse로 변환할 때 불일치가 발생했습니다. 응답 모델의 타입을 원본 모델과 맞추는 간단한 수정입니다.
왜 이게 좋은가
- 배치 작업 안정성: 메타데이터가 없는 파일 하나 때문에 전체 배치 작업이 실패하는 문제를 방지합니다.
- 모델 일관성:
FileModel과FileMetadataResponse사이의 타입 불일치를 해소하여, 데이터 흐름에서 예상치 못한 오류를 줄입니다. - 하위 호환성: 기존에
meta가 항상 dict인 파일들은 영향을 받지 않습니다.None인 경우만 추가로 허용됩니다.
참고 자료
관련 포스트
PR Analysis 의 다른글
- 이전글 [triton] Triton에서 cuBLAS를 활용한 mxfp8 및 nvfp4 블록 스케일 행렬 곱셈 벤치마킹
- 현재글 : [Open WebUI] FileMetadataResponse의 meta 필드를 Optional로 변경하여 배치 추가 오류 수정
- 다음글 [Triton] AMD RDNA에서 matmul_ogs 설정 최적화 — 최대 46% 성능 향상
댓글