AIUnlimited
🌳

AI基础

🌱
AI 种子

从零开始

🌿
AI 萌芽

打好基础

🌳
AI 枝干

付诸实践

🏕️
AI 树冠

深入探索

🌲
AI 森林

精通AI

🔨

AI精通

✏️
AI 草图

从零开始

🪨
AI 雕刻

打好基础

⚒️
AI 匠心

付诸实践

💎
AI 打磨

深入探索

🏆
AI 杰作

精通AI

📘

AI实战

📖
理解开源模型

开源模型的基础知识和资源

🎯
问题到模型任务

将业务问题转化为模型任务

⚡
跑通第一个模型

30分钟快速看到第一个结果

🔧
微调与评测

微调模型并评估性能

🚀
应用系统

构建实际AI应用系统

🎨
生成式AI

探索AIGC的开源模型

🤖
Agent智能体

学习Agent框架和MCP工具

📐
基础补充

LLM基础知识和评测

🎓

Claude 学院

🤖
Claude 101 入门

用 Claude 学习 AI 基础知识

💻
Claude Code 101 入门

让 Claude 成为你的结对编程伙伴

🤝
Claude Cowork 入门

与 Claude 协作完成复杂项目

⚙️
Claude 平台 101

使用 Claude API 构建应用

实验室

已加载 7 个实验
🧬神经网络沙盒🤖AI 还是人类?🥋提示工程道场🏁算法竞速🧠AI 知识挑战🏗️系统设计画布
🎯模拟面试进入实验室→
🚀

职业发展

🚀
面试发射台

开启你的旅程

🌟
行为面试精通

掌握软技能

💻
技术面试

通过编程轮次

🤖
AI与ML面试

ML面试精通

🏆
Offer与未来

拿下最好的Offer

立即开始
AIUnlimited

AI 教育平台

沪ICP备18025655号-11

学习

  • AI基础
  • AI实战
  • Claude学院
  • 实验室
  • 职业发展

社区

  • 关于
  • 常见问题

支持

  • 服务条款
  • 隐私政策
  • 联系我们
AI & 工程学习计划›⚙️ Claude 平台 101›课程›你的第一次 API 调用
🚀
Claude 平台 101 • 入门⏱️ 5 分钟阅读

你的第一次 API 调用

你的第一个 API 调用

向 Claude 说 "你好" 可能会温暖你的心,但它并不真正有用。在本课中,我们将向 Claude 发送一些真实的内容并获得结构化洞察——只需不到 20 行代码。

准备工作

首先,从 platform.claude.com 获取一个 API 密钥。你需要事先购买一些积分。

获取 API 密钥并将其存储在 .env.local 文件中,以使其不进入版本控制。在源文件中硬编码密钥会导致它们在 GitHub 上泄露——将其保存在环境文件中。

接下来,安装 SDK:

npm install @anthropic-ai/sdk

请求的结构

每个 API 调用都通过 messages.create 函数。你指定三件事:

  • 一个 model — 哪个 Claude 模型处理请求
  • 一个 max tokens 限制 — 响应长度的上限
  • 一个 messages 列表 — 带有 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",
  }],
});

一个真实的例子:审查有 bug 的代码

让我们给 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);
  }
}

这里要注意两件事:

  1. system 提示是你塑造角色的地方。我想要一个简洁的高级审查者,而不是健谈的——所以我直接说出来。
  2. 响应中的 message.content 是一个块数组,而不是字符串。对于基本的文本回复,通常只有一个 类型的块,但 Claude 可以返回多个块——文本、工具调用、思考——所以我们总是循环并检查类型。
第 3 课,共 26 课已完成 0%
←平台概述

讨论

登录 参与讨论

text

运行它,Claude 会发现 add 在做减法,并在一段话中告诉你。就这样。这就是整个 API 调用。

从脚本到产品

在真实的产品中,这个相同的 messages.create 形状是类似汇总端点之类功能的引擎。从数据库中提取会议记录,将其交给 Claude 并附上说 "提取见解和风险" 的系统提示,将结果保存回该行,并返回给 UI。这是相同的调用——只是包装在路由处理程序中。

回顾

  • 你的第一个 API 调用是一个 messages.create 函数,包含 model、token 限制和 messages。
  • 将你的 API 密钥存储在 .env.local 文件中以使其不进入版本控制。
  • 添加 系统提示 以塑造 Claude 的行为。
  • 响应 content 是一个块数组——循环并检查每个块的 type。
  • 从此开始,一切都建立在此模式之上。