Skip to main content

Notion数据库 2/2 (Notion DB 2/2)

Notion 是一个集成看板、任务、维基和数据库的协作平台,支持修改的Markdown语法。它是一个集合了笔记、知识和数据管理以及项目和任务管理的全能工作空间。

NotionDBLoader 是一个用于从 Notion 数据库加载内容的 Python 类。它从数据库中检索页面,读取其内容,并返回一个 Document 对象列表。

需求 (Requirements)

  • 一个 Notion 数据库
  • Notion 集成令牌 (Notion Integration Token)

设置 (Setup)

1. 创建一个 Notion 表格数据库 (Create a Notion Table Database)

在 Notion 中创建一个新的表格数据库。您可以添加任何列到数据库中,它们将被视为元数据。例如,您可以添加以下列:

  • 标题 (Title):将标题设置为默认属性。
  • 类别 (Categories):一个多选属性,用于存储与页面相关的类别。
  • 关键词 (Keywords):一个多选属性,用于存储与页面相关的关键词。

将内容添加到数据库中每个页面的正文中。NotionDBLoader 将从这些页面中提取内容和元数据。

2. 创建一个 Notion 集成 (Create a Notion Integration)

要创建一个 Notion 集成,请按照以下步骤操作:

  1. 访问 Notion Developers 页面,并使用您的 Notion 帐户登录。
  2. 点击 "+ New integration" 按钮。
  3. 为您的集成命名,并选择您的数据库所在的工作区。
  4. 选择所需的功能,此扩展仅需要读取内容的功能。
  5. 点击 "Submit" 按钮创建集成。

创建集成后,您将获得一个 集成令牌 (API key)。请将此令牌复制并妥善保存,因为您将需要它来使用 NotionDBLoader。

3. 将集成连接到数据库 (Connect the Integration to the Database)

要将集成连接到数据库,请按照以下步骤操作:

  1. 在 Notion 中打开您的数据库。
  2. 点击数据库视图右上角的三点菜单图标。
  3. 点击 "+ New integration" 按钮。
  4. 找到您的集成,您可能需要在搜索框中开始输入其名称。
  5. 点击 "Connect" 按钮将集成连接到数据库。

4. 获取数据库 ID (Get the Database ID)

要获取数据库 ID,请按照以下步骤操作:

  1. 在 Notion 中打开您的数据库。
  2. 点击数据库视图右上角的三点菜单图标。
  3. 从菜单中选择 "Copy link" 将数据库的 URL 复制到剪贴板。
  4. 数据库 ID 是在 URL 中找到的一长串字母数字字符。它通常看起来像这样:https://www.notion.so/username/8935f9d140a04f95a872520c4f123456?v=.... 在这个例子中,数据库 ID 是 8935f9d140a04f95a872520c4f123456。

完成数据库的设置,并获得集成令牌和数据库 ID 后,您现在可以使用 NotionDBLoader 代码从 Notion 数据库中加载内容和元数据。

使用方法 (Usage)

NotionDBLoader 是 langchain 包的文档加载器的一部分。您可以按照以下方式使用它:

from getpass import getpass

NOTION_TOKEN = getpass()
DATABASE_ID = getpass()
    ········
········
from langchain.document_loaders import NotionDBLoader
loader = NotionDBLoader(
integration_token=NOTION_TOKEN,
database_id=DATABASE_ID,
request_timeout_sec=30, # 可选,默认为 10
)
docs = loader.load()
print(docs)