TL;DR
작성자는 LlamaParse가 인도 헌법처럼 각주가 많고 조문 경계가 중요한 문서에서 대규모 청크 병합과 각주 흡수로 인해 환각을 유발했다고 진단했고, PyMuPDF로 원시 텍스트를 추출해 각주 구분선 정규표현식으로 하단을 제거하고 Article 경계 기반으로 청킹해 3,248개의 정밀 청크를 생성했다고 보고했다. 각 청크에 article_number 메타데이터를 주입하고 LangGraph가 질의에서 특정 Article을 감지하면 Pinecone에 정확한 메타데이터 필터({"article_number": {"$eq": "19"}})를 적용해 벡터 검색을 우회하는 방식을 도입해 환각을 근본적으로 차단했다. 운영 안정성을 위해 파일 수준 SHA-256 해시와 결정론적 MD5 청크 ID를 도입해 변경된 파일만 재처리하고 upsert로 덮어쓰게 설계했으며, 이로써 재동기화 시 중복과 불일치 없이 안전하게 운영할 수 있다고 보고되었다.
실용적 조언
- 법률·헌법처럼 조문 경계와 각주가 중요한 문서는 범용 LLM 기반 파서를 신뢰하면 안 된다는 경험이 반복됐다. 원문 텍스트를 PyMuPDF로 직접 추출하고 문서 고유의 표식을 정규표현식으로 분할해 각주를 배제하는 전처리 파이프라인이 실무에서 효과를 냈다. 또한 질의 의도에서 특정 조문을 판별할 수 있다면 메타데이터 필터를 활용해 벡터 검색을 우회하는 것이 환각을 줄이는 실전적 방법이다.
섹션별 상세
언급된 도구
범용 LLM 기반 문서 파싱 도구로 사용되었으나 각주·조문 분할에서 실패했다.
PDF에서 원시 텍스트와 페이지 구조를 직접 추출하는 라이브러리로 각주 제거와 정규표현식 기반 분할에 사용되었다.
벡터 인덱스에 청크를 저장하고 메타데이터 필터를 적용해 조문 단위 검색을 수행하는 벡터 데이터베이스로 사용되었다.
질의의 의도를 판별해 retriever로 메타데이터를 전달하는 라우터 역할을 수행했다.
파일의 SHA-256 해시를 저장해 변경 검사를 수행하고 이던포턴시를 관리하는 저장소로 사용되었다.
AI 요약 · 북마크 · 개인 피드 설정 — 무료
출처 · 인용 안내
인용 시 "요약 출처: AI Trends (aitrends.kr)"를 표기하고, 사실 확인은 원문 보기 기준으로 진행해 주세요. 자세한 기준은 운영 정책을 참고해 주세요.