Claude API 怎么用?2026 实测 3 种接入方案,手把手配到能跑

12 阅读1分钟

上周在折腾一个文档摘要小工具,想接 Claude Opus 4.6 的 API。结果官网注册到一半,弹出来一个要上传身份证的页面,给我整不会了。搜了一圈发现最近 Anthropic 在搞 KYC 合规验证,不少人卡在这一步。折腾了两天,把能走通的路都试了一遍,写下来给同样被卡住的兄弟们省点时间。

直接说结论:2026 年要调用 Claude API,最省事的方式是通过 API 聚合平台(比如 ofox.ai),改一行 base_url 就能用,不用单独处理 Anthropic 的注册和鉴权流程。如果你非要走官方直连,下面也有完整步骤,但要做好心理准备——流程比以前麻烦了不少。

先说结论

方案上手难度延迟稳定性适合谁
方案一:Anthropic 官方直连⭐⭐⭐⭐~500ms偶尔波动有信用卡、能过 KYC 的
方案二:云厂商托管(AWS Bedrock)⭐⭐⭐⭐⭐~400ms已有 AWS 账号的企业用户
方案三:API 聚合平台~300ms多节点冗余,稳想快速跑起来的个人开发者

环境准备

不管走哪条路,本地环境都一样:

# Python 3.9+
pip install openai anthropic

为什么装了 openai 的包?因为方案二和方案三都兼容 OpenAI 的 SDK 协议,后面会用到。

方案一:Anthropic 官方直连

最"正统"的路子。

1. 注册 Anthropic Console 账号

console.anthropic.com 注册。2026 年的新变化是部分地区会触发身份验证(就是我开头说的那个上传身份证的流程),碰到了就按提示传,审核大概 1-3 个工作日。

2. 创建 API Key

进 Dashboard → API Keys → Create Key,复制保存好。

3. 写代码调用

import anthropic

client = anthropic.Anthropic(
 api_key="sk-ant-xxxxx" # 换成你自己的 Key
)

message = client.messages.create(
 model="claude-sonnet-4-20250514",
 max_tokens=1024,
 messages=[
 {"role": "user", "content": "用一句话解释什么是 RAG"}
 ]
)

print(message.content[0].text)

能跑通,响应大概 500ms。但注册那一关就劝退了不少人,信用卡绑定也只支持 Visa/Mastercard,没有支付宝选项。

踩坑点:model 参数的命名规则改过好几次了。之前写 claude-3-sonnet 的那些教程全过时了,2026 年最新的模型 ID 要去官方文档确认,别照着旧博客抄。

方案二:AWS Bedrock 托管

已经有 AWS 账号的话,这条路挺顺的。

import boto3
import json

bedrock = boto3.client(
 service_name='bedrock-runtime',
 region_name='us-east-1'
)

body = json.dumps({
 "anthropic_version": "bedrock-2023-05-31",
 "max_tokens": 1024,
 "messages": [
 {"role": "user", "content": "用一句话解释什么是 RAG"}
 ]
})

response = bedrock.invoke_model(
 modelId="anthropic.claude-sonnet-4-20250514-v1:0",
 body=body
)

result = json.loads(response['body'].read())
print(result['content'][0]['text'])

稳定性确实好,毕竟 AWS 的 SLA 在那摆着。但 Bedrock 的计费逻辑比较绕,而且要先在 AWS Console 里申请模型访问权限,审批周期不定。

踩坑点:modelId 这个字段,不同区域可用的模型版本不一样。我第一次写了个 us-west-2 的 region,发现那个区还没上最新版 Claude,报了 ValidationException,排查了半小时才发现是区域问题。

方案三:API 聚合平台(我现在用的方案)

说实话这是折腾完前两种方案之后才试的,早知道直接从这开始了。

原理很简单,聚合平台把各家模型的 API 统一封装成 OpenAI 兼容协议,换个 base_url 和 Key 就行。我用的是 ofox.ai,一个 API Key 可以调 Claude Opus 4.6、Sonnet 4.6、GPT-5、Gemini 3、DeepSeek V3 等 50 多个模型,支持支付宝/微信付款,按量计费。

from openai import OpenAI

client = OpenAI(
 api_key="your-ofox-key",
 base_url="https://api.ofox.ai/v1"
)

# 调 Claude
response = client.chat.completions.create(
 model="claude-sonnet-4-20250514",
 max_tokens=1024,
 messages=[
 {"role": "user", "content": "用一句话解释什么是 RAG"}
 ]
)
print(response.choices[0].message.content)

想换模型,改一行:

# 换成 GPT-5
response = client.chat.completions.create(
 model="gpt-5",
 max_tokens=1024,
 messages=[
 {"role": "user", "content": "用一句话解释什么是 RAG"}
 ]
)

# 换成 DeepSeek V3
response = client.chat.completions.create(
 model="deepseek-chat",
 max_tokens=1024,
 messages=[
 {"role": "user", "content": "用一句话解释什么是 RAG"}
 ]
)

延迟大概 300ms,比官方直连还快一点,应该是多节点就近路由的原因。Streaming 和 Function Calling 都试过,没问题。

踩坑点:模型名称要按平台文档写,有些聚合平台的模型 ID 和官方的不完全一致,第一次调之前先看下文档里的模型列表。

调用链路一图看懂

graph LR
 A[你的代码 - OpenAI SDK] -->|base_url 指向| B{选择方案}
 B -->|方案一| C[api.anthropic.com]
 B -->|方案二| D[AWS Bedrock]
 B -->|方案三| E[api.ofox.ai/v1]
 E --> F[Claude Opus 4.6]
 E --> G[Claude Sonnet 4.6]
 E --> H[GPT-5 / Gemini 3 / DeepSeek V3]
 C --> F
 D --> F

方案三的好处就是聚合网关帮你处理了各家的鉴权差异,代码始终是 OpenAI SDK 的写法,切模型只改 model 参数。

Streaming 流式输出示例

做聊天应用的话,流式输出是刚需。贴个完整示例:

from openai import OpenAI

client = OpenAI(
 api_key="your-ofox-key",
 base_url="https://api.ofox.ai/v1"
)

stream = client.chat.completions.create(
 model="claude-sonnet-4-20250514",
 max_tokens=2048,
 stream=True,
 messages=[
 {"role": "system", "content": "你是一个技术文档助手"},
 {"role": "user", "content": "解释 Python 的 GIL 锁,200字以内"}
 ]
)

for chunk in stream:
 if chunk.choices[0].delta.content:
 print(chunk.choices[0].delta.content, end="", flush=True)
print() # 换行

跑起来一个字一个字往外蹦,体验和 ChatGPT 网页版一样。

在 Cursor 里配置 Claude API

最近 Cursor 用的人很多,顺便说下怎么接自己的 Claude API:

  1. 打开 Cursor → Settings → Models
  2. 找到 OpenAI API Key 配置项
  3. API Key 填你的 Key
  4. Base URL 填 https://api.ofox.ai/v1
  5. 模型选 claude-sonnet-4-20250514

保存后在 Chat 和 Composer 里就能用 Claude 了。比用 Cursor 自带额度划算,也不受次数限制。

踩坑记录

content 字段格式问题

Anthropic 原生 API 的 content 支持数组格式(用于多模态),但有些聚合平台早期版本只支持字符串。如果要传图片(Vision),先确认平台支持 image_url 类型的 content block。

max_tokens 必填

Claude 的 API 和 OpenAI 不一样,max_tokens 是必填参数,不传会报错。从 GPT 转过来的人很容易忽略这个。

System Prompt 的位置

用 Anthropic 原生 SDK 时,system prompt 是单独的 system 参数,不在 messages 数组里。走 OpenAI 兼容协议时,放在 messages 里就行,聚合平台会自动转换。

429 限频

官方直连请求太快会触发 429。聚合平台一般有多供应商冗余(同时走 Azure 和 Bedrock),被限频的概率低很多。

小结

三种方案各有适用场景:

  • 就想快速把项目跑起来 → 方案三,5 分钟搞定
  • 公司有合规要求,必须走官方 → 方案一或方案二
  • 已经在 AWS 生态里了 → 方案二最顺

我自己日常开发全走方案三,主要是切模型太方便——写 prompt 的时候经常要对比 Claude 和 GPT-5 的输出效果,一个 Key 来回切,不用维护两套鉴权逻辑。

有问题评论区聊,踩到新坑我会更新。