10

멀티모달 RAG 파이프라인 구현

Day 1: 멀티모달 RAG

학습 목표
  • PDF에서 텍스트, 이미지, 표를 분리 추출할 수 있다
  • GPT-4o를 활용한 이미지 분석 코드를 작성할 수 있다
  • 이미지와 표를 검색 가능한 텍스트로 바꿔 하나의 인덱스에 넣을 수 있다
  • 통합 벡터 DB를 구성할 수 있다

멀티모달 RAG 파이프라인 구현

제조 매뉴얼에서 텍스트, 이미지, 표를 모두 처리하는 RAG를 만들어보자.

목표

  1. PDF에서 요소별 분리 추출
  2. GPT-4o로 이미지 설명 생성
  3. 표 데이터를 구조화된 텍스트로 변환
  4. 통합 벡터 DB 구축

이번 주 실습 환경 (한 번만 만들어 두면 5일 내내 쓴다)

파이썬 패키지requirements.txt 로 버전을 못박는다. 버전을 적지 않으면 오늘 도는 코드가 다음 달에 ImportError 로 멈춘다. 실제로 이 주차가 쓰는 RAGAS 는 0.2 에서 API 가 바뀌었다.

# requirements.txt
openai>=1.40
chromadb>=0.5
rank-bm25==0.2.2
kiwipiepy>=0.20            # 한국어 형태소 분석 (Day 2)
unstructured[all-docs]>=0.16.25,<0.19
ragas==0.1.22              # Day 3. 0.2 이상은 API 가 다르다
datasets<3.0
python -m venv .venv
source .venv/bin/activate        # Windows: .venv\Scripts\activate
pip install -r requirements.txt

시스템 패키지unstructured[all-docs]strategy="hi_res" 는 파이썬 밖의 프로그램 두 개를 부른다. 이것을 빼먹으면 파싱이 조용히 텍스트만 뱉는다.

# macOS
brew install poppler tesseract tesseract-lang

# Ubuntu / Colab
apt-get install -y poppler-utils tesseract-ocr tesseract-ocr-kor

API 키 — 이 주차의 코드는 전부 OPENAI_API_KEY 를 읽는다.

export OPENAI_API_KEY="sk-..."   # Windows PowerShell: $env:OPENAI_API_KEY="sk-..."

돈이 나가는 곳 — 이미지 분석(detail="high")과 RAGAS 평가가 비용의 대부분이다. RAGAS 는 지표마다 LLM 을 부르므로 질문 30개짜리 평가 한 번에도 호출이 백 단위로 나간다. 먼저 질문 3~5개로 파이프라인이 도는지 확인하고, 전체 평가는 마지막에 한 번만 돌려라.

GPU 는 필요 없다. 이 주차는 전부 API 호출과 CPU 연산이다. 로컬에서 돌리기 어려우면 Colab 무료 런타임으로 충분하다.

스타터에 있는 메서드를 전부 채운다

해답은 스타터와 같은 골격이다. process_elements_get_surrounding_text 까지 여섯 개 메서드를 모두 채우면 사용 예시가 그대로 돌아간다.

청킹은 이번 과제에 없다. 요소(문단·표·이미지)를 단위로 그대로 색인한다. 요소가 길면 잘라야 하는데, 그것은 챌린지에서 다룬다.

아래 스타터 코드를 완성하세요.

에디터 로딩 중...
힌트 보기
  • Unstructured의 partition_pdf에서 strategy="hi_res"를 사용하면 이미지와 표도 추출됩니다
  • GPT-4o (gpt-4o)에 이미지를 보낼 때 base64 인코딩이 필요합니다
  • 표 변환 시 마크다운 형식과 자연어 설명 두 가지를 모두 생성하면 검색 품질이 올라갑니다
  • ChromaDB에 저장할 때 메타데이터에 element_type을 넣으면 필터 검색이 가능합니다
정답 보기
에디터 로딩 중...
AI로 학습하기 — 꿀팁
멀티모달 RAG 파이프라인 코드 생성AI 학습 팁

AI에게 PDF 문서 구조(텍스트·표·이미지 비율)를 알려주면 pdfminer+camelot+Vision API를 조합한 요소별 추출 파이프라인을 생성해줍니다.

제조 설비 매뉴얼 PDF에서 멀티모달 RAG 파이프라인을 구현해줘. pdfminer로 텍스트 블록 추출, camelot으로 표 추출(CSV 변환), pymupdf로 이미지 크롭 후 Gemini Vision API로 도면/회로도 분석, 세 종류를 통합한 벡터 DB(ChromaDB) 인덱싱 코드를 작성해줘.
이 팁이 도움이 됐나요?
용어