logo

Claude API 快速开始

这页我按 Anthropic 官方 Get started 和 API overview 重新核过了。当前最基础的起手式仍然是:拿到 ANTHROPIC_API_KEY,然后直接用 Messages API 发一个最小请求。

准备工作

1. 获取 API Key

  1. 打开 Anthropic Console
  2. 创建账号或登录
  3. 在设置里生成 API key
  4. 立即保存

2. 设置环境变量

# macOS / Linux
export ANTHROPIC_API_KEY="sk-ant-..."

# Windows PowerShell
$env:ANTHROPIC_API_KEY="sk-ant-..."

3. 第一次请求

Python

Anthropic 官方 API overview 当前的 Python 最小示例是这样的:

from anthropic import Anthropic

client = Anthropic()

message = client.messages.create(
    model="claude-opus-4-6",
    max_tokens=1024,
    messages=[{"role": "user", "content": "Hello, Claude"}],
)

print(message.content[0].text)

curl

curl https://api.anthropic.com/v1/messages \
  --header "x-api-key: $ANTHROPIC_API_KEY" \
  --header "anthropic-version: 2023-06-01" \
  --header "content-type: application/json" \
  --data '{
    "model": "claude-opus-4-6",
    "max_tokens": 1024,
    "messages": [
      {"role": "user", "content": "Hello, Claude"}
    ]
  }'

我这里直接按 Anthropic 官方 overview 页面给的示例模型名来写,没有继续沿用之前那批旧 snapshot。

先只掌握这几个点

第一次接入时,我建议只关心:

  • x-api-key
  • anthropic-version
  • messages
  • max_tokens
  • model

先把请求打通,再去研究 tool use、streaming、batch 和 prompt caching。

官方参考

class ChatBot:
    def __init__(self, system_prompt: str = None):
        self.client = anthropic.Anthropic()
        self.system = system_prompt
        self.messages = []

    def chat(self, user_input: str) -> str:
        self.messages.append({"role": "user", "content": user_input})

        response = self.client.messages.create(
            model="claude-sonnet-4-20250514",
            max_tokens=1024,
            system=self.system,
            messages=self.messages
        )

        assistant_message = response.content[0].text
        self.messages.append({"role": "assistant", "content": assistant_message})

        return assistant_message

# 使用
bot = ChatBot("你是一个友好的编程助手")
print(bot.chat("你好"))
print(bot.chat("Python 怎么读文件?"))
print(bot.chat("那写文件呢?"))  # 记住上下文

响应结构

message = client.messages.create(...)

# 响应对象
print(message.id)        # 消息 ID
print(message.model)     # 使用的模型
print(message.role)      # "assistant"
print(message.content)   # 内容列表
print(message.stop_reason)  # 停止原因

# 获取文本内容
text = message.content[0].text

# Token 使用
print(message.usage.input_tokens)
print(message.usage.output_tokens)

错误处理

import anthropic

client = anthropic.Anthropic()

try:
    message = client.messages.create(
        model="claude-sonnet-4-20250514",
        max_tokens=1024,
        messages=[{"role": "user", "content": "Hello"}]
    )
except anthropic.AuthenticationError:
    print("API Key 无效")
except anthropic.RateLimitError:
    print("请求太频繁,请稍后重试")
except anthropic.APIStatusError as e:
    print(f"API 错误: {e.status_code} - {e.message}")

费用监控

message = client.messages.create(...)

# Token 使用
usage = message.usage
print(f"输入 tokens: {usage.input_tokens}")
print(f"输出 tokens: {usage.output_tokens}")

# 估算费用 (以 claude-sonnet-4-20250514 为例)
# 输入: $3/M tokens, 输出: $15/M tokens
input_cost = usage.input_tokens * 3 / 1_000_000
output_cost = usage.output_tokens * 15 / 1_000_000
print(f"估算费用: ${input_cost + output_cost:.4f}")

与 OpenAI 的区别

特性Claude APIOpenAI API
认证x-api-key headerAuthorization: Bearer
系统提示system 参数messages 中的 system 角色
max_tokens必需参数可选参数
函数调用Tool UseFunction Calling
版本控制anthropic-version header

新手常见误区

  • 忘记 max_tokens(Claude 里是必需参数)
  • 把所有业务规则堆进一段超长 system,导致维护困难
  • 没有保存请求样本,后续无法做回归对比

一句轻松提醒:
API 接入像开店,第一次开门很重要;
但真正决定能不能长期营业的,是你的流程、监控和复盘机制。

下一步


提示:Claude API 的 max_tokens 是必需参数,与 OpenAI 不同。

Claude API Guide
AI Engineer

Claude API Guide

Build with the Claude API for messages, streaming, multimodal input, and production integrations.

Claude API GuideQuickstart

Claude API 快速开始

这页我按 Anthropic 官方 Get started 和 API overview 重新核过了。当前最基础的起手式仍然是:拿到 ANTHROPIC_API_KEY,然后直接用 Messages API 发一个最小请求。

#准备工作

#1. 获取 API Key

  1. 打开 Anthropic Console
  2. 创建账号或登录
  3. 在设置里生成 API key
  4. 立即保存

#2. 设置环境变量

bash
# macOS / Linux export ANTHROPIC_API_KEY="sk-ant-..." # Windows PowerShell $env:ANTHROPIC_API_KEY="sk-ant-..."

#3. 第一次请求

#Python

Anthropic 官方 API overview 当前的 Python 最小示例是这样的:

python
from anthropic import Anthropic client = Anthropic() message = client.messages.create( model="claude-opus-4-6", max_tokens=1024, messages=[{"role": "user", "content": "Hello, Claude"}], ) print(message.content[0].text)

#curl

bash
curl https://api.anthropic.com/v1/messages \ --header "x-api-key: $ANTHROPIC_API_KEY" \ --header "anthropic-version: 2023-06-01" \ --header "content-type: application/json" \ --data '{ "model": "claude-opus-4-6", "max_tokens": 1024, "messages": [ {"role": "user", "content": "Hello, Claude"} ] }'

我这里直接按 Anthropic 官方 overview 页面给的示例模型名来写,没有继续沿用之前那批旧 snapshot。

#先只掌握这几个点

第一次接入时,我建议只关心:

  • x-api-key
  • anthropic-version
  • messages
  • max_tokens
  • model

先把请求打通,再去研究 tool use、streaming、batch 和 prompt caching。

#官方参考

python
class ChatBot: def __init__(self, system_prompt: str = None): self.client = anthropic.Anthropic() self.system = system_prompt self.messages = [] def chat(self, user_input: str) -> str: self.messages.append({"role": "user", "content": user_input}) response = self.client.messages.create( model="claude-sonnet-4-20250514", max_tokens=1024, system=self.system, messages=self.messages ) assistant_message = response.content[0].text self.messages.append({"role": "assistant", "content": assistant_message}) return assistant_message # 使用 bot = ChatBot("你是一个友好的编程助手") print(bot.chat("你好")) print(bot.chat("Python 怎么读文件?")) print(bot.chat("那写文件呢?")) # 记住上下文

#响应结构

python
message = client.messages.create(...) # 响应对象 print(message.id) # 消息 ID print(message.model) # 使用的模型 print(message.role) # "assistant" print(message.content) # 内容列表 print(message.stop_reason) # 停止原因 # 获取文本内容 text = message.content[0].text # Token 使用 print(message.usage.input_tokens) print(message.usage.output_tokens)

#错误处理

python
import anthropic client = anthropic.Anthropic() try: message = client.messages.create( model="claude-sonnet-4-20250514", max_tokens=1024, messages=[{"role": "user", "content": "Hello"}] ) except anthropic.AuthenticationError: print("API Key 无效") except anthropic.RateLimitError: print("请求太频繁,请稍后重试") except anthropic.APIStatusError as e: print(f"API 错误: {e.status_code} - {e.message}")

#费用监控

python
message = client.messages.create(...) # Token 使用 usage = message.usage print(f"输入 tokens: {usage.input_tokens}") print(f"输出 tokens: {usage.output_tokens}") # 估算费用 (以 claude-sonnet-4-20250514 为例) # 输入: $3/M tokens, 输出: $15/M tokens input_cost = usage.input_tokens * 3 / 1_000_000 output_cost = usage.output_tokens * 15 / 1_000_000 print(f"估算费用: ${input_cost + output_cost:.4f}")

#与 OpenAI 的区别

特性Claude APIOpenAI API
认证x-api-key headerAuthorization: Bearer
系统提示system 参数messages 中的 system 角色
max_tokens必需参数可选参数
函数调用Tool UseFunction Calling
版本控制anthropic-version header

#新手常见误区

  • 忘记 max_tokens(Claude 里是必需参数)
  • 把所有业务规则堆进一段超长 system,导致维护困难
  • 没有保存请求样本,后续无法做回归对比

一句轻松提醒:
API 接入像开店,第一次开门很重要;
但真正决定能不能长期营业的,是你的流程、监控和复盘机制。

#下一步


提示:Claude API 的 max_tokens 是必需参数,与 OpenAI 不同。

System Design

Core system design concepts and practical case studies

Learn the trade-offs and patterns that matter in technical interviews.

Open System Design →

Related Roadmaps