Claude API 调用完整教程(Python + Node.js 双版本)+ 国内应用方式

0 阅读3分钟

本文覆盖: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 计费是独立的两个产品,按需选择。