跳到主要内容

从 Anthropic 迁移到图灵

用 Anthropic Python / TypeScript SDK 的代码迁到图灵,主要改三处base_url鉴权头类型x-api-keyAuthorization: Bearer)、模型名。

核心 diff

Python

from anthropic import Anthropic

client = Anthropic(
- api_key=os.environ["ANTHROPIC_API_KEY"],
+ auth_token=os.environ["TURING_API_KEY"],
+ base_url="https://live-turing.cn.llm.tcljd.com/api/v1",
)

message = client.messages.create(
- model="claude-sonnet-5",
+ model="turing/claude-sonnet-5",
max_tokens=1024,
messages=[{"role": "user", "content": "你好"}],
)
api_keyauth_token

Anthropic SDK 默认用 x-api-key header 鉴权。图灵平台用标准的 Authorization: Bearer——SDK 里对应 auth_token 参数(而非 api_key)。

TypeScript / Node.js

import Anthropic from "@anthropic-ai/sdk";

const client = new Anthropic({
- apiKey: process.env.ANTHROPIC_API_KEY,
+ authToken: process.env.TURING_API_KEY,
+ baseURL: "https://live-turing.cn.llm.tcljd.com/api/v1",
});

cURL

-curl https://api.anthropic.com/v1/messages \
+curl https://live-turing.cn.llm.tcljd.com/api/v1/messages \
- -H "x-api-key: $ANTHROPIC_API_KEY" \
- -H "anthropic-version: 2023-06-01" \
+ -H "Authorization: Bearer $TURING_API_KEY" \
-H "Content-Type: application/json" \
-d '{
- "model": "claude-sonnet-5",
+ "model": "turing/claude-sonnet-5",
"max_tokens": 1024,
"messages": [{"role": "user", "content": "你好"}]
}'
anthropic-version header

图灵平台内部会自动选择合适的 API 版本。你可以保留此 header(无害),也可以删掉。


模型名映射

图灵平台的 Claude 模型名以 turing/claude-* 开头。迁移时优先选近期型号,例如 turing/claude-sonnet-5turing/claude-opus-4.8

完整可用模型、上下文、价格与退役状态以 模型列表 → Turing Claude 为准。


功能对照表

功能Anthropic 原生图灵平台
Messages API✅ 完全兼容;见 Messages 接口
流式 SSE
工具调用(tools + tool_result
Extended Thinking{"type": "enabled"/"adaptive"}
Prompt Caching (cache_control)✅,含 5m / 1h TTL
Vision (图片输入)
Web Search Tool (web_search_20250305)
Computer Use⚠ 走上游 Vertex AI,部分场景支持
Files API⚠ 规划中
Batch API⚠ 未公开
Count Tokens/api/count-message-tokens

图灵新增:turing_options

在请求顶层加一个 turing_options 字段享受平台能力:

message = client.messages.create(
model="turing/claude-sonnet-5",
max_tokens=1024,
messages=[...],
extra_body={
"turing_options": {
"timeout": 30,
"max_retries": 2,
"fallbacks": ["turing/gpt-5.4-mini"]
}
}
)

超时、重试与 Fallback


常见 gotchas

  • 用错 api_key:SDK 会自动走 x-api-key header,图灵返回 401;必须用 auth_token
  • 模型名日期后缀claude-sonnet-4-5-20241022 这种带日期的名字图灵一律去日期,turing/claude-sonnet-4.5
  • anthropic-version header:无需显式设置
  • 响应 idtyperole 等字段:完全一致,无需改解析逻辑
  • Claude 新型号 thinking 配置claude-opus-4.7 / claude-opus-4.8 / claude-sonnet-5 不支持 type: "enabled" + budget_tokens,需改用 type: "adaptive" + output_config.effort。其中 Sonnet 5 默认开启但可 disabled,Opus 4.7/4.8 默认关闭需显式开启。详见 思考与推理

可选:切换到 Chat Completions 协议

Anthropic Messages 协议是 Claude 的原生协议,跨厂商受限。如果你想用同一段代码在 Claude / GPT / Gemini / Qwen 之间随意切换,把协议换成 OpenAI Chat Completions:

-from anthropic import Anthropic
-client = Anthropic(
- auth_token="...",
- base_url="https://live-turing.cn.llm.tcljd.com/api/v1",
-)
+from openai import OpenAI
+client = OpenAI(
+ api_key="...",
+ base_url="https://live-turing.cn.llm.tcljd.com/api/v1",
+)

-message = client.messages.create(
- model="turing/claude-sonnet-5",
- max_tokens=1024,
- messages=[{"role": "user", "content": "你好"}],
-)
+response = client.chat.completions.create(
+ model="turing/claude-sonnet-5", # 换模型只改这里
+ messages=[{"role": "user", "content": "你好"}],
+)
何时留在 Messages 协议

需要 Claude 原生特性(如 cache_control 精细缓存、server_tool_use / web_search_tool_result block 结构、thinking block 直接返回)时,保留 Messages 协议体验更好。


迁移后立刻能用的平台能力

  • Fallback 到非 Claude 模型claude-sonnet-5 挂了自动切 gpt-5.4-mini
  • 跨厂商 Prompt 缓存统一计费视角计费与用量
  • 请求追踪X-Turing-Trace-Id 响应头
  • 统一速率限制视角速率限制

See also