加载中
您的第一次 API 调用
向 Claude 打招呼也许能让您心生暖意,但这并没有什么实际用处。在本课中,我们将向 Claude 发送一些真实的内容,并获取结构化的洞察——只需不到 20 行代码。
环境搭建
首先,从 platform.claude.com 获取一个 API 密钥。在进行第一次 API 调用之前,请在 Claude Console 的账单页面(在新标签页中打开)确认您有余额。如果没有,请在那里充值。

将该 API 密钥存放在 .env.local 文件中,使其不纳入版本控制。把密钥硬编码在源文件中正是它们最终泄露到 GitHub 上的原因——请将它们放在环境文件中。
接下来,安装 SDK:
npm install @anthropic-ai/sdk请求的结构
每次 API 调用都通过 messages.create 函数进行。您需要指定三项内容:
- 一个模型——由哪个 Claude 模型来处理该请求
- 一个 max tokens 限制——对响应长度的上限设置
- 一份消息列表——具有
user或assistant角色的对象,其结构与您在其他地方与 Claude 对话的方式类似
以下是其最基本形式的样子:
typescript
import Anthropic from "@anthropic-ai/sdk";
const client = new Anthropic();
const msg = await client.messages.create({
model: "claude-sonnet-5",
max_tokens: 2048,
messages: [{
role: "user",
content: "Hello, Claude",
}],
});一个真实示例:审查有缺陷的代码
让我们给 Claude 一些比"hello"更有意思的东西。我们会给它一些有缺陷的代码,并让它进行审查。下面就是全部内容——一个文件,大约 20 行代码:
typescript
import Anthropic from "@anthropic-ai/sdk";
const client = new Anthropic();
const buggyCode = `
function add(a, b) {
return a - b;
}
`;
const response = await client.messages.create({
model: "claude-sonnet-5",
max_tokens: 2048,
system: "You are a terse senior code reviewer. Give feedback in one paragraph.",
messages: [
{ role: "user", content: `Review this code:\n${buggyCode}` },
],
});
for (const block of response.content) {
if (block.type === "text") {
console.log(block.text);
}
}这里有两点需要注意:
system提示是您塑造人设的地方。我想要一个言简意赅的资深审查者,而不是喋喋不休的那种——所以我就这样说明。- 响应中的
message.content是一个由多个块组成的数组,而不是一个字符串。对于一个基本的文本回复,通常只有一个text类型的块,但 Claude 可以返回多个块——文本、工具调用、思考——所以我们始终要遍历并检查每个块的类型。
运行它,Claude 会发现 add 实际上在做减法,并用一段话告诉您。就是这样,整个 API 调用就完成了。

从脚本到产品
在真实的产品中,同样的 messages.create 结构正是诸如摘要接口之类功能背后的引擎。从数据库中取出一份会议记录,连同一个写着"提取要点和风险"的系统提示一起交给 Claude,将结果保存回该数据行,再返回给前端界面。这其实是同一次调用——只是被包装在了一个路由处理函数中而已。

小结
- 您的第一次 API 调用是一个
messages.create函数,它包含一个模型、一个令牌限制以及消息。 - 将您的 API 密钥存放在
.env.local文件中,使其不纳入版本控制。 - 添加一个系统提示来塑造 Claude 的行为。
- 响应中的
content是一个由多个块组成的数组——请遍历并检查每个块的type。 - 从这里开始,之后的一切都是在此模式之上构建的。