Search

12. 구글 드라이브 + n8n을 활용한 데이터 전처리

섹션
5. Agent: 사내 QnA 봇

구글 드라이브 + n8n을 활용한 데이터 전처리 시스템

기업 내부 문서 Q&A 시스템의 필요성

실제 기업 도입 사례

대기업 활용 현황

삼성, 한화, 현대: 이미 도입 완료된 대기업들
HR 부서 활용: 인사 관련 업무 효율화
실무 질문 해결: 휴가, 비용 처리, 승인 프로세스 등

일반적인 업무 문제점

규정 파악 어려움: 어떤 문서를 봐야 하는지 모름
담당자 의존성: 비전문 분야에 대한 정보 접근 어려움
문서 분산: 필요한 정보가 여러 문서에 흩어져 있음

내부 문서의 특성

보안 및 접근성 문제

내부 네트워크: 외부 크롤링 불가능한 환경
AI 학습 데이터 부재: 공개되지 않은 기업 특화 정보
보안 정책: 민감한 내부 정보 보호 필요

RAG(Retrieval-Augmented Generation) 시스템 개념

RAG의 기본 원리

AI 학습 데이터의 한계

학습되지 않은 데이터: AI가 접근할 수 없는 내부 문서
실시간 정보: 최신 업데이트된 내부 규정
기업 특화 정보: 고유한 업무 프로세스 및 규정

RAG 작동 방식

문서 수집: 내부 문서를 AI가 활용 가능한 형태로 변환
벡터 저장: 문서를 수치화하여 검색 가능한 형태로 저장
유사도 검색: 질문과 관련된 문서 자동 탐색
답변 생성: 관련 문서를 기반으로 한 정확한 답변 제공

문서 유사도 검색의 필요성

키워드 검색의 한계

다양한 표현 방식

동일 의미, 다른 표현: "50만원 지급", "50만원 누가 내야", "50만원 승인"
자연어 다양성: 사용자마다 다른 질문 방식
정확한 매칭 어려움: 단순 키워드로는 원하는 문서 찾기 힘듦

임베딩을 통한 해결

의미 벡터화: 문서와 질문을 수치 벡터로 변환
유사도 계산: 벡터 간 거리 계산을 통한 관련도 측정
컨텍스트 이해: 문맥적 유사성 기반 검색

Google Drive 연동 및 파일 수집

n8n 워크플로우 구성

트리거 설정

Manual Trigger: 수동 실행을 통한 제어
Read from Disk 한계: 자동 트리거 지원 안 함
Workflow 실행: 필요 시점에 수동으로 데이터 수집

Google Drive API 연동

인증 설정: Client ID 및 Secret 등록
Drive API 활성화: Google Cloud Console에서 API 권한 설정
파일 공유: 공유 링크를 통한 파일 접근 권한

파일 목록 관리 전략

Google Sheets를 통한 파일 관리

파일 리스트: 별도 스프레드시트에 파일 목록 정리
Drive 검색 한계: 폴더 내 파일 직접 검색 어려움
실용적 해결책: 수동 관리를 통한 안정적 파일 접근

파일 다운로드 프로세스

Loop over Items: 여러 파일의 순차적 처리
Google Sheets 연동: 파일 목록 자동 읽기
헤더 필수: 스프레드시트 첫 행에 컬럼명 필요

Vector Store 설정 및 선택

다양한 Vector Database 비교

Pinecone (권장)

특장점: 가장 성숙한 벡터 데이터베이스
무료 제한: 5개 인덱스까지 무료 (이전 10개에서 축소)
운영 적합성: 소규모 서비스 운영 가능

기타 옵션들의 한계

Milvus: 유료 서비스
PG Vector: 한국어 키워드 검색 미지원
MongoDB Atlas: 무료 제공하지만 기능 제한

Pinecone 설정 과정

인덱스 생성

API 키 발급: Pinecone 계정 생성 후 인증
인덱스 이름: 프로젝트별 구분을 위한 명명
호스팅 옵션: 자체 임베딩 모델 사용 권장

벡터 타입 및 설정

Dense vs Sparse: 일반적으로 Dense 벡터 사용
Dense 벡터: 조밀한 수치 배열 (예: [1, 4, 3, 7, 9])
Sparse 벡터: 대부분이 0인 배열 (예: [0, 0, 0, 1, 0])

임베딩 모델 및 유사도 측정

임베딩 모델 선택

OpenAI Embedding 모델

text-embedding-3-large: 고성능 임베딩 모델
차원 수: 3072 차원
소형 모델 비권장: text-embedding-3-small은 성능 저하

차원 수 설정

Google Embeddings: 일반적으로 768 차원
Cohere: 4096 차원
모델별 확인: 공식 문서를 통한 정확한 차원 수 확인

유사도 측정 방식

Cosine Similarity (권장)

원리: 벡터 간 각도 측정
장점: 벡터 크기에 무관한 방향성 측정
범용성: 가장 널리 사용되는 방식

기타 측정 방식

Euclidean Distance: 벡터 간 실제 거리 측정
Dot Product: 내적 계산, 벡터 크기에 영향받음
성능 고려: Dot Product는 빠르지만 부정확할 수 있음

문서 처리 및 청킹

텍스트 분할 전략

Recursive Character Text Splitter

LangChain 개념: 가장 효과적인 텍스트 분할 방식
계층적 분할: 문서 구조를 고려한 지능적 분할
범용성: 다양한 문서 형식에 적용 가능

청크 크기 최적화

Chunk Size: 150자 내외 권장
Overlap: 50자 내외 (전체의 20-30%)
토큰 효율성: 전체 문서 전달 시 토큰 낭비 방지

파일 형식 지원

지원 파일 타입

PDF: 기본 지원
DOCX: Word 문서 (실제 업무에서 주로 사용)
MIME Type: 파일 형식 자동 감지 및 처리

데이터 타입 설정

Binary Data: 파일 다운로드 후 바이너리 형태
문서 로더: 파일 형식에 맞는 적절한 파서 선택

데이터 임베딩 및 저장

임베딩 프로세스

문서 전처리

텍스트 분할: 설정된 청크 크기로 문서 분할
오버랩 처리: 문맥 연속성 보장을 위한 중복 구간
메타데이터 추가: 문서 출처 및 관련 정보

Vector Store 저장

임베딩 변환: 텍스트를 수치 벡터로 변환
Pinecone 업로드: 벡터와 메타데이터 저장
인덱싱: 빠른 검색을 위한 인덱스 구축

처리 결과 확인

성공적인 데이터 이전

Pinecone 대시보드: 저장된 벡터 수 확인
데이터 새로고침: 실시간 저장 상태 모니터링
품질 검증: 임베딩 품질 및 검색 성능 테스트

시스템 최적화 및 확장

성능 튜닝

청크 크기 최적화

테스트 기반 조정: 서비스별 최적 설정 발견
정답 없는 설정: 지속적인 실험을 통한 개선
사용자 피드백: 실제 검색 결과의 품질 평가

비용 효율성

무료 플랜 활용: 초기 테스트 및 소규모 운영
토큰 사용량: 적절한 청크 크기로 비용 절약
모델 선택: 성능과 비용의 균형점 찾기

확장 가능성

문서 유형 다양화

다양한 파일 형식: PDF, DOCX, TXT 등
멀티미디어: 이미지, 프레젠테이션 파일 처리
실시간 동기화: 문서 변경 시 자동 업데이트

사용자 인터페이스

검색 최적화: 자연어 질의 성능 향상
결과 랭킹: 관련도 기반 결과 정렬
피드백 시스템: 사용자 만족도 기반 개선

운영 고려사항

보안 및 접근 제어

내부 문서 보안: 민감 정보 보호
사용자 권한: 부서별/직급별 접근 제어
감사 로그: 문서 접근 기록 관리

유지보수 및 업데이트

정기적 재색인: 문서 변경 사항 반영
성능 모니터링: 검색 속도 및 정확도 추적
사용 패턴 분석: 자주 검색되는 정보 파악