📌 项目地址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 长度切,但你实际用会发现按句子或段落切更连贯。可以用 langchainRecursiveCharacterTextSplitter 替换。另外检索结果不要超过 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,跑通一次,就能上手。

五个必须知道的坑(来自实际使用)

  1. API 密钥硬编码:Notebook 里直接把 key 写死了。改成环境变量或 .env 文件,用 python-dotenv 加载。提交 Git 前检查有没有泄漏。

  2. 模型选便宜的:默认可能是 claude-3-opus,但大多数场景用 claude-3-haiku 就够了,速度快价格低。改 model 参数。

  3. 输入数据要替换:Notebook 里的数据是固定的(比如客服订单号),换成你自己的数据,改 Prompt 里的示例。核心 API 调用不用动。

  4. 输出结构校验:所有 Notebook 假设模型输出是完美 JSON 或特定格式。生产必须加校验逻辑,比如 json.JSONDecodeError 捕获重试,或者让模型输出终止标记(如 <END>)辅助解析。

  5. 上下文窗口限制:Notebook 处理的数据量小,不会遇到边界。如果你的输入很长(比如 10 万 token 的文章),需要先切分或使用流式输出。可以在 Prompt 里让模型先总结中间结果,再汇总。

最后,别试图通读所有 Notebook。按需取用,最快。

这篇文章对你有帮助吗?

发表回复