[Cortex_AI_4] 문서 파싱 시합 AI_PARSE_DOCUMENT VS AI_COMPLETE
AI_PARSE_DOCUMENT VS AI_COMPLETE
비정형 문서를 읽어들여 데이터화하여 이 데이터를 참고해서 답변하는 AI...
RAG라고 하는데
할루시네이션의 감소
이때 사용하기 위해 스노우가 제공하는 완전 관리형 AI_FUNCTION이 AI_PARSE_DOCUMENT입니다.
안녕하세요, 포스 삼촌이에요.
최근 저희 '나연스떼' 요가 센터 2호점 오픈 준비로 정신없는 나날을 보내고 있습니다. 웰니스와 데이터 테크의 결합을 지향하는 만큼, 이번에 아주 야심 찬 프로젝트를 하나 기획했거든요.
바로 요가 센터의 수많은 비정형 문서(강사 및 강습 가이드북, 아사나 시퀀스 PDF, 회원 건강 특이사항 수기 기록 등)를 완벽하게 학습해서 회원들에게 1:1 맞춤형 웰니스 가이드를 제공하는 '나연스떼 AI 에이전트' 빌드업입니다.
이 멋진 에이전트를 만드는 과정에서 겪은 기술적 고민과, 스노우플레이크가 제공하는 강력한 무기들을 소개합니다.
🧘♀️ 1. "AI가 자꾸 엉뚱한 요가 자세를 알려줘요!" (RAG의 필요성)
처음엔 똑똑하다는 요즘 AI에 냅다 질문을 던져봤습니다.
"우리 요가 센터의 '프라나 플로우 2단계' 수업 특징과 주의사항이 뭐야?"
돌아온 대답은 황당했어요.
인터넷에 떠도는 온갖 요가 정보를 짜집기해서 존재하지도 않는 엉뚱한 가짜 시퀀스를 지어내더군요. 테크 용어로 이를 할루시네이션(Hallucination, 환각 현상)이라고 합니다.
조직에서 AI를 실무에 도입할 때 이 환각 현상은 치명적입니다. 회원의 건강이 걸린 요가 센터라면 더더욱 그렇겠죠?
이를 해결하기 위해 우리 조직의 "진짜 내부 문서(Single Source of Truth)"를 AI에게 참고서로 쥐여주고, 그 안에서만 대답하게 만드는 기술이 바로 RAG(Retrieval-Augmented Generation, 검색 증강 생성)입니다. 할루시네이션을 최소화하기 위해 기업들이 반드시 도입해야 하는 핵심 기술이죠.
📑 2. 문제는 '비정형 문서'를 읽어 들이는 것부터 시작된다
RAG를 만드려면 일단 센터 구석에 쌓인 PDF 가이드북이나 강습 시간표, 강사들의 노하우가 적힌 문서들을 데이터베이스에 예쁘게 쑤셔 넣어야(Ingestion) 합니다.
하지만 PDF 안에는 텍스트만 있는 게 아닙니다. 동작을 설명하는 표(Table)도 있고, 골격 다이어그램 이미지도 들어있죠. 이걸 단순 텍스트로 긁어오면 구조가 다 깨져서 AI가 맥락을 이해하지 못합니다.
이때 우리를 구원해 줄 스노우플레이크의 완전 관리형 AI 함수가 등장합니다. 바로 `AI_PARSE_DOCUMENT`입니다.
-- S3에 들어있는 요가 교안 PDF를 깔끔하게 파싱하기
SELECT SNOWFLAKE.CORTEX.AI_PARSE_DOCUMENT(
'@yoga_pdf_stage/prana_guide.pdf',
{'layout_aware': true}
);
이 함수를 쓰면 스노우플레이크가 백그라운드에서 알아서 PDF 속 표의 구조와 문맥을 완벽하게 유지한 채 깨끗한 텍스트로 파싱해 줍니다. 개발자가 일일이 파이썬 라이브러리 들고 파싱 노가다를 할 필요가 전혀 없는 완전 관리형(Fully Managed) 서비스죠.
다만, 공식 문서에서는 한글을 지원한다는 내용이 없어요. 실제로 해보면 한글도 잘 작동하긴 합니다.
⚔️ 3. AI_PARSE_DOCUMENT VS AI_COMPLETE (적재적소에 무기 쓰기)
| 비교 항목 | 🛠️ `AI_PARSE_DOCUMENT` | 🤖 `AI_COMPLETE` |
| 핵심 역할 | 비정형 문서(PDF, 이미지 등)를 읽어서 **데이터화**하기 | 질문을 던져서 답변을 **생성(Complete)**하기 |
| 나연스떼 적용 | 원천 PDF 교안을 읽어 텍스트 데이터로 변환 | 변환된 데이터를 기반으로 회원 질문에 답변 생성 |
| 비유하자면 | 칠판에 적힌 복잡한 교안을 노트에 **정리하는 비서** | 정리된 노트를 보고 회원들에게 **상담해 주는 강사** |
RAG 파이프라인에서 전반부에서는 `AI_PARSE_DOCUMENT`가 비정형 데이터를 정형화하는 역할을 하고, 그렇게 이쁘게 정제된 데이터를 기반으로 사용자의 질문에 똑똑하게 대답하는 후반부(답변 생성)은 `AI_COMPLETE`가 담당하는 것이 일반적이에요.
다만, 나연스떼의 문서들은 모두 한글이므로, 한글을 처리하는 경우에는 `AI_PARSE_DOCUMENT`와 `AI_COMPLETE`를 함께 사용해서 품질을 확인해볼 수 있어요.
예를 들면 LLM 모델을 활용하여 AI_PARSE_DOCUMENT가 pdf 파일을 읽듯이, AI_COMPLETE를 이용해서 문서를 파싱할 수 있어요.
예시 코드 들어가고
결과
🪐 마치며 : 테크와 숨결의 완벽한 링크
스노우플레이크의 Cortex AI 함수 덕분에, 복잡한 인프라 셋팅 없이 단 몇 줄의 SQL만으로 '나연스떼' 맞춤형 RAG 시스템의 뼈대를 완성할 수 있었습니다. (물론 한글에 대해서 더 집중한다면, 보다 많은 비교가 필요할 수 있어요.)
매뉴얼한 데이터 엔지니어링 노가다에서 벗어나, 비즈니스의 가치를 높이는 핵심 아키텍처에 집중하는 것. 그것이 바로 제가 생각하는 모던 데이터 아키텍트의 '포스(FORCE)'가 아닐까 싶습니다.
오늘도 데이터❄️와 숨결🧘♀️을 연결🔗하는 하루 되세요. 나마스떼, 아니 나연스떼!