
RAG 기본 개념
Retrieval Augumentation Generation : 기존의 언어 모델에 외부 지식을 결합하여 더욱 정확하고 최신의 정보를 제공하는 혁신적인 접근 방식

모델을 학습(fine-tuning)하는 것이 아니라 RAG를 쓰는 이유가 무엇인가?



RAG에서 Knowledge Base


RAG DB를 활용하기 위한 전처리 과정


Multi-Modal RAG




Extract Text
extract text(텍스트 추출) 단계는, 다양한 원시 데이터(문서, PDF, 이미지, 스캔본, 웹페이지 등)를 LLM이 이해할 수 있는 순수 텍스트로 바꾸는 과정이에요.
1. 왜 Extract Text가 중요한가?
- LLM은 텍스트 기반 모델 → 숫자, 이미지, 표, 그래프 등을 직접 이해하지 못함.
- 따라서 PDF, Word, 이미지에 담긴 자연어 정보를 뽑아내야 LLM이 학습/추론에 활용 가능.
- 잘못 추출되면 정보 손실이나 오해가 생김 → 검색 품질, 답변 정확도에 직접 영향.
데이터 소스 함수/도구 기능 (한 줄 설명)
| PyPDF2.PdfReader() | PDF 문서에서 페이지 단위 텍스트 추출 | |
| pdfplumber.open() | PDF에서 텍스트 + 표까지 정밀 추출 | |
| PyPDFLoader | PDF 파일을 문서 객체(Document)로 로드 | |
| Word | docx.Document() | Word(.docx) 문서에서 텍스트 읽기 |
| 이미지/스캔본 | pytesseract.image_to_string() | 이미지에서 OCR로 텍스트 추출 |
| easyocr.Reader().readtext() | 다국어 OCR + 텍스트 위치 정보 제공 | |
| Azure Computer Vision OCR API | 클라우드 기반 OCR, 문장 단위 텍스트 추출 | |
| CSV/표 | pandas.read_csv() | CSV 파일을 DataFrame으로 로드 |
| pandas.read_excel() | Excel 파일을 DataFrame으로 로드 | |
| CSVLoader | CSV 파일을 문서 객체로 로드 | |
| 웹/HTML | BeautifulSoup.get_text() | HTML 태그 제거 후 본문 텍스트 추출 |
| trafilatura.extract() | 뉴스/블로그 본문 중심 텍스트 추출 | |
| UnstructuredHTMLLoader | HTML 파일을 문서 객체로 로드 | |
| JSON | JSONLoader | JSON 파일을 문서 객체로 로드 |
| 텍스트 파일 | TextLoader | 단순 텍스트 파일을 문서 객체로 로드 |
| 디렉토리 | DirectoryLoader | 디렉토리 내 모든 파일을 문서 객체로 로드 |
| 문서 분할 | load_and_split() | 로더 + splitter를 이용해 문서를 청크 단위로 나누어 List[Document] 형태 반환 |
2. Extract Text의 대표적인 사례
- PDF/Text 문서
- 단순 텍스트 문서 → 그대로 읽음
- PDF → PyPDF2, pdfplumber 같은 도구로 텍스트 추출
- 이미지/스캔 문서
- OCR(광학 문자 인식, Optical Character Recognition) → Tesseract, Azure Computer Vision OCR 사용
- 예: 스캔한 계약서 → 텍스트 변환 후 DB 저장
- 표·엑셀 데이터
- 셀별 데이터 추출 → 구조화된 텍스트(JSON, CSV)로 변환
- 웹 페이지
- HTML 크롤링 → BeautifulSoup 같은 라이브러리로 텍스트만 정제
3. 요약
- Extract Text = RAG의 첫 관문
- 모든 비텍스트 데이터를 LLM이 이해할 수 있는 텍스트로 변환하는 과정.
- OCR, PDF 파서, 웹 크롤링 등 다양한 기술이 쓰이며, 이 품질이 곧 RAG 성능의 기반이 됨.
4. 참고 (OCR이 정확히 뭘까?)
- 정의: 이미지 안에 들어 있는 글자를 찾아서 컴퓨터가 읽을 수 있는 텍스트 데이터로 바꾸는 기술. ( Optical Character Recognition )
- 예시 상황
- 스캔한 계약서 PDF에서 글자 뽑기
- 사진 찍은 영수증에서 금액, 품목 읽어내기
- 교과서 페이지 사진 → 텍스트 변환
🔎 어떻게 동작할까?
- 이미지 전처리: 흑백 변환, 노이즈 제거, 기울어진 글자 보정
- 문자 영역 탐지: 이미지에서 글자가 있는 부분을 찾아냄 (예: 박스 쳐주기)
- 문자 분할: 글자를 하나하나 쪼개서 인식 준비
- 패턴/모델 인식: 학습된 딥러닝 모델이나 패턴 매칭으로 "이건 A다", "이건 3이다" 식으로 인식
- 텍스트 출력: 사람이 읽는 문장 그대로 문자열로 반환
✨ OCR의 특징
- 장점: 문서 디지털화, 검색 가능하게 만들기, 데이터베이스 구축에 유용
- 한계:
- 글씨체가 특이하거나 흐리면 정확도↓
- 표나 수식, 복잡한 레이아웃은 잘 못 읽음 (→ 고급 OCR 엔진은 보완)
'AI BootCamp > AI agent 스터디' 카테고리의 다른 글
| 수요일_RAG에 대해서(Retriever) (0) | 2025.09.11 |
|---|---|
| 수요일_RAG에 대해서(Indexing) - OpenAIEmbeddings, Chroma, FAISS (0) | 2025.09.11 |
| 수요일_RAG에 대해서(Text Splitter) (0) | 2025.09.11 |
| 🔥LangGraph 개념 완전 정복 몰아보기_이론편🔥 (테디노트) (0) | 2025.09.10 |
| LangChain과 LangGraph에 대해서 (0) | 2025.09.10 |