Notion은 칸반 보드, 작업, 위키 및 데이터베이스를 통합하는 수정된 Markdown 지원 협업 플랫폼입니다. 노트 작성, 지식 및 데이터 관리, 프로젝트 및 작업 관리를 위한 올인원 워크스페이스입니다.
NotionDBLoaderNotion 데이터베이스에서 콘텐츠를 로드하기 위한 Python 클래스입니다. 데이터베이스에서 페이지를 검색하고 콘텐츠를 읽어 Document 객체 목록을 반환합니다. NotionDirectoryLoader는 Notion 데이터베이스 덤프에서 데이터를 로드하는 데 사용됩니다.

Requirements

  • Notion Database
  • Notion Integration Token

Setup

1. Create a Notion Table Database

Notion에서 새 테이블 데이터베이스를 생성합니다. 데이터베이스에 열을 추가할 수 있으며 메타데이터로 처리됩니다. 예를 들어 다음 열을 추가할 수 있습니다:
  • Title: Title을 기본 속성으로 설정합니다.
  • Categories: 페이지와 관련된 카테고리를 저장하는 Multi-select 속성입니다.
  • Keywords: 페이지와 관련된 키워드를 저장하는 Multi-select 속성입니다.
데이터베이스의 각 페이지 본문에 콘텐츠를 추가합니다. NotionDBLoader는 이러한 페이지에서 콘텐츠와 메타데이터를 추출합니다.

2. Create a Notion Integration

Notion Integration을 생성하려면 다음 단계를 따르세요:
  1. Notion Developers 페이지를 방문하여 Notion 계정으로 로그인합니다.
  2. ”+ New integration” 버튼을 클릭합니다.
  3. integration에 이름을 지정하고 데이터베이스가 있는 워크스페이스를 선택합니다.
  4. 필요한 기능을 선택합니다. 이 확장 기능은 Read content 기능만 필요합니다.
  5. “Submit” 버튼을 클릭하여 integration을 생성합니다. integration이 생성되면 Integration Token (API key)이 제공됩니다. 이 토큰을 복사하여 안전하게 보관하세요. NotionDBLoader를 사용하는 데 필요합니다.

3. Connect the Integration to the Database

integration을 데이터베이스에 연결하려면 다음 단계를 따르세요:
  1. Notion에서 데이터베이스를 엽니다.
  2. 데이터베이스 보기의 오른쪽 상단에 있는 점 세 개 메뉴 아이콘을 클릭합니다.
  3. ”+ New integration” 버튼을 클릭합니다.
  4. integration을 찾습니다. 검색 상자에 이름을 입력해야 할 수도 있습니다.
  5. “Connect” 버튼을 클릭하여 integration을 데이터베이스에 연결합니다.

4. Get the Database ID

데이터베이스 ID를 가져오려면 다음 단계를 따르세요:
  1. Notion에서 데이터베이스를 엽니다.
  2. 데이터베이스 보기의 오른쪽 상단에 있는 점 세 개 메뉴 아이콘을 클릭합니다.
  3. 메뉴에서 “Copy link”를 선택하여 데이터베이스 URL을 클립보드에 복사합니다.
  4. 데이터베이스 ID는 URL에 있는 긴 영숫자 문자열입니다. 일반적으로 다음과 같습니다: www.notion.so/username/8935f9d140a04f95a872520c4f123456?v=… 이 예에서 데이터베이스 ID는 8935f9d140a04f95a872520c4f123456입니다.
데이터베이스가 올바르게 설정되고 integration 토큰과 데이터베이스 ID를 확보하면 이제 NotionDBLoader 코드를 사용하여 Notion 데이터베이스에서 콘텐츠와 메타데이터를 로드할 수 있습니다.

5. Installation

langchain-community integration 패키지를 설치합니다.
pip install -qU langchain-community

Notion Database Loader

NotionDBLoader는 langchain 패키지의 document loader 중 하나입니다. 다음과 같이 사용할 수 있습니다:
from getpass import getpass

NOTION_TOKEN = getpass()
DATABASE_ID = getpass()
········
········
from langchain_community.document_loaders import NotionDBLoader
loader = NotionDBLoader(
    integration_token=NOTION_TOKEN,
    database_id=DATABASE_ID,
    request_timeout_sec=30,  # optional, defaults to 10
)
docs = loader.load()
print(docs)

Notion Directory Loader

Setup

Notion에서 데이터셋을 내보냅니다. 오른쪽 상단의 점 세 개를 클릭한 다음 Export를 클릭하면 됩니다. 내보낼 때 Markdown & CSV 형식 옵션을 선택해야 합니다. 이렇게 하면 Downloads 폴더에 .zip 파일이 생성됩니다. .zip 파일을 이 저장소로 이동합니다. 다음 명령을 실행하여 zip 파일의 압축을 풉니다(필요에 따라 Export...를 자신의 파일 이름으로 바꾸세요).
unzip Export-d3adfe0f-3131-4bf3-8987-a52017fc1bae.zip -d Notion_DB

Usage

방금 다운로드한 데이터를 수집하려면 다음 명령을 실행합니다.
from langchain_community.document_loaders import NotionDirectoryLoader

loader = NotionDirectoryLoader("Notion_DB")
docs = loader.load()

Connect these docs programmatically to Claude, VSCode, and more via MCP for real-time answers.
I