Skip to main content
Open In ColabOpen on GitHub

Notion 数据库 2/2

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

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

需求

  • 一个 Notion 数据库
  • Notion 集成令牌

设置

1. 创建 Notion 表格数据库

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

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

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

2. 创建 Notion 集成

要创建一个Notion集成,请遵循这些步骤:

  1. 访问Notion 开发者页面并使用您的 Notion 账户登录。
  2. 点击"+ 新建集成"按钮。
  3. 为您的集成命名,并选择包含您数据库的工作区。
  4. 选择所需的功能,此扩展仅需要阅读内容的功能
  5. 点击“提交”按钮以创建集成。 一旦创建了集成,您将收到一个Integration Token (API key)。复制此令牌并妥善保管,因为您需要它来使用NotionDBLoader。

3. 连接集成到数据库

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

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

4. 获取数据库ID

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

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

使用正确的数据库设置以及手头的集成令牌和数据库ID,您现在可以使用NotionDBLoader代码从Notion数据库中加载内容和元数据。

5. 安装

安装 langchain-community 集成包。

%pip install -qU langchain-community

Notion 数据库加载器

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

from getpass import getpass

NOTION_TOKEN = getpass()
DATABASE_ID = getpass()
········
········
from langchain_community.document_loaders import NotionDBLoader
API 参考: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 目录加载器

设置

从 Notion 导出您的数据集。您可以点击右上角的三个点,然后点击 Export

在导出时,请确保选择Markdown & CSV格式选项。

这将在您的下载文件夹中生成一个 .zip 文件。将该 .zip 文件移至本代码仓库中。

运行以下命令来解压 zip 文件(根据需要将 Export... 替换为您的文件名)。

unzip Export-d3adfe0f-3131-4bf3-8987-a52017fc1bae.zip -d Notion_DB

用法

运行以下命令以导入您刚刚下载的数据。

from langchain_community.document_loaders import NotionDirectoryLoader

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