Skip to Content

Claude 原生接口调用

本指南介绍如何通过 AcceleAI 使用 Anthropic 原生 SDK 调用 Claude 系列模型,涵盖最新的 Claude 4.6 特性、扩展思维、流式输出以及从旧版本迁移的注意事项。

SDK 配置

pip install -U anthropic
import anthropic client = anthropic.Anthropic( api_key="<ACCELE_AI_API_KEY>", base_url="https://api.acceleai.cn" )

模型列表

模型上下文窗口最大输出训练数据截止扩展思维
Claude Opus 4.6200K / 1M (Beta)128K tokens2025 年 8 月支持
Claude Sonnet 4.6200K / 1M (Beta)128K tokens2025 年 8 月支持
Claude Sonnet 4.5200K tokens64K tokens2025 年 7 月支持
Claude Haiku 4.5200K tokens64K tokens2025 年 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,支持 viewstr_replacecreate 命令,但不再支持 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 类型,建议在代码中增加对应的处理逻辑,确保安全拒绝场景下的用户体验。