weekly-release-notes-2025-09-28-10-04

6 minute read

Published:

DataProc 주간 릴리즈 노트

멀티모달 문서 처리 및 이미지 임베딩 시스템 구축 - 2025년 10월 4일

주요 개발 내용 요약

DataProc 프로젝트는 멀티모달 문서 처리 시스템으로 진화하였습니다. 9월 28일부터 10월 4일까지 총 42개의 커밋이 진행되었으며, 1개의 주요 PR이 병합되어 이미지 업로드 및 임베딩 기능, 테이블 추출 시스템, 이미지 갤러리 및 채팅 통합이 완성되었습니다.


새로운 기능 (New Features)

1. 이미지 업로드 및 임베딩 시스템 구현 (#21)

  • 구현 완료: CLIP 모델 기반 이미지 임베딩 및 검색 시스템
  • 주요 기능:
    • 이미지 파일 직접 업로드 UI 구현
    • CLIP 모델을 활용한 이미지 임베딩 생성
    • Milvus 벡터 데이터베이스에 이미지 임베딩 저장
    • 이미지 서빙 엔드포인트 구현 (/images)
    • 이미지 업로드 및 관리를 위한 project_images 테이블 추가
  • 주요 커밋: 118489c, f97a00e, 1f86bb5

2. 멀티모달 문서 캡처 시스템 Phase 1 구현

  • 구현 완료: PDF 문서에서 이미지 및 테이블 자동 추출
  • 주요 기능:
    • PyMuPDF를 활용한 PDF 이미지 추출
    • 이미지 갤러리 UI 구축
    • 프로젝트별 이미지 관리 시스템
    • 이미지 메타데이터 저장 (페이지 번호, 바운딩 박스, 크기 등)
  • 주요 커밋: 14fec7e, 363656757

3. 테이블 추출 시스템 완성 (Phase 2)

  • 구현 완료: PDF 문서에서 테이블 자동 추출 및 OCR
  • 주요 기능:
    • Camelot 및 pdfplumber를 활용한 테이블 감지
    • Tesseract OCR을 통한 테이블 텍스트 추출 (eng+kor 지원)
    • 테이블 이미지 캡처 및 저장
    • 테이블 뷰어 UI 구현
    • 신뢰도 점수 기반 테이블 품질 평가
  • 주요 커밋: 0cf2c1f, 62c9df7, fd52540

4. 채팅 시스템에 이미지 표시 기능 추가

  • 구현 완료: AI 응답에 관련 이미지 자동 표시
  • 주요 기능:
    • 벡터 검색 결과에 이미지 메타데이터 포함
    • 채팅 응답에 관련 이미지 자동 삽입
    • 이미지 URL 경로 수정 (/api/images/images)
  • 주요 커밋: a54c915, bc57e04

개선사항 (Improvements)

1. 벡터 데이터베이스 쿼리 최적화

  • project_id 필터 지원: Milvus 쿼리에 프로젝트별 필터링 기능 추가
  • 검색 정확도 향상: 프로젝트 컨텍스트를 고려한 정확한 검색 결과 제공
  • 주요 커밋: bc57e04

2. API 엔드포인트 구조 개선

  • 관리자 전용 엔드포인트 분리: /admin 접두사 제거로 사용자 중심 API 구조 확립
  • 프로젝트 서비스 엔드포인트 통일: /project 엔드포인트로 일관성 있는 API 제공
  • 주요 커밋: f86b7e3, 476c2e9

3. 프로젝트 데이터 구조 개선

  • files_count 필드 추가: 프로젝트별 파일 개수 실시간 추적
  • 데이터 일관성 보장: 렌더링 시점에 files_count 계산하여 데이터 손실 방지
  • 디버깅 강화: files_count 데이터 흐름 추적을 위한 로그 추가
  • 주요 커밋: fd8fa6a, ca4f83c, 64a0fe3

4. 데이터베이스 스키마 관리 개선

  • Alembic 마이그레이션: project_images 테이블 마이그레이션 스크립트 추가
  • 스키마 버전 관리: 체계적인 데이터베이스 스키마 변경 추적
  • 주요 커밋: fd52540

버그 수정 (Bug Fixes)

1. 이미지 URL 경로 수정

  • 문제: 잘못된 이미지 URL 경로로 인한 이미지 로딩 실패
  • 해결: /api/images 경로를 /images로 수정
  • 주요 커밋: a54c915

2. project_file_id nullable 처리

  • 문제: 직접 업로드한 이미지에 project_file_id가 없어 오류 발생
  • 해결: project_file_id 필드를 nullable로 변경
  • 주요 커밋: bfa865a

3. 의존성 패키지 오류 수정

  • 문제: 존재하지 않는 jina-clip 패키지 참조
  • 해결: transformers CLIP 모델로 대체
  • 주요 커밋: 4eca8f7

4. 데이터 로딩 오류 수정

  • 문제: loadDocumentProjects에서 files_count 누락으로 데이터 손실
  • 해결: 데이터 로딩 시점에 files_count 계산 로직 추가
  • 주요 커밋: 64a0fe3

인프라 및 시스템 개선 (Infrastructure & System)

1. Milvus 설정 모듈화

  • milvus_config 모듈 추가: 이미지 임베딩 서비스를 위한 Milvus 설정 분리
  • 코드 재사용성 향상: 공통 Milvus 설정 모듈을 통한 중복 제거
  • 주요 커밋: 1f86bb5

2. 파일 업로드 시스템 개선

  • 3-tier 폴백 메커니즘: Docling → PyPDF2 → PyMuPDF 순차 시도
  • 문서 처리 안정성 향상: 다양한 PDF 형식 지원
  • 상세한 파일 업로드 플로우 문서화
  • 주요 커밋: 98ad076, 3acd2a1

3. 프론트엔드 의존성 업데이트

  • package-lock.json 업데이트: 최신 의존성 버전 반영
  • 보안 및 안정성 개선
  • 주요 커밋: 3193a17

문서화 (Documentation)

1. 이미지 임베딩 기술 문서

  • 완전한 기술 문서: 이미지 임베딩 시스템 구조 및 구현 세부사항 문서화
  • 번호 접두사 추가: 문서 순서 명확화를 위한 번호 추가
  • 문서 구조 개선: image-embedding 서브디렉토리로 정리
  • 주요 커밋: b20a248, e44b9a1, c8c3035

2. 객체 감지(Object Detection) 문서

  • 기술 문서 추가: 객체 감지 시스템에 대한 포괄적인 기술 문서 작성
  • 문서 구조화: object-detection 서브디렉토리로 정리
  • 주요 커밋: 3f1ff5c, b445f68

3. 문서 구조 재편

  • 카테고리별 서브디렉토리: 문서를 주제별로 체계적으로 구성
  • docs → research 디렉토리 이름 변경: 연구 문서임을 명확히 표현
  • 주요 커밋: a0de8ae, d3eca14

4. README 업데이트

  • 멀티모달 기능 강조: 이미지 및 테이블 추출 기능 설명 추가
  • 벡터 데이터베이스 참조 수정: ChromaDB → Milvus로 문서 업데이트
  • 제품 소개 개선: 기술 라이브러리 이름 제거 및 사용자 중심 설명
  • 주요 커밋: 9ac4db3, 122213e, c07ca14, 960df13

5. Docling 처리 가이드

  • 상세 가이드 추가: Docling 라이브러리를 활용한 문서 처리 상세 가이드
  • 3-tier 폴백 메커니즘 설명: 문서 처리 전략 상세 설명
  • 주요 커밋: c18e7d7, 98ad076

6. 프로젝트 명세 프레임워크

  • 프로젝트 헌법 추가: 프로젝트 원칙 및 가이드라인 문서화
  • 명세 프레임워크: 프로젝트 명세 구조 정립
  • 주요 커밋: 43a6f0d

성과 지표 (Metrics)

  • 총 커밋 수: 42개 커밋 (9/28 ~ 10/4)
  • 병합된 PR: 1개 주요 풀 리퀘스트 (#21)
  • 새로운 기능: 4개 핵심 멀티모달 시스템 구현
  • 주요 개선사항: 4개 시스템 최적화
  • 버그 수정: 4개 주요 버그 수정
  • 문서화: 6개 주요 문서 작성 및 개선

주요 PR 목록

  • #21: 이미지 업로드 및 임베딩 기능 구현

핵심 기술 스택 구현

  • 이미지 처리: CLIP 모델 기반 임베딩, PyMuPDF 이미지 추출
  • 테이블 처리: Camelot, pdfplumber, Tesseract OCR
  • 벡터 데이터베이스: Milvus (이미지 및 텍스트 통합 검색)
  • 멀티모달 검색: 텍스트-이미지 통합 벡터 검색
  • 문서 처리: Docling 기반 3-tier 폴백 메커니즘

향후 계획 (Future Plans)

1. 멀티모달 검색 고도화

  • 이미지-텍스트 크로스 모달 검색 강화
  • 테이블 구조 인식 및 쿼리 최적화
  • 이미지 캡션 자동 생성

2. 문서 처리 성능 최적화

  • 대용량 PDF 처리 속도 개선
  • 병렬 처리 시스템 구축
  • 메모리 사용량 최적화

3. 사용자 경험 개선

  • 이미지 갤러리 UI/UX 향상
  • 테이블 뷰어 기능 확장
  • 실시간 처리 상태 모니터링

4. AI 기능 강화

  • Vision-LLM 통합 완성
  • 이미지 기반 질의응답 시스템
  • 다이어그램 및 차트 이해 기능

결론

DataProc 프로젝트는 이번 주 멀티모달 문서 처리 시스템으로 대폭 진화하였습니다. CLIP 모델 기반 이미지 임베딩, 테이블 자동 추출 시스템, 이미지 갤러리 및 채팅 통합을 통해 텍스트뿐만 아니라 이미지와 테이블을 포함한 종합적인 문서 분석 플랫폼으로 발전하였습니다.

특히 3-tier 폴백 메커니즘을 통한 안정적인 문서 처리, Milvus 벡터 데이터베이스를 활용한 효율적인 멀티모달 검색, 체계적인 문서화를 통한 기술 지식 축적이 핵심 성과입니다.

앞으로 Vision-LLM 통합 완성과 멀티모달 검색 고도화를 통해 더욱 강력하고 지능적인 문서 분석 플랫폼으로 발전할 예정입니다.


문서 작성일: 2025년 10월 4일
버전: v0.2.0