Claude 原生接口调用
本指南介绍如何通过 AcceleAI 使用 Anthropic 原生 SDK 调用 Claude 系列模型,涵盖最新的 Claude 4.6 特性、扩展思维、流式输出以及从旧版本迁移的注意事项。
SDK 配置
pip install -U anthropicimport anthropic
client = anthropic.Anthropic(
api_key="<ACCELE_AI_API_KEY>",
base_url="https://api.acceleai.cn"
)模型列表
| 模型 | 上下文窗口 | 最大输出 | 训练数据截止 | 扩展思维 |
|---|---|---|---|---|
| Claude Opus 4.6 | 200K / 1M (Beta) | 128K tokens | 2025 年 8 月 | 支持 |
| Claude Sonnet 4.6 | 200K / 1M (Beta) | 128K tokens | 2025 年 8 月 | 支持 |
| Claude Sonnet 4.5 | 200K tokens | 64K tokens | 2025 年 7 月 | 支持 |
| Claude Haiku 4.5 | 200K tokens | 64K tokens | 2025 年 7 月 | 支持 |
基础调用
message = client.messages.create(
model="claude-sonnet-4-20250514",
max_tokens=1024,
messages=[
{"role": "user", "content": "你好,Claude"}
]
)
print(message.content[0].text)Claude 4.6 新特性
自适应思维模式
Claude 4.6 引入了自适应思维模式,模型会根据问题复杂度自动决定是否启用深度推理:
message = client.messages.create(
model="claude-opus-4-6-20250828",
max_tokens=16000,
thinking={"type": "adaptive"},
messages=[
{"role": "user", "content": "分析这段代码的时间复杂度"}
]
)自动上下文压缩 (Beta)
当对话接近上下文窗口限制时,服务端会自动对较早的对话内容进行摘要压缩,无需客户端手动管理,可支撑更长的多轮对话。
拒绝停止原因
Claude 4 系列新增了安全拒绝机制,当模型因安全策略拒绝回答时,stop_reason 会返回 refusal:
response = client.messages.create(
model="claude-sonnet-4-20250514",
max_tokens=1024,
messages=[{"role": "user", "content": "..."}]
)
if response.stop_reason == "refusal":
print("请求被安全策略拒绝")
elif response.stop_reason == "end_turn":
print("正常生成完毕")扩展思维
Claude 支持在生成回复时输出推理过程,提供思维透明度:
message = client.messages.create(
model="claude-sonnet-4-20250514",
max_tokens=16000,
thinking={
"type": "enabled",
"budget_tokens": 10000
},
messages=[
{"role": "user", "content": "请一步步推导这个数学证明"}
]
)
for block in message.content:
if block.type == "thinking":
print(f"思考过程: {block.thinking}")
elif block.type == "text":
print(f"回复: {block.text}")交错思维
在工具调用场景下,思维过程可以与工具使用交替出现,需要添加 Beta 头:
message = client.messages.create(
model="claude-sonnet-4-20250514",
max_tokens=16000,
thinking={"type": "enabled", "budget_tokens": 10000},
messages=[{"role": "user", "content": "帮我查询今天的天气"}],
tools=[...],
extra_headers={
"anthropic-beta": "interleaved-thinking-2025-05-14"
}
)流式输出
with client.messages.stream(
model="claude-sonnet-4-20250514",
max_tokens=4096,
messages=[
{"role": "user", "content": "写一篇关于人工智能的短文"}
]
) as stream:
for text in stream.text_stream:
print(text, end="", flush=True)支持 128K 长输出的流式调用:
with client.messages.stream(
model="claude-opus-4-20250514",
max_tokens=128000,
messages=[
{"role": "user", "content": "请详细分析这份报告的所有要点"}
]
) as stream:
for text in stream.text_stream:
print(text, end="", flush=True)文本编辑工具
Claude 4 支持内置的文本编辑工具,适用于代码修改等场景:
message = client.messages.create(
model="claude-sonnet-4-20250514",
max_tokens=4096,
tools=[
{
"type": "text_editor_20250429",
"name": "str_replace_based_edit_tool"
}
],
messages=[
{"role": "user", "content": "请帮我重构这段代码..."}
]
)注意: Claude 4 使用
text_editor_20250429,支持view、str_replace、create命令,但不再支持undo_edit。
从 Claude 3.7 迁移到 Claude 4
模型名称变更
# 旧版本
model = "claude-3-7-sonnet-20250219"
# 新版本
model = "claude-sonnet-4-20250514" # 或 claude-opus-4-20250514已弃用的特性
- Token 高效工具使用:仅适用于 Claude 3.7 Sonnet,Claude 4 不再需要
- 扩展输出 Header:Claude 4 原生支持 128K 输出,无需额外的
anthropic-beta头
停止原因处理
新增 refusal 类型,建议在代码中增加对应的处理逻辑,确保安全拒绝场景下的用户体验。