📌 项目地址:anthropics/claude-cookbooks | ⭐ 43,973 颗星 | 🔧 Jupyter Notebook | 📜 未标注
这个仓库是什么
Anthropic 官方维护的 Jupyter Notebook 合集,43,973 星。每个 Notebook 是一段可直接复制的 Python 代码,演示 Claude API 的某个功能。适合已经有 API key(免费申请这里)、想快速上手特定场景的开发者。
如果你完全没碰过 Claude API,建议先看官方基础课程(链接),再回来看这个仓库。否则直接打开 Notebook 会看到一堆 Prompt 和 API 调用,但不知道为什么要这么写。
仓库按功能分三个目录:capabilities/(基础能力)、tool_use/(工具调用)、third_party/(第三方集成)。下面逐个拆开。
三类基础能力:分类、RAG、摘要
capabilities/ 下面有三个 Notebook,每个解决一个具体问题。README 只有一句话描述,但足够判断。
Classification:给输入打标签。比如“用户评论是好评还是差评”。Notebook 演示怎么在 Prompt 里定义输出格式(通常用 JSON),然后解析返回值。我试了下,如果标签超过 15 个,直接让模型一次性选容易选错。解决办法:先做粗分类(比如情感方向),再做细分类(具体标签)。还有,模型输出偶尔不是有效 JSON,代码里必须加 try-except json.JSONDecodeError 并重试。Notebook 没写这一步,生产你自己加。
Retrieval Augmented Generation (RAG):用外部知识增强回答。流程:切文档→存成向量(Notebook 用 Python 列表模拟)→检索→把片段注入 Prompt 让 Claude 回答。关键点是切分策略:Notebook 用的是固定 token 长度切,但你实际用会发现按句子或段落切更连贯。可以用 langchain 的 RecursiveCharacterTextSplitter 替换。另外检索结果不要超过 3~5 段,否则上下文窗口被占满。
Summarization:长文本摘要。最简单的 Notebook,改一下 Prompt 里的文本就能跑。但注意:如果原文超过模型上下文窗口(比如 32K token),Notebook 没处理。你可以手动切分,分段摘要再合并。
工具调用:Claude函数调用的完整套路
tool_use/ 目录演示核心模式:你定义工具(名称、参数、描述),Claude 在对话中自主决定何时调用,然后返回调用请求,你的代码执行函数并把结果塞回对话。
README 列了三个例子:
- Customer service agent:定义
get_order_status工具,用户问“订单到哪了”,Claude 自动调用返回结果。 - Calculator integration:定义
calculate(expression)工具,让 Claude 做数学运算。这个最简单,建议先跑这个理解流程。 - SQL queries(在
misc/下):自然语言转 SQL,执行后返回结果。注意:Notebook 没做 SQL 注入防护,生产环境必须用参数化查询或限制库表的访问权限。
所有工具调用 Notebook 都重复同一套模式:定义 schema → 发消息 → 接收工具调用请求 → 执行函数 → 再发消息。核心代码不超过 20 行。你改的是工具函数体,API 通信部分直接复制就行。
第三方集成:从演示到生产
third_party/ 目前只有 RAG 相关。和 capabilities/ 里的 RAG 区别:它接的是真实向量数据库(Pinecone、Chroma)。如果你已经有存好 Embedding 的知识库,想用 Claude 查询,从这里开始。Notebook 演示连接、检索、注入 Prompt。效果取决于你之前怎么切块和检索策略。
选哪个,取决于你现在的需求
- 做知识库问答:先看
capabilities/retrieval_augmented_generation理解流程,然后切换到third_party里的对应实现。 - 做自动化流程(客服、数据查询):看
tool_use/customer_service_agent,理解函数调用模式。 - 做文本提取或打标签:看
capabilities/classification。 - 做摘要:看
capabilities/summarization。
这三个覆盖 Claude API 的三种核心交互:纯文本问答、函数调用、外部知识注入。其他 Notebook 都是变体。打开一个 .ipynb,跑通一次,就能上手。
五个必须知道的坑(来自实际使用)
-
API 密钥硬编码:Notebook 里直接把 key 写死了。改成环境变量或
.env文件,用python-dotenv加载。提交 Git 前检查有没有泄漏。 -
模型选便宜的:默认可能是
claude-3-opus,但大多数场景用claude-3-haiku就够了,速度快价格低。改model参数。 -
输入数据要替换:Notebook 里的数据是固定的(比如客服订单号),换成你自己的数据,改 Prompt 里的示例。核心 API 调用不用动。
-
输出结构校验:所有 Notebook 假设模型输出是完美 JSON 或特定格式。生产必须加校验逻辑,比如
json.JSONDecodeError捕获重试,或者让模型输出终止标记(如<END>)辅助解析。 -
上下文窗口限制:Notebook 处理的数据量小,不会遇到边界。如果你的输入很长(比如 10 万 token 的文章),需要先切分或使用流式输出。可以在 Prompt 里让模型先总结中间结果,再汇总。
最后,别试图通读所有 Notebook。按需取用,最快。