Files
sam-kd/chatbot/docs/vertex.md

51 lines
4.2 KiB
Markdown
Raw Normal View History

GCP Vertex AI(구체적으로는 Vertex AI Agent Builder 또는 Vertex AI Search)를 사용하여 Notion의 데이터를 읽어들이고, 이를 기반으로 답변하는 검색 엔진이나 챗봇을 구축할 수 있습니다.
다만, Google Drive나 Jira처럼 '버튼 하나로 연결되는(Native Connector)' 방식이 아직 Notion에 대해서는 완전하게 제공되지 않을 수 있으므로, 질문하신 대로 API를 활용한 커스텀 연동 방식이 가장 일반적입니다.
이 과정을 "RAG (검색 증강 생성) 파이프라인 구축" 관점에서 정리해 드리겠습니다.
1. 전체적인 데이터 흐름 (아키텍처)
Notion의 데이터를 Vertex AI가 이해하기 위해서는 **[Notion] -> [중간 처리] -> [Vertex AI 저장소]**의 과정을 거쳐야 합니다.
2. 구체적인 구현 방법: 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 메서드를 통해 데이터를 직접 밀어넣습니다.
3. 대안: 타사 ETL 도구 활용 (No-Code 접근)
개발 리소스를 줄이고 싶다면 Airbyte나 Fivetran 같은 데이터 파이프라인 도구를 사용할 수 있습니다.
방식: [Notion] -> Airbyte(커넥터) -> [Google BigQuery] -> [Vertex AI Search]
장점: Notion API를 직접 코딩하지 않아도 데이터를 주기적으로 동기화할 수 있습니다. Vertex AI는 BigQuery에 있는 데이터를 바로 소스로 사용할 수 있습니다.
4. 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 데이터 파이프라인 예제 코드" 구조를 잡아드릴까요?