Claude API 快速开始
本指南帮助你在 5 分钟内完成 Claude API 的第一次调用。
#准备工作
#1. 获取 API Key
- 访问 Anthropic Console↗
- 注册或登录账号
- 进入 API Keys↗ 页面
- 点击 "Create Key"
- 复制并安全保存
⚠️ 重要:API Key 只显示一次,请立即保存!
#2. 设置环境变量
bash# macOS / Linux export ANTHROPIC_API_KEY="sk-ant-..." # Windows PowerShell $env:ANTHROPIC_API_KEY="sk-ant-..." # 或在 .env 文件中 ANTHROPIC_API_KEY=sk-ant-...
#Python 快速开始
#安装
bashpip install anthropic
#第一次调用
pythonimport anthropic client = anthropic.Anthropic() # 自动读取环境变量 message = client.messages.create( model="claude-sonnet-4-20250514", max_tokens=1024, messages=[ {"role": "user", "content": "用一句话介绍 Claude"} ] ) print(message.content[0].text)
#运行结果
Claude 是 Anthropic 开发的 AI 助手,以安全、有帮助和诚实为核心设计理念。
#Node.js 快速开始
#安装
bashnpm install @anthropic-ai/sdk
#第一次调用
typescriptimport Anthropic from '@anthropic-ai/sdk'; const client = new Anthropic(); // 自动读取环境变量 async function main() { const message = await client.messages.create({ model: 'claude-sonnet-4-20250514', max_tokens: 1024, messages: [ { role: 'user', content: '用一句话介绍 Claude' } ] }); console.log(message.content[0].text); } main();
#使用 curl
bashcurl https://api.anthropic.com/v1/messages \ -H "x-api-key: $ANTHROPIC_API_KEY" \ -H "anthropic-version: 2023-06-01" \ -H "content-type: application/json" \ -d '{ "model": "claude-sonnet-4-20250514", "max_tokens": 1024, "messages": [ {"role": "user", "content": "用一句话介绍 Claude"} ] }'
#核心概念
#Messages 结构
pythonmessages = [ {"role": "user", "content": "你好"}, {"role": "assistant", "content": "你好!有什么我可以帮助你的?"}, {"role": "user", "content": "介绍一下你自己"} ] # 使用 system 参数设置系统提示 message = client.messages.create( model="claude-sonnet-4-20250514", max_tokens=1024, system="你是一个专业的 Python 程序员", messages=messages )
#角色说明
| 角色 | 作用 |
|---|---|
| user | 用户的输入 |
| assistant | AI 的回复(多轮对话时需要包含) |
| system | 通过 system 参数设置 |
#常用参数
pythonmessage = client.messages.create( model="claude-sonnet-4-20250514", # 模型 max_tokens=1024, # 必需:最大输出 token system="系统提示", # 可选:系统指令 messages=[...], # 必需:对话消息 temperature=0.7, # 可选:创造性 (0-1) top_p=0.9, # 可选:采样参数 stop_sequences=["END"] # 可选:停止词 )
#temperature 参数
0.0 - 最确定,适合代码/分析
0.5 - 平衡
1.0 - 最有创意
#模型选择
#推荐模型
| 模型 | 特点 | 价格 |
|---|---|---|
| claude-sonnet-4-20250514 | 最强综合性能 | 中等 |
| claude-3-opus-20240229 | 最强推理 | 最高 |
| claude-3-5-haiku-20241022 | 最快最便宜 | 最低 |
#模型 ID
python# 推荐日常使用 model = "claude-sonnet-4-20250514" # 复杂推理任务 model = "claude-3-opus-20240229" # 预算敏感/高并发 model = "claude-3-5-haiku-20241022"
#完整示例
#简单问答
pythonimport anthropic client = anthropic.Anthropic() def ask(question: str) -> str: message = client.messages.create( model="claude-sonnet-4-20250514", max_tokens=1024, messages=[ {"role": "user", "content": question} ] ) return message.content[0].text # 使用 answer = ask("Python 和 JavaScript 的主要区别是什么?") print(answer)
#带系统提示
pythondef ask_expert(question: str, expertise: str) -> str: message = client.messages.create( model="claude-sonnet-4-20250514", max_tokens=1024, system=f"你是一位{expertise}专家,用简洁专业的语言回答问题。", messages=[ {"role": "user", "content": question} ] ) return message.content[0].text # 使用 answer = ask_expert( "如何优化 React 应用性能?", "前端开发" )
#多轮对话
pythonclass 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("那写文件呢?")) # 记住上下文
#响应结构
pythonmessage = 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)
#错误处理
pythonimport 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}")
#费用监控
pythonmessage = 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 API | OpenAI API |
|---|---|---|
| 认证 | x-api-key header | Authorization: Bearer |
| 系统提示 | system 参数 | messages 中的 system 角色 |
| max_tokens | 必需参数 | 可选参数 |
| 函数调用 | Tool Use | Function Calling |
| 版本控制 | anthropic-version header | 无 |
#下一步
提示:Claude API 的
max_tokens是必需参数,与 OpenAI 不同。