Notion DB 2/2
Notion 是一个协作平台,具有修改后的 Markdown 支持,集成了看板、任务、wiki 和数据库。它是一个用于笔记、知识和数据管理以及项目和任务管理的一体化工作空间。
NotionDBLoader
是一个 Python 类,用于从 Notion
数据库加载内容。它从数据库中检索页面,读取其内容,并返回一个 Document 对象列表。NotionDirectoryLoader
用于从 Notion 数据库转储加载数据。
要求
- 一个 Notion 数据库
- Notion 集成令牌
设置
1. 创建一个 Notion 表格数据库
在 Notion 中创建一个新的表格数据库。您可以向数据库添加任何列,它们将被视为元数据。例如,您可以添加以下列
- 标题:将标题设置为默认属性。
- 类别:一个多选属性,用于存储与页面关联的类别。
- 关键词:一个多选属性,用于存储与页面关联的关键词。
将您的内容添加到数据库中每个页面的正文中。NotionDBLoader 将从这些页面中提取内容和元数据。
2. 创建一个 Notion 集成
要创建一个 Notion 集成,请按照以下步骤操作
- 访问 Notion 开发者 页面,并使用您的 Notion 帐户登录。
- 点击 “+ New integration” 按钮。
- 为您的集成命名,并选择您的数据库所在的工作区。
- 选择所需的功能,此扩展程序仅需要读取内容功能
- 点击 “Submit” 按钮以创建集成。集成创建完成后,您将获得一个集成令牌 (API 密钥)。复制此令牌并妥善保管,因为您需要使用它来使用 NotionDBLoader。
3. 将集成连接到数据库
要将您的集成连接到数据库,请按照以下步骤操作
- 在 Notion 中打开您的数据库。
- 点击数据库视图右上角的三个点菜单图标。
- 点击 “+ New integration” 按钮。
- 找到您的集成,您可能需要在搜索框中开始输入其名称。
- 点击 “Connect” 按钮以将集成连接到数据库。
4. 获取数据库 ID
要获取数据库 ID,请按照以下步骤操作
- 在 Notion 中打开您的数据库。
- 点击数据库视图右上角的三个点菜单图标。
- 从菜单中选择 “Copy link” 以将数据库 URL 复制到您的剪贴板。
- 数据库 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
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 格式选项。
这将会在您的下载 (Downloads) 文件夹中生成一个 .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()
相关
- 文档加载器概念指南
- 文档加载器操作指南