- URL 하드코딩 → .env APP_URL 기반 동적 URL로 변경 - DB 연결 하드코딩 → .env 기반으로 변경 - MySQL strict mode DATE 오류 수정
4.2 KiB
4.2 KiB
GCP Vertex AI(구체적으로는 Vertex AI Agent Builder 또는 Vertex AI Search)를 사용하여 Notion의 데이터를 읽어들이고, 이를 기반으로 답변하는 검색 엔진이나 챗봇을 구축할 수 있습니다. 다만, Google Drive나 Jira처럼 '버튼 하나로 연결되는(Native Connector)' 방식이 아직 Notion에 대해서는 완전하게 제공되지 않을 수 있으므로, 질문하신 대로 API를 활용한 커스텀 연동 방식이 가장 일반적입니다. 이 과정을 "RAG (검색 증강 생성) 파이프라인 구축" 관점에서 정리해 드리겠습니다.
- 전체적인 데이터 흐름 (아키텍처) Notion의 데이터를 Vertex AI가 이해하기 위해서는 **[Notion] -> [중간 처리] -> [Vertex AI 저장소]**의 과정을 거쳐야 합니다.
- 구체적인 구현 방법: API 기법 가장 확실하고 유연한 방법은 Notion API와 Vertex AI Discovery Engine API를 결합하는 것입니다. 단계 1: Notion에서 데이터 추출 (Extraction) Notion에 있는 페이지와 텍스트를 가져오기 위해 Notion API를 사용합니다. API: Notion REST API (Retrieve block children, Retrieve a page 등) 기능: 특정 데이터베이스나 페이지의 텍스트, 표, 속성(메타데이터)을 긁어옵니다. 형식: 추출된 데이터는 보통 Markdown이나 JSON 형태로 받아집니다. 단계 2: 데이터 전처리 (Transformation) Vertex AI가 읽기 좋은 형태로 데이터를 가공합니다. JSONL 변환: Vertex AI Search는 JSONL(JSON Lines) 형식을 매우 선호합니다. 구조화: 각 Notion 페이지를 하나의 JSON 객체로 만들고, id(페이지ID), content(본문 내용), title(제목), url(Notion 링크) 등의 필드로 정리합니다. 예시 데이터 포맷 (JSONL): {"id": "notion_page_123", "jsonData": "{"title": "프로젝트 기획안", "content": "이 프로젝트의 목적은..."}"} 단계 3: Vertex AI로 데이터 수집 (Ingestion) 가공된 데이터를 Vertex AI의 **Data Store(데이터 저장소)**에 넣습니다. 두 가지 방법이 있습니다. Cloud Storage (GCS) 경유: JSONL 파일을 Google Cloud Storage 버킷에 업로드하고, Vertex AI 콘솔에서 해당 버킷을 바라보게 설정합니다. (가장 쉬움) Discovery Engine API 직접 호출: 실시간성이 중요하다면, 코드를 짜서 Discovery Engine API의 userEvents:write 또는 documents:import 메서드를 통해 데이터를 직접 밀어넣습니다.
- 대안: 타사 ETL 도구 활용 (No-Code 접근) 개발 리소스를 줄이고 싶다면 Airbyte나 Fivetran 같은 데이터 파이프라인 도구를 사용할 수 있습니다. 방식: [Notion] -> Airbyte(커넥터) -> [Google BigQuery] -> [Vertex AI Search] 장점: Notion API를 직접 코딩하지 않아도 데이터를 주기적으로 동기화할 수 있습니다. Vertex AI는 BigQuery에 있는 데이터를 바로 소스로 사용할 수 있습니다.
- Vertex AI를 통한 활용 (결과물) 위 과정을 통해 데이터가 Vertex AI에 색인(Indexing)되면 다음과 같은 작업이 가능합니다. 시맨틱 검색 (Semantic Search): 키워드가 정확히 일치하지 않아도, 문맥을 이해하여 Notion 내의 관련 문서를 찾아줍니다. 요약 및 답변 생성: "이번 달 마케팅 회의록 요약해 줘"라고 물으면, Notion의 회의록 내용을 읽고 LLM(Gemini)이 답변을 생성합니다. 출처 표기: 답변과 함께 해당 정보가 있는 Notion 페이지 링크를 제공할 수 있습니다. 요약 표 구분 API 직접 개발 (Custom) ETL 도구 활용 (BigQuery) 난이도 높음 (Python 등 코딩 필요) 중간 (설정 위주) 실시간성 높음 (API 호출 즉시 반영 가능) 보통 (스케줄링 주기에 따름) 비용 API 호출 비용 + GCS 비용 도구 라이선스 비용 + BigQuery 비용 추천 대상 정교한 전처리가 필요한 경우 빠른 구축과 유지보수 편의성 중시
제가 사용자를 위해 할 수 있는 다음 단계: 현재 Notion 데이터의 양이 어느 정도인지, 혹은 개발자(엔지니어)가 직접 API 코딩이 가능한 상황인지 알려주시면, "Python을 사용한 Notion to Vertex AI 데이터 파이프라인 예제 코드" 구조를 잡아드릴까요?