本文覆盖:Anthropic Claude API 的申请、鉴权、基础调用、流式输出、工具调用(Tool Use / Function Calling),以及国内开发者的网络访问方案。
一、API Key 申请
访问 [console.anthropic.com],登录后点击 API Keys → Create Key。
注意: API Key 是按量计费的(Pay-as-you-go),和 Claude Pro/Max 订阅是独立的两个产品:
| 产品 | 用途 | 计费方式 |
| Claude.ai 订阅(Pro/Max) | 网页端 + Claude Code | 月订阅 |
| Anthropic API Key | 自己的程序调用模型 | 按 Token 计费 |
如果是国内用户,申请 API Key 需要海外信用卡充值,这部分暂时没有简便的代付方案(官方不提供 API 的人民币充值)。
订阅 Claude.ai(用网页、用 Claude Code)可以通过代付解决,推荐 [ClaudeMax.shop]。
二、Python 调用
pip install anthropic
基础对话
import anthropic
client = anthropic.Anthropic(api_key="your-api-key")
message = client.messages.create(
model="claude-sonnet-4-5",
max_tokens=1024,
messages=[
{"role": "user", "content": "解释一下什么是尾递归优化"}
]
)
print(message.content[0].text)
流式输出(Streaming)
with client.messages.stream(
model="claude-sonnet-4-5",
max_tokens=1024,
messages=[{"role": "user", "content": "写一个快速排序算法"}],
) as stream:
for text in stream.text_stream:
print(text, end="", flush=True)
多轮对话
messages = []
def chat(user_input):
messages.append({"role": "user", "content": user_input})
response = client.messages.create(
model="claude-sonnet-4-5",
max_tokens=2048,
messages=messages
)
assistant_message = response.content[0].text
messages.append({"role": "assistant", "content": assistant_message})
return assistant_message
使用
print(chat("你好,帮我分析一段代码"))
print(chat("刚才那段代码有什么潜在的性能问题?"))
三、Tool Use(工具调用 / Function Calling)
Claude 的 Tool Use 允许模型决定调用哪个函数,类似 OpenAI 的 Function Calling。
tools = [
{
"name": "get_weather",
"description": "获取指定城市的天气信息",
"input_schema": {
"type": "object",
"properties": {
"city": {
"type": "string",
"description": "城市名称,如 '北京', '上海'"
}
},
"required": ["city"]
}
}
]
response = client.messages.create(
model="claude-sonnet-4-5",
max_tokens=1024,
tools=tools,
messages=[{"role": "user", "content": "北京今天天气怎么样?"}]
)
检查是否触发工具调用
if response.stop_reason == "tool_use":
tool_use = next(b for b in response.content if b.type == "tool_use")
tool_name = tool_use.name
tool_input = tool_use.input
print(f"调用工具: {tool_name}, 参数: {tool_input}")
# 这里执行实际的天气查询逻辑...
四、Node.js 调用
npm install @anthropic-ai/sdk
import Anthropic from "@anthropic-ai/sdk";
const client = new Anthropic({ apiKey: "your-api-key" });
// 基础调用
const message = await client.messages.create({
model: "claude-sonnet-4-5",
max_tokens: 1024,
messages: [{ role: "user", content: "用 TypeScript 写一个防抖函数" }],
});
console.log(message.content[0].text);
// 流式输出
const stream = await client.messages.create({
model: "claude-sonnet-4-5",
max_tokens: 1024,
stream: true,
messages: [{ role: "user", content: "解释 React 的协调算法" }],
});
for await (const event of stream) {
if (
event.type === "content_block_delta" &&
event.delta.type === "text_delta"
) {
process.stdout.write(event.delta.text);
}
}
五、国内访问方案
Anthropic API 国内直连限制,常见解决方式:
方式 1:代理配置(本地开发)
import anthropic
import httpx
配置 HTTP 代理
client = anthropic.Anthropic(
api_key="your-api-key",
http_client=httpx.Client(proxies={"https://": 设置代理端口})
)
方式 2:部署到海外云服务
把 API 调用服务部署到 Vercel / Cloudflare Workers / AWS Lambda(选海外 Region)。
方式 3:使用中转 API
部分服务提供对 Anthropic API 的中转,格式兼容但终点在国内可访问的节点。
模型选择参考
| 模型 | 适用场景 | 特点 |
| claude-opus-4-1 | 复杂推理、长文档分析 | 能力最强、价格最高 |
| claude-sonnet-4-5 | 日常编程、内容生成 | 速度与质量平衡 |
| claude-haiku-4-5 | 高并发轻量任务 | 最快最便宜 |
补充说明
本文涉及的 Claude.ai 网页端订阅(Claude Code 所需),国内用户可通过 [ClaudeMax.shop] 微信支付代付,10 分钟内交付 Anthropic 官方席位。与 API 计费是独立的两个产品,按需选择。