AI编程 · 架构思考 · 技术人生

NotebookLM + Claude Code:让AI精准回答专业文档问题

智谱 GLM,支持多语言、多任务推理。从写作到代码生成,从搜索到知识问答,AI 生产力的中国解法。

TL;DR

一个Claude Code技能插件,把Google NotebookLM变成你的专属知识库助手。上传API文档、技术手册后,直接在编辑器里问问题,答案只来自你的文档,不会胡编乱造。


一、问题:AI为什么总在专业问题上瞎说

1.1 幻觉是AI的原罪

你问GPT:”高仙机器人怎么获取状态?”

AI可能回答:

调用 /api/v1/robot/status 接口,传入设备ID...

看起来很专业。但实际API文档里根本没这个接口。

为什么:大语言模型基于概率生成文本,没见过的文档会”合理推测”。结果就是一本正经地胡说八道。

1.2 传统方案的困境

方案 问题
直接问AI 幻觉严重,答案不可信
手动查文档 效率低,复杂文档难检索
本地RAG 需要搭建向量数据库,成本高
复制文档喂给AI Token消耗巨大,超长文档装不下

本质矛盾:既要AI的理解能力,又要限定答案来源。


二、方案:NotebookLM限定知识边界

2.1 NotebookLM是什么

Google出品的”文档问答机器人”。你上传PDF、网页、文本,它只根据这些材料回答问题。

核心能力
– ✅ 只答文档里有的内容,没有就说”文档未提及”
– ✅ 支持50+个文件,自动关联信息
– ✅ 答案带引用,可追溯原文出处
– ✅ Gemini后端,理解能力强

生活比喻:像给AI配了一个只能看指定书籍的图书馆管理员。你问的问题,他只翻这些书,找不到就不会瞎编。

2.2 NotebookLM Skill做了什么

把NotebookLM集成到Claude Code里,免去手动切换浏览器的麻烦。

工作流程

1. 你在编辑器里问:"高仙机器人有哪些API?"
2. Skill自动打开Chrome → 登录NotebookLM → 提交问题
3. NotebookLM从你上传的文档里找答案
4. Skill把结果返回编辑器 → Chrome自动关闭

技术实现
– 浏览器自动化(Patchright,Playwright魔改版)
– 本地Python环境(独立.venv,不污染系统)
– 持久化认证(登录一次,永久有效)


三、实战案例:查询高仙机器人API文档

3.1 准备工作

我把 https://developer.gs-robot.com/ 的所有API文档上传到NotebookLM,然后在Claude Code里直接提问。

注意:案例中的API调用地址应为 https://openapi.gs-robot.com

3.2 第一个问题:有哪些API?

输入

高仙机器人平台有哪些api?

Skill自动执行

python3 scripts/run.py ask_question.py \
  --question "高仙机器人平台提供了哪些 API?请按功能分类详细列出..." \
  --notebook-id [已屏蔽]

NotebookLM返回(60秒内完成):

按功能分类的完整API列表:

1. 任务管理
/openapi/v2/robotCommand/submitTempTaskHasSite – 提交站点临时任务
/openapi/v2/robotCommand/submitTempTaskNoSite – 提交无站点任务
/v1alpha1/robots/*/commands/ – 获取指令队列

2. 状态监测
/v1alpha1/robots/{robot}/status – V1通用状态
/openapi/v2alpha1/s/robots/{robot}/status – V2 S系列专用
:batchGet – 批量获取多机器人状态

3. 地图服务
/openapi/v1/map/robotMap/list – 地图列表
/openapi/v1/map/subareas/get – 分区信息

4. 事件推送
– Webhook机制,推送异常告警、任务状态、导航信息

5. 设备管理
/v1alpha1/robots – 机器人列表(SN、MAC、硬件版本)

6. 认证安全
– OAuth 2.0:/v1alpha1/oauth/token – 获取访问令牌

3.3 第二个问题:如何获取状态?

输入

能告诉我如何获取 GSxx-xxx-xxx-xx 机器人的状态的过程是如何的么?

NotebookLM返回完整流程代码:

import requests

# ========== 步骤1:OAuth认证 ==========
auth_url = "https://openapi.gs-robot.com/v1alpha1/oauth/token"
auth_payload = {
    "grant_type": "client_credentials",
    "client_id": "YOUR_APP_ID",
    "client_secret": "YOUR_APP_SECRET"
}

auth_response = requests.post(auth_url, data=auth_payload)
access_token = auth_response.json().get("access_token")

# ========== 步骤2:查询机器人状态 ==========
robot_sn = "GSxx-xxx-xxx-xx"
status_url = f"https://openapi.gs-robot.com/openapi/v2alpha1/s/robots/{robot_sn}/status"

headers = {
    "Authorization": f"Bearer {access_token}",
    "Content-Type": "application/json"
}

response = requests.get(status_url, headers=headers)

# ========== 步骤3:解析响应 ==========
if response.status_code == 200:
    data = response.json()

    # 电池信息
    print(f"电量: {data['battery']['percentage']}%")
    print(f"电压: {data['battery']['voltage']}V")

    # 导航与状态
    print(f"导航状态: {data['navStatus']}")
    print(f"急停状态: {data['emergencyStop']}")

    # 清洁系统
    print(f"清水箱: {data['cleanWaterLevel']}")
    print(f"污水箱: {data['dirtyWaterLevel']}")

    # 耗材寿命
    print(f"滚刷寿命: {data['consumables']['rollerBrush']}%")
    print(f"盘刷寿命: {data['consumables']['diskBrush']}%")

响应数据结构

{
  "navStatus": "NAVIGATING",
  "emergencyStop": false,
  "battery": {
    "percentage": 85,
    "voltage": 48.2,
    "current": 5.3,
    "temperature": 32.5
  },
  "cleanWaterLevel": "MEDIUM",
  "dirtyWaterLevel": "LOW",
  "consumables": {
    "rollerBrush": 68,
    "diskBrush": 72,
    "filter": 45
  }
}

3.4 效果对比

传统方式 NotebookLM Skill
打开文档网站 → 搜索关键词 → 翻多个页面 → 手动整理 一句话提问 → 60秒得到完整答案
需要理解API版本差异(V1/V2) 自动关联多版本说明
可能遗漏相关接口 自动发现关联API(如批量查询)
代码示例需自己拼凑 直接给出可运行代码

四、安装使用指南

4.1 三步安装

# 1. 创建技能目录
mkdir -p ~/.claude/skills

# 2. 克隆仓库
cd ~/.claude/skills
git clone https://github.com/PleasePrompto/notebooklm-skill notebooklm

# 3. 首次使用自动安装依赖(包括Chrome)
# 无需手动操作

4.2 首次配置

在Claude Code里说

Set up NotebookLM authentication

自动流程
1. Chrome浏览器自动打开
2. 跳转到Google登录页
3. 手动完成登录(建议用独立账号,避免主账号被检测)
4. 认证信息保存到本地 ~/.claude/skills/notebooklm/data/

重要:这个data目录包含登录凭证,不要提交到Git

4.3 添加知识库

# 1. 在 https://notebooklm.google.com 上传文档
#    支持PDF、网页、Markdown等50+个文件

# 2. 点击"分享" → 设置为公开访问 → 复制链接

# 3. 在Claude Code里说:
Add https://notebooklm.google.com/notebook/xxx to my library

系统会要求你输入描述(如”高仙机器人API文档”),方便后续自动选择。

4.4 提问

# 直接问问题,Skill自动选择相关知识库
"高仙机器人如何提交临时任务?"
"状态监测API的响应数据结构是什么?"
"V1和V2接口有什么区别?"

4.5 常用命令

命令 作用
Show my NotebookLM notebooks 列出所有已保存知识库
Clear NotebookLM data 清空数据(保留库列表)
What skills do I have? 查看已安装技能

五、核心优势与限制

5.1 为什么不直接喂给Claude?

对比维度 直接喂Claude NotebookLM Skill
Token成本 巨大(每次提问重发全文) 极低(Gemini预处理一次)
文档数量 受上下文限制(~10个文件) 50+文件无压力
跨文档关联 需手动整理 自动关联信息
引用溯源 每个答案带来源
幻觉风险 仍可能编造 严格限定文档内容

5.2 适用场景

适合
– API文档查询(如高仙机器人案例)
– 技术手册问答(操作流程、参数说明)
– 产品规格对比(从多个PDF提取信息)
– 学术论文研究(关联多篇文献)

不适合
– 实时数据查询(NotebookLM不联网)
– 需要推理的复杂任务(它只检索文档)
– 隐私敏感内容(数据上传到Google)

5.3 技术限制

限制 说明
仅限本地Claude Code 不支持Web版(沙箱限制)
无会话上下文 每次提问独立,不记忆上一轮对话
NotebookLM免费限额 每日查询次数有上限
需手动上传文档 不能自动爬取网站

六、实现原理剖析

6.1 技术栈

Claude Code Skill(前端)
    ↓ 调用 Python 脚本
浏览器自动化(Patchright)
    ↓ 模拟人类操作
NotebookLM(后端)
    ↓ Gemini处理
返回文档限定答案

核心依赖
patchright==1.55.2 – Playwright魔改版,绕过自动化检测
python-dotenv==1.0.0 – 环境变量管理

6.2 会话模型

无状态设计

# 每次提问的生命周期
1. 启动Chrome → 加载认证信息
2. 打开NotebookLM → 选择知识库
3. 提交问题 → 等待响应
4. 提取答案 → 关闭浏览器

为什么不保持会话
– 避免浏览器长时间运行被检测
– 降低内存占用
– 每次问题独立,不依赖上下文

6.3 数据存储

所有数据在本地 ~/.claude/skills/notebooklm/data/

data/
├── auth_state.json       # Google登录凭证
├── library.json          # 知识库列表
└── .env                  # 环境变量

安全提醒.gitignore已配置忽略data目录,但仍需注意:
– 定期备份library.json
– 使用独立Google账号
– 不要在公共电脑上使用


七、进阶技巧

7.1 优化提问方式

糟糕的提问

高仙机器人API怎么用?

(太宽泛,NotebookLM可能返回概述)

好的提问

高仙机器人提交临时任务的API接口是什么?请给出完整的请求格式、参数说明和响应示例。

(具体、结构化,答案更精准)

7.2 多知识库组织

按项目分类

我的NotebookLM库:
- "高仙机器人API" → 所有developer.gs-robot.com文档
- "普渡机器人API" → 普渡开放平台文档
- "React官方文档" → React Hooks、Context等

提问时自动选择

# Skill根据问题关键词匹配库
"高仙机器人状态API" → 自动选"高仙机器人API"库
"React useEffect用法" → 自动选"React官方文档"库

7.3 配合Claude Code其他功能

典型工作流

1. NotebookLM查API文档 → 获取接口定义
2. Claude Code生成调用代码 → 自动补全参数
3. 本地测试 → 调试错误
4. 再问NotebookLM → 查错误码含义

八、小结

8.1 核心价值

NotebookLM + Claude Code = 零幻觉的专业文档助手

三个关键能力
1. 限定知识边界 – 答案只来自你的文档
2. 自动化集成 – 编辑器里直接提问,无需切换
3. 深度理解 – Gemini后端,能关联多文档信息

8.2 适用人群

角色 典型场景
API开发者 查询第三方平台接口文档
技术写手 从产品手册提取规格参数
研究人员 关联多篇论文找证据
运维工程师 查询设备操作手册

8.3 最佳实践

推荐
– 用独立Google账号避免主账号被检测
– 定期备份library.json
– 提问时明确要求”给出代码示例”或”列出所有参数”

避免
– 上传隐私敏感文档(数据在Google服务器)
– 期待它回答文档外的问题(会直接说”未提及”)
– 用于实时数据查询


参考链接
– GitHub仓库:https://github.com/PleasePrompto/notebooklm-skill
– NotebookLM官网:https://notebooklm.google.com
– 高仙机器人开放平台:https://developer.gs-robot.com
– API调用地址:https://openapi.gs-robot.com

赞(0)
未经允许不得转载:Toy's Tech Notes » NotebookLM + Claude Code:让AI精准回答专业文档问题
免费、开放、可编程的智能路由方案,让你的服务随时随地在线。

评论 抢沙发

十年稳如初 — LocVPS,用时间证明实力

10+ 年老牌云主机服务商,全球机房覆盖,性能稳定、价格厚道。

老品牌,更懂稳定的价值你的第一台云服务器,从 LocVPS 开始