
1. 为什么我把 Notion AI 接进了自己的知识库Notion AI 是嵌在 Notion 编辑器与数据库里的生成式助手能对页面、数据库条目、跨页面内容做摘要、改写、问答和结构化提取适合已经在 Notion 里沉淀笔记、会议纪要、项目文档的个人和团队。我自己的知识库有 400 多篇页面早期最大的痛点是「写得进去、找不出来」会议纪要散落在不同数据库项目复盘和需求文档互不引用搜索只能靠关键词硬匹配。Notion AI 出现后我把它当成知识库的「检索层 加工层」而不是单纯的写作按钮。真正让我决定认真配置的是三个具体场景。第一每周 5 到 8 场会议逐字稿丢进页面后要手动提炼行动项平均一篇 20 分钟。第二数据库里有上百条读书笔记和需求卡片想按主题聚合时只能靠标签标签又经常漏打。第三跨页面问答很弱比如「上个季度关于登录流程改过哪些决策」我得翻五六个页面才能拼出答案。这篇内容聚焦 Notion AI 在个人知识库与团队协作中的真实落地从会议纪要自动归档、数据库摘要到跨页面问答拆解它如何嵌入既有工作流。我会给出可复制的 Notion AI 配置步骤与验证动作包括提示词模板、数据库属性设置以及用 TaoToken 统一 Key/API 通道接入时的 Base URL 与鉴权检查清单帮助你复现并评估效率变化。需要先说明边界Notion AI 本身是 Notion 官方能力开通后在页面内直接调用而当你需要把外部模型能力比如批量处理、自动化脚本、自定义 Agent接进 Notion 工作流时就需要一个统一的 API 通道。我实测下来用 TaoToken 做统一 Key 管理能避免在多个脚本里散落不同厂商的密钥Base URL 和鉴权方式也统一排障时只看一个入口。下面按「问题场景 → 前置准备 → 可复制配置 → 验证 → 排错 → 落地建议」的顺序展开每一步都有可跟做的命令和参数。2. TaoToken 前置准备与 Notion AI 接入定位TaoToken 是一个统一的大模型 API 通道官网在 https://taotoken.net/?utm_sourcetaotoken_aicg_blog_endutm_mediumcsdnutm_campaignrewriteutm_content API 入口是 https://taotoken.net/api 。它的作用是把你对多个模型的调用收敛到一个 Base URL 和一套 Key 上适合需要脚本化处理 Notion 内容的场景比如批量摘要、自动打标签、跨页面问答机器人。在动手前先明确两件事。第一Notion AI 的页面内功能摘要、改写、问答不需要 TaoToken直接在 Notion 里用即可。第二当你要用代码调用模型来处理 Notion 数据时才需要 TaoToken 提供 Base URL 和 Key。我踩过的坑是一开始把 Notion 官方 API 和模型 API 混在一起配结果 401 和 404 交替出现后来把两者分开管理才顺畅。前置准备清单如下Notion 侧一个可编辑的数据库用于存放处理结果以及一个 Integration TokenNotion 内部集成用和模型 Key 不是一回事。TaoToken 侧注册后拿到 API Key记下 Base URL 为https://taotoken.net/api。本地环境Python 3.9安装requests、notion-client、python-dotenv。环境变量建议这样组织避免密钥写死在代码里# .env TAOTOKEN_API_KEYsk-你的TaoToken密钥 TAOTOKEN_BASE_URLhttps://taotoken.net/api NOTION_TOKENsecret_你的Notion集成Token NOTION_DATABASE_ID你的数据库ID关于模型选择TaoToken 支持多种模型 ID你在调用时通过model字段指定。我常用的是通用对话模型做摘要和问答代码类任务换成对应的代码模型。具体可用模型列表可以在控制台查看https://taotoken.net/console?utm_sourcetaotoken_aicg_blog_endutm_contentconsoleutm_campaignrewrite 。如果你更偏向长期编码和 Agent 场景可以了解 Coding Planhttps://taotoken.net/coding-plan?utm_sourcetaotoken_aicg_blog_endutm_contentcoding-planutm_campaignrewrite 。而单纯想先验证模型对话效果用模型对话入口最快https://taotoken.net/models?utm_sourcetaotoken_aicg_blog_endutm_contentmodelsutm_campaignrewrite 。这里要强调一个鉴权检查清单后面排错会反复用到检查项正确值常见错误Base URLhttps://taotoken.net/api多写/v1或漏写协议鉴权头Authorization: Bearer Key用x-api-key或漏 BearerContent-Typeapplication/json表单提交导致解析失败模型字段控制台确认的 Model ID拼写错误或用了不存在的模型把这张表贴在配置旁边能省掉一半的排障时间。3. 可复制配置settings.json 与数据库属性设置这一节给出可直接复制的配置片段。先看模型调用的统一配置我用一个settings.json管理 Base URL、Key 来源和默认模型路径放在项目根目录的config/settings.json{ taotoken: { base_url: https://taotoken.net/api, api_key_env: TAOTOKEN_API_KEY, default_model: 你的默认模型ID, timeout_seconds: 60, max_retries: 3 }, notion: { token_env: NOTION_TOKEN, database_id_env: NOTION_DATABASE_ID, api_version: 2022-06-28 }, workflow: { summary_max_chars: 2000, auto_tag: true, archive_meeting: true } }对应的 Python 读取与调用封装注意 Base URL 拼接和鉴权头import os import json import requests from dotenv import load_dotenv load_dotenv() with open(config/settings.json, r, encodingutf-8) as f: CFG json.load(f) def call_model(prompt: str, model: str None) - str: base CFG[taotoken][base_url].rstrip(/) url f{base}/v1/chat/completions headers { Authorization: fBearer {os.getenv(CFG[taotoken][api_key_env])}, Content-Type: application/json, } payload { model: model or CFG[taotoken][default_model], messages: [{role: user, content: prompt}], temperature: 0.3, } resp requests.post(url, headersheaders, jsonpayload, timeoutCFG[taotoken][timeout_seconds]) resp.raise_for_status() return resp.json()[choices][0][message][content]注意base_url后面拼的是/v1/chat/completions这是 OpenAI 兼容格式。如果你的调用报 404先检查这里是不是多拼或少拼了路径。接下来是 Notion 数据库属性设置。会议纪要自动归档需要一个数据库属性建议这样建属性名类型用途TitleTitle会议主题DateDate会议日期SummaryRich textAI 生成的摘要ActionItemsRich text行动项TagsMulti-select自动标签StatusStatus待处理/已归档数据库建好后用 Notion Integration 把页面共享给集成否则 API 会返回 404。这一步很多人漏掉表现为「数据库 ID 明明对就是读不到」。提示词模板我固定成三段式方便复用你是知识库助手。请对以下内容做三件事 1. 生成不超过 200 字的摘要 2. 提取 3 到 5 个行动项标注负责人若有 3. 给出 3 到 5 个主题标签用逗号分隔。 内容 {content} 输出格式 摘要... 行动项... 标签...把{content}替换成页面正文即可。实测下来温度设 0.3 时输出最稳定行动项不容易跑偏。4. 验证请求与成功结果配置写完后先做最小验证确认 TaoToken 通道可用。用 curl 直接打一次curl -X POST https://taotoken.net/api/v1/chat/completions \ -H Authorization: Bearer $TAOTOKEN_API_KEY \ -H Content-Type: application/json \ -d { model: 你的模型ID, messages: [{role: user, content: 用一句话说明什么是知识管理}], temperature: 0.3 }成功时返回结构里会有choices[0].message.content类似{ choices: [ { message: { role: assistant, content: 知识管理是把分散的信息整理成可检索、可复用结构的过程。 } } ] }如果这一步通了再跑完整的会议纪要处理脚本def process_meeting(content: str) - dict: prompt f你是知识库助手。请对以下内容做三件事 1. 生成不超过 200 字的摘要 2. 提取 3 到 5 个行动项标注负责人若有 3. 给出 3 到 5 个主题标签用逗号分隔。 内容 {content[:2000]} 输出格式 摘要... 行动项... 标签... raw call_model(prompt) return parse_output(raw) def parse_output(raw: str) - dict: result {summary: , actions: , tags: []} for line in raw.splitlines(): if line.startswith(摘要): result[summary] line.replace(摘要, ).strip() elif line.startswith(行动项): result[actions] line.replace(行动项, ).strip() elif line.startswith(标签): tags line.replace(标签, ).strip() result[tags] [t.strip() for t in tags.split(,) if t.strip()] return result跑通后把结果写回 Notion 数据库。验证成功的标志是数据库里新增一条记录Summary 和 ActionItems 字段有内容Tags 是多选标签。我实测一篇 1500 字的会议逐字稿从调用到写回大约 8 到 12 秒比手动提炼快很多。跨页面问答的验证方式不同。你需要先把相关页面内容拉下来拼成上下文再提问def cross_page_qa(question: str, pages: list) - str: context \n\n.join([f【{p[title]}】\n{p[content][:800]} for p in pages]) prompt f根据以下资料回答问题若资料中没有答案请明确说不知道。 资料 {context} 问题{question} return call_model(prompt)验证时问一个你知道答案的问题比如「上个季度登录流程改过哪些决策」看返回是否引用了正确页面。如果答非所问多半是上下文拼接顺序或截断长度的问题。5. 本篇常见错排查这一节对照真实报错给出定位路径。第一个高频错误是 401{error: {message: Invalid API key, type: invalid_request_error}}原因通常是 Key 没读到、Bearer 拼错、或者环境变量没加载。检查顺序echo $TAOTOKEN_API_KEY是否有值代码里是不是Bearer后面少了空格.env是否在正确的目录被load_dotenv()加载。我遇到过.env放在子目录导致读不到的情况改成绝对路径就解决了。第二个是local proxy failed或连接超时。这类报错通常和网络环境、超时设置有关。先把timeout_seconds调到 60再确认 Base URL 是https://taotoken.net/api而不是别的地址。如果公司网络有出口限制联系网络管理员放行对应域名即可不要自行改动系统网络配置。第三个是reading choices报错典型信息是Cannot read properties of undefined (reading choices)。这说明返回体里没有choices字段常见原因是请求路径写成了/v1/chat/completions之外的形式或者模型 ID 不存在服务端返回了错误结构。先打印完整resp.text()看原始返回再对照控制台的模型列表核对 Model ID。第四个是 OAuth 相关报错比如OAuth token expired或invalid_grant。如果你用的是 Claude Code 或类似工具接入需要确认鉴权方式。Claude Code 接入时Base URL、Key、Model ID 三件套要写全{ base_url: https://taotoken.net/api, api_key: sk-你的TaoToken密钥, model: 你的模型ID }如果用的是 Cline MCP 或 Codex 的auth.json同样要保证这三项齐全。auth.json里缺model字段时工具会回退到默认模型可能和你预期不一致。CC Switch 切换配置时也要确认切换后的 Base URL 没有残留旧值。第五个是 Notion 侧 404。数据库 ID 正确但读不到九成是没把页面共享给 Integration。在 Notion 页面右上角「...」菜单里找到「连接」添加你的集成即可。另一个可能是Notion-Version头写错固定用2022-06-28。排错时建议开一个最小复现脚本只做一次模型调用把请求 URL、headersKey 打码、payload 和完整响应都打印出来。这样定位比在完整工作流里猜快得多。接入文档在 https://taotoken.net/doc?utm_sourcetaotoken_aicg_blog_endutm_contentdocutm_campaignrewrite 遇到不确定的参数先查文档。6. 把 Notion AI 真正嵌进工作流的建议配置跑通只是起点能不能长期用下去取决于它是否嵌进了你已有的习惯。我的做法是会议结束后逐字稿直接粘贴进指定页面触发脚本自动生成摘要和行动项写回数据库每周固定时间跑一次批量摘要把本周新增的读书笔记和需求卡片打上标签跨页面问答做成一个快捷指令需要时直接问。如果你也想复现建议从单个场景开始比如只做会议纪要归档跑顺了再扩展到数据库摘要和跨页面问答。密钥管理上统一走 TaoToken 的 API KeyBase URL 固定https://taotoken.net/api需要新建 Key 时到 https://taotoken.net/api-keys?utm_sourcetaotoken_aicg_blog_endutm_contentapi-keysutm_campaignrewrite 管理。想先验证模型效果用模型对话入口试几句长期做编码和 Agent再考虑 Coding Plan。最后留一个实用技巧把提示词模板存成 Notion 页面脚本从页面读取模板这样调整措辞不用改代码。我用了两个月模板改了七八版代码一行没动维护成本低很多。