向 Claude 说 "你好" 可能会温暖你的心,但它并不真正有用。在本课中,我们将向 Claude 发送一些真实的内容并获得结构化洞察——只需不到 20 行代码。
首先,从 platform.claude.com 获取一个 API 密钥。你需要事先购买一些积分。
获取 API 密钥并将其存储在 .env.local 文件中,以使其不进入版本控制。在源文件中硬编码密钥会导致它们在 GitHub 上泄露——将其保存在环境文件中。
接下来,安装 SDK:
npm install @anthropic-ai/sdk
每个 API 调用都通过 messages.create 函数。你指定三件事:
user 或 assistant 角色的对象,类似于你在其他地方与 Claude 对话的结构这是最基本形式的样子:
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 一些比 "你好" 更有趣的东西。我们将将其指向一些有 bug 的代码并要求审查。这是完整的代码——一个文件,大约 20 行:
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 是一个块数组,而不是字符串。对于基本的文本回复,通常只有一个 类型的块,但 Claude 可以返回多个块——文本、工具调用、思考——所以我们总是循环并检查类型。登录 参与讨论
text运行它,Claude 会发现 add 在做减法,并在一段话中告诉你。就这样。这就是整个 API 调用。
在真实的产品中,这个相同的 messages.create 形状是类似汇总端点之类功能的引擎。从数据库中提取会议记录,将其交给 Claude 并附上说 "提取见解和风险" 的系统提示,将结果保存回该行,并返回给 UI。这是相同的调用——只是包装在路由处理程序中。
messages.create 函数,包含 model、token 限制和 messages。.env.local 文件中以使其不进入版本控制。content 是一个块数组——循环并检查每个块的 type。